目录
1、线性回归的原理
基础定义
线性回归是利用数理统计中的回归分析,来确定两种或两种以上属性间相互依赖的定量关系的一种统计分析方法。举个例子,一套房子的具有面积、卧室数量、卫生间数量等三个属性,该房子的售价与上述三个属性息息相关,可以根据实际情况构造出各个属性之间的线性关系表达式,表达式就被成为线性回归方程;
房屋价格 = 0.8500 * 面积 + 0.0500 * 卧室数量 + 0.0015 * 卫生间数量
在实际生活中,我们可以获取多套房屋的面积、卧室数量、卫生间数量、售价等数据的值,根据历史数据,可以构造出属性之间更接近实际情况的线性数量关系表达式,利用线性回归方法对未出售的房屋售价进行预测。

根据上述的历史数据,可以构造出一个简单的线性关系表达式:

这个方程称为回归方程, θ1和θ2称为回X1和X2归系数或权重。预测的Y值需要尽可能的接近于接近于实际情况,为了衡量h(x)有多“接近”y,定义损失函数(cost function):

上述方程成为最小二乘损失函数,y(i)表示第i个训练实例对应的目标变量值,m为房屋的数量;常数1/2是为了方便后续计算;最小二乘法其实又叫最小平方法。
公式推导

对于一元线性回归来说,根据已知X和Y值,我们可以在坐标轴上面描出所有的点,找出一条直线,使这条直线“最贴近”已知的数据点,设此直线方程为:

上述方程叫做Y对x的回归直线方程,b叫做回归系数。要想确定回归直线方程,我们只需确定a与回归系数b即可。
该方程预测出来的y值和实际的值差别越小越好,只有如此才能使直线最贴近已知点。我们求回归直线方程的过程其实就是求差别最小值的过程。
一个很自然的想法是把各个差加起来作为总差。可是,由于差有正有负,直接相加会互相抵消, 一般做法是我们用差的平方和,即:

Q作为总差 ,并使之达到最小。这样回归直线就是所有直线中Q取最小值的那一条。由于平方又叫二乘方,所以这种使“离差平方和为最小”的方法,叫做最小二乘法。分别对a ,b 求导数,然后又令偏导数为0,可以得到最小二乘法求回归直线方程中的a、b的公式如下:

简单理解
小王跑运输的,跑1公里需要6块,跑2公里需要5块(那段时间刚好油价跌了),跑3公里需要7块,跑4 公里需要10块,请问跑5公里需要多少块? 这里假定x是公里数,y是运输成本(β1和β2是要求的系数)。我们把上面的一组数据代入得到这么几个方程:

如果存在这样的β1和β2,让所有的数据(x,y)=(1,6),(2,5),(3,7),(4,10)都能满足 的话,那么解答就很简单了。找不到一条直线,穿过所有的点,因为他们不在一条直线上。希望找到一条直线,虽然不能满足所有 条件,但能近似地表示这个趋势,或者说,能近似地知道5公里的运输成本。
2、最小二乘法PYTHON实现
0. 导入相关库
import numpy as np
import matplotlib.pyplot as plt
1. 导入数据
points = np.genfromtxt('data.csv', delimiter=',') #生成points数组
points[0,0]
# 提取points中的两列数据,分别作为x,y
x = points[:, 0]# 第一列
y = points[:, 1]# 第二列
# 用plt画出散点图
plt.scatter(x, y)
plt.show()

2. 定义损失函数
# 损失函数是系数的函数,另外还要传入数据的x,y
def compute_cost(b, a

本文深入解析线性回归原理,介绍其在预测分析中的应用,并通过Python实现最小二乘法,以求解最佳拟合直线,提供直观的代码示例。

11万+

被折叠的 条评论
为什么被折叠?



