一、简单的线性回归
例如: y=ax+b
这个公式中,y是目标变量(应变量),x是自变量,x是影响y的因素,a,b的公式上的参数即要求的模型。在数学里面 y=ax+b是 一元一次方程,a是这个方程的斜率,b是在y的截距。
当我们有多个方程组(已知的x,y),多个方程组解出来的参数a,b的值不一样。那我们需要寻求最优解
二、多元线性回归
1、多元线性回归公式
y:表示每条样本的真实值,每个样本有x1到xn个特征
x1到xn :表示样本的特征值
β0 到βn :表示特征的权值,代表对应的重要程度 ,也叫权重
上面的式子用向量表示
在多元线性回归中 W 是一维向量,代表的是 W0 到 Wn
三、最优解
Actual value:真实值,即已知的y
Predicted value:预测值,是把已知的x带到公式里面和猜出来的参数a,b计算得到的
Error:误差,预测值和真是值得差距
最优解:尽可能的找到一个模型使得整体的误差最小,整体的误差通常叫做损失loss
Loss:整体的误差,loss通过损失函数loss function(MSE:平方误差均值)计算得到
MES:误差和,也叫做loss损失,叫做平方均值损失
四、求出多元线性回归的损失函数
1、目的:通过损失函数来得出最优解
2、数学概念补充
2.1 中心极限定理含义:讲的是随机且独立的变量服从正太分布
2.2 正太分布的含义:落在中间概率较大,两侧概率较小,由期望和方差唯一决定,概率密度函数如图
2.3 最大似然估计:是用来估计一个概率模型的参数的一种方法
公式:
最大似然估计详解:最大似然估计_百度百科
概率密度函数
3、过程:
3.1 机器学习中我们假设误差符合均值为 0,方差为定值的正态分布,符合中心极限定理
3.2 正太分布的线性回归的最大总似然
由3.1 中我们可知误差服从了相互独立的假设,通过概率密度函数和概率连乘公式可得
其中概率连乘:条件:相互独立
误差
则上式可写成
注意:求总似然的最大值,参数为θ
3.3 通过对数似然函数可以推导出损失函数
使用对数似然函数的好处:提高计算效率,减少的计算时间
五、通过损失函数求出最优解的方法
1、解析解方式
条件:损失函数为线性且为凸函数
通过解析解方式求多元线性回归最优解_宠乖仪的博客-CSDN博客
2、梯度下降算法
好处:可以解决非线性损失函数的求最优解问题
对损失函数进行求导,如下
六、sklearn模块中的 LinearRegression类
from sklearn.linear_model import LinearRegression
# 创建线性实例
lin_reg =LinearRegression(
fit_intercept=True :默认为True 是否包括截距项;
normalize=False :默认为False 是否进行归一化处理,一般是单独进行归一化;
copy_X=True :默认为True 是否对X复制,如果为True, X将被复制;为False,它可能会被
覆盖。
positive :值为True 强制系数为正。这选项只支持密集阵列。
)
# LinearRegression类的方法
lin_reg.fit(X,y) # 训练模型
# LinearRegression类的属性
lin_reg.coef_ # 除截距项以外的特征的权重值;
lin_reg.intercept_ # 截距项值,如果fit_intercept=False,那截距项为0
lin_reg.rank_ :整形,矩阵X的秩。仅当' X '密集时可用。
lin_reg.singular_ :数组的形状(min(X, y),),' X '的奇异值。仅当' X '密集时可用。
# 用于预测测试集的值
lin_reg.predict(X) # 返回测试集的预测值