机器学习---线性回归、多元线性回归、代价函数

1. 线性回归

回归属于有监督学习中的一种方法。该方法的核心思想是从连续型统计数据中得到数学模型,然后

将该数学模型用于预测或者分类。该方法处理的数据可以是多维的。

回归是由达尔文的表兄弟Francis Galton发明的。Galton于1877年完成了第一次回归预测,目的是

根据上一代豌豆的种子(双亲)的尺寸来预测下一代豌豆种子(孩子)的尺寸(身高)。Galton在

大量对象上应用了回归分析,甚至包括人的身高。他得到的结论是:如果双亲的高度比平均高度

高,他们的子女也倾向于平均身高但尚不及双亲,这里就可以表述为:孩子的身高向着平均身高回

归。Galton在多项研究上都注意到了这一点,并将此研究方法称为回归。

比如:有一个房屋销售的数据如下

如果来了一个新的面积,假设在销售价钱的记录中没有的,怎么处理?

解决方法:用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上

这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:

常用概念和符号:

房屋销售记录表:训练集(training set)或者训练数据(training data),是我们流程中的输入数

据,一般称为x;

房屋销售价钱:输出数据,一般称为y;

拟合的函数(或者称为假设或者模型):一般写做y=h(x)

训练数据的条目数(#training set):一条训练数据是由一对输入数据和输出数据组成的输入数据

的维度n(特征的个数,#features);

这个例子的特征是两维的,结果是一维的。然而回归方法能够解决特征多维,结果是一维多离散值

或一维连续值的问题识别结果。

注意:

(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数

(2)因为是单变量,因此只有一个x;

单变量线性回归模型:

正向线性关系:

负向线性关系:

 无关系:

y^=b0+b1x

这个方程叫做估计线性方程(estimated regression line)。

其中,b0是估计线性方程的纵截距,b1是估计线性方程的斜率,y^是在自变量x等于一个给定值

的时候,y的估计值。

线性回归例子:

汽车卖家做电视广告数量与卖出的汽车的数量:

 

假设有一周广告数量为6,则预估卖出的汽车数量为5*6+10=40。 

代数推导:

矩阵推导:

 

2. 多元线性回归

简单线性回归与多元线性回归的区别:

1.与简单线性回归区别(simple linear regression):多个自变量x

2.多元回归模型

y=β0+β1x1+β2x2+…+βpxp+e

其中:β1, β2 … βp是参数值,e是误差值

3.多元回归方程

E(y)=β0+β1x1+β2x2+…+βpxp

4.估计多元回归方程

y_hat=b0+b1x1+b2x2+…+bpxp

一个样本用来计算β0,β1,β2.....βp的点估计b0,b1,b2.....bp

比如:一家快递公司送货

x1:运输里程   x2:运输次数    y:总运输时间

3. 代价函数

代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为

训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯

度,防止过拟合时添加的正则化项也是加在代价函数后面的。一个好的代价函数需要满足两个最基

本的要求:能够评价模型的准确性,对参数可微。

在线性回归中,最常用的代价函数是均方误差(mean squared error),具体形式为:

求参数的方法:

最小二乘法:是一个直接的数学求解公式,但是他要求X是满秩的。

梯度下降法(gradient  descent):

梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,

能够下降的最快;

方法:

(1)先确定向下一步的步伐大小,我们称为Learning rate;

(2)任意给定一个初始值;

(3)确定一个向下的方向,并向下走预先规定的步伐,并更新初始值;

(4)当下降的高度小于某个定义的值,则停止下降;

梯度下降法的特点:

(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值

(2)越接近最小值时,下降速度越慢;

如果参数初始值就在local minimuml的位置,所以derivative肯定是0,因此参数值不会变化;

如果取到一个正确的α值,则cost function应该越来越小;

随时观察Q值,如果cost function变小了,则ok,反之,则再取一个更小的值。

从上图可以看出,初始值不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值。

下降的步伐大小非常重要,如果过小,就会找到函数最小值的速度非常的慢,如果太大,则可能出

现over shoot the minium 的现象。

 如果learning rate取值之后发现,cost function 增长了,则需要降低learning rate。

def gradientDescent(x,y,theta,alpha,m,numIterations):xTrans =x.transpose()for i in range(0,numIterations):hypothesis=np.dot(x,theta)loss=hypothesis-y#cost np.sum(loss *2)/(2 m)#print("Iteration %d Cost:%f"%(i,cost))gradient=np.dot(xTrans,loss)/mtheta=theta-alpha*gradientreturn theta

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/73994.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51:电机(ULN2003D)

1:介绍 我们51单片机使用的是直流电机 直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转 直流电机主要由永磁体(定子)、线圈(转…

SpringCloudAlibaba之Ribbon

Ribbon是nacos自带的负载均衡器,属于客户端的负载均衡 但是在Spring高级版本中让LoadBalancer替代了 本人用的是2.1.0的nacos,ribbon还没有被替换。 使用: 在配置类中:LoadBalanced BeanLoadBalancedpublic RestTemplate restT…

MacOS Monterey VM Install ESXi to 7 U2

一、MacOS Monterey ISO 准备 1.1 下载macOS Monterey 下载🔗链接 一定是 ISO 格式的,其他格式不适用: https://www.mediafire.com/file/4fcx0aeoehmbnmp/macOSMontereybyTechrechard.com.iso/file 1.2 将 Monterey ISO 文件上传到数据…

编辑接口和新增接口的分别调用

在后台管理系统中,有时候会碰到新增接口和编辑接口共用一个弹窗的时候. 一.场景 在点击新增或者编辑的时候都会使用这个窗口,新增直接调用接口进行增加即可,编辑则是打开这个窗口显示当前行的数据,然后调用编辑接口。 二.处理方法 在默认的情况下,这个窗口用来处理…

【从零开始学习JAVA | 第三十八篇】应用多线程

目录 前言: 多线程的实现方式: Thread常见的成员方法: 总结: 前言: 多线程的引入不仅仅是提高计算机处理能力的技术手段,更是适应当前时代对效率和性能要求的必然选择。在本文中,我们将深入…

使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

微服务系列<3>---微服务的调用组件 rpc 远程调用

什么是rpc调用,让我们调用远程方法就像调用本地方法一样 这就属于rpc调用 rpc是针对于本地来说的 调用远程方法根调用本地方法一样 如果能达到这种效果 就是rpc调用如果达到一种效果 调用远程和调用本地一样 他就是一种rpc框架2个微服务 之间发的调用 我们之前通过ribbon的方式…

云原生落地实践的25个步骤

一、什么是云原生? 云原生从字面意思上来看可以分成云和原生两个部分。 云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS,、PaaS和SaaS。 原生就是土生土长的意思,我们在开始…

数论分块学习笔记

准备开始复习莫比乌斯反演,杜教筛这一部分,先复习一下数论分块 0.随便说说 数论分块可以计算如下形式的式子 ∑ i 1 n f ( i ) g ( ⌊ n i ⌋ ) \sum_{i1}^{n}f(i)g(\lfloor\frac{n}{i}\rfloor) ∑i1n​f(i)g(⌊in​⌋)。 利用的原理是 ⌊ n i ⌋ \lf…

UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号

版本 5.2.1 裁剪 - 剪切 - 剪切到边界 裁剪 - 高级 - 溢出策略 - 省略

消息队列项目(1)

概念 这里的消息队列, 大致上就是一个生产者消费者模型. 我这个消息队列是仿照 RabbitMQ 的实现原理来进行编写的 需求分析 有几个核心的概念: 生产者(Producer)消费者(Consumer)中间人(Broker)发布(Publish) :生产者向中间人投递消息的过程订阅(Subcribe) :记录哪些消费者…

【腾讯云 Cloud Studio 实战训练营】CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!

CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手! 文章目录 CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!前言出现的背景一、CloudStudio 是什么?二、CloudStudio 的特点三、CloudS…

【LeetCode每日一题】——766.托普利茨矩阵

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 矩阵 二【题目难度】 简单 三【题目编号】 766.托普利茨矩阵 四【题目描述…

【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 2

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

FPGA项目设计:数字时钟

项目要求: 设计一个数字时钟,数码管前两位显示小时,数码管中间两位显示分钟,数码管后面两位显示秒。 项目设计: 系统框架图: 计数模块时序图: 代码实现: 计数模块: /…

通向架构师的道路之apache_tomcat_https应用

一、总结前一天的学习 通过上一章我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构,并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。 这样的架构的好处在于: 减轻App Server端的压力,用Web Server来分压…

Linux下基于Dockerfile构建镜像应用(1)

目录 基于已有容器创建镜像 Dockerfile构建SSHD镜像 构建镜像 测试容器 可以登陆 Dockerfile构建httpd镜像 构建镜像 测试容器 Dockerfile构建nginx镜像 构建镜像 概述: Docker 镜像是Docker容器技术中的核心,也是应用打包构建发布的标准格式。…

计算机视觉与图形学-神经渲染专题-ConsistentNeRF

摘要 Neural Radiance Fields (NeRF) 已通过密集视图图像展示了卓越的 3D 重建能力。然而,在稀疏视图设置下,其性能显着恶化。我们观察到,在这种情况下,学习不同视图之间像素的 3D 一致性对于提高重建质量至关重要。在本文中&…

在linux上面部署activemq

1、下载 网址:ActiveMQ 注意:新版本5.17起 要求jdk11, 5.16兼容jdk8, 所以,确保已经安装 java11 或以上的版本 这里安装较新版:5.18.2,已经安装了java17 如何安装jdk17,请详见我的另一篇文章:linux…

Git分布式版本控制工具和GitHub(一)--简介

一.Git概述 1.Git简介 【1】什么是Git? Git就是代码版本管理工具。 【2】为什么要使用Git (1)版本控制 写代码就是不断写BUG的过程(当然我们是不会这么说的),很多时候你写了100行代码之后,突然醒悟&…