Linear Regression(一)——

机器学习
回归

定义

回归的定义

在平面上存在这些点我希望能用一条直线尽可能经过它们。

于是我们画了下面的一条直线

这样的过程就叫做回归。

这个过程中我们的目的其实就是寻找输入变量(自变量)和输出变量的关系(因变量)

线性回归的定义

线性回归:上图中我们进行的回归就是线性回归
线性回归实际上是假设输入变量x和输出变量y存在着这样的关系
在刚刚的情况下,横坐标为,那么公式上图可以表示为,w实际上是这样的一个矩阵,而x实际上是的这样一个矩阵,二者相乘即

线性回归模型

损失函数

我们已经知道了线性回归的定义,那么如何寻找这样的一条直线呢?什么样的直线是最好的?

这张图我们可以明显的看出蓝色的直线是最优的,我们判断的依据是什么?就是直线到各个点的距离
因此我们引出了损失函数
损失函数
各样本的输出,各变量权重,输入变量

我们的目的即最小化损失函数,使得到的直线到各点的距离最小

损失函数最小化

最简便求得损失函数最小值的方法当然是求导,因此我们以一元线性模型进行说明
存在如下样本训练集T={(3,3),(4,3),(1,1)},求出它的回归直线
我们可以得到以下公式

我们的目标是的最小化
分别求a,b的偏导得


另两个偏导等于0可以求得a,b
*a=0.71428571,b=0.42857143
使用matplotlib画出图像

使用最小二乘法求得最优解

上文对于一元线性回归方程使用基础的数学方法可得出结果,当求解多元线性回归方程,为了计算的简便,我们通常会将数据转化为矩阵,通过最小二乘法求出数据的结果。
我们已经知道损失函数的矩阵形式表示为

那么我们使用矩阵的求导方法即可得出最优的W
Wiki已经给出了推导,对于没有梯子的可以参照该博文最小二乘法的矩阵形式推导

通过最小二乘法我们得出最优的w为

# X,Y以上文举例分别为[3,2],[3,1]的矩阵
import numpy as np
X = [[3,1],[4,1],[1,1]]
Y= [[3],[3],[1]
X = np.mat(X)
Y = np.mat(Y)
w = (X.T*X).I*X.T*Y

下载.png

转载于:https://www.cnblogs.com/lynsyklate/p/6444052.html

Linear Regression(一)——相关推荐

  1. 【cs229-Lecture2】Linear Regression with One Variable (Week 1)(含测试数据和源码)

    从Ⅱ到Ⅳ都在讲的是线性回归,其中第Ⅱ章讲得是简单线性回归(simple linear regression, SLR)(单变量),第Ⅲ章讲的是线代基础,第Ⅳ章讲的是多元回归(大于一个自变量). 本文的 ...

  2. R语言使用lm函数拟合多元线性回归模型、假定预测变量没有交互作用(Multiple linear regression)

    R语言使用lm函数拟合多元线性回归模型.假定预测变量没有交互作用(Multiple linear regression) 目录

  3. Python使用sklearn和statsmodels构建多元线性回归模型(Multiple Linear Regression)并解读

    Python使用sklearn和statsmodels构建多元线性回归模型(Multiple Linear Regression)并解读 #仿真数据集(预测股票指数) 这里的目标是根据两个宏观经济变量 ...

  4. R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression Line)

    R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression Line) 目录 R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression ...

  5. R语言基于线性回归(Linear Regression)进行特征筛选(feature selection)

    R语言基于线性回归(Linear Regression)进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为&qu ...

  6. 局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归

    局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归 locally weighted scatterplot smoothing,LOWE ...

  7. python中的linearregression_【python+机器学习(2)】python实现Linear Regression

    欢迎关注哈希大数据微信公众号[哈希大数据] python实现多元线性回归算法(lr) 想必大家在很早之前就接触过函数的概念,即寻找自变量和因变量之间的对应关系,一元一次.多元一次.一元二次等等,表示的 ...

  8. Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作...

    %测试数据 'ex1data1.txt', 第一列为 population of City in 10,000s, 第二列为 Profit in $10,000s 1 6.1101,17.592 2 ...

  9. 机器学习之线性回归(Linear Regression)

    线性学习中最基础的回归之一,本文从线性回归的数学假设,公式推导,模型算法以及实际代码运行几方面对这一回归进行全面的剖析~ 一:线性回归的数学假设 1.假设输入的X和Y是线性关系,预测的y与X通过线性方 ...

最新文章

  1. Matlab 基于svm的图像物体分类
  2. 除夕之夜快乐!自费送10个无人机给大家
  3. wpf office 菜单_如何带回Office 2007中的旧菜单
  4. javaserver_什么是JavaServer Faces(JSF)
  5. Tomcat关闭失败,SEVERE: Could not contact localhost:8005. Tomcat may not be running.
  6. java图片压缩不失真_软件分享 | Lit图片压缩
  7. dedecms 漏洞_dedescan一款织梦漏洞扫描器
  8. 在EditPlus中配置PHP调试
  9. Js Date对象 简单操作
  10. Star Schema完全参考手册学习笔记九
  11. 华为鸿蒙为什么非要碰物联网?
  12. Python内置的服务器的使用
  13. win10系统怎么改奇摩输入法_Yahoo! 奇摩输入法
  14. sqlserver行列转换,动态行转换
  15. 电子书阅读器背景颜色修改方法
  16. java 事务级别_java事务隔离级别
  17. springboot获取客户端IP及IP归属地
  18. php5.6 oracle11,解决ORA-16055: FAL request rejected
  19. linux和windows文件加密,在Linux和 Windows 上使用 EncFS,如何加密雲存儲
  20. 【模块】MAX31865 铂电阻温度检测器模块 RTD传感器PT100-PT1000

热门文章

  1. 全面认识网络诊断命令功能与参数——netsh diagnostic命令
  2. 项目松弛时期 团队如何休养生息?
  3. arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改
  4. Python爱好者,这里有一个库可以帮助你作为新手掌握人工智能!
  5. linux selenium_爬虫界又出神器|一款比selenium更高效的利器
  6. 了解下WSDL 文档
  7. 电气毕业什么都不会怎么办?电气专业毕业的都去干什么了?
  8. 单片机学习从入门到入土?这3个关键点导致!
  9. linux+软盘启动程序,软盘上的Linux系统方案
  10. 第1关:实现一个顺序存储的线性表