1、线性回归
线性:输入和输出变量之间的关系为一次方函数,即在空间上是一条直线。
回归:在模型(函数、关系式、映射关系等)中输入数据,输出的结果是连续的值,这个过程叫回归。ps:回归是典型的监督学习。
线性回归:在N维空间中使用直线方程拟合数据的过程。
2、损失函数
损失函数(Loss Function):度量单样本预测的错误程度,损失函数值越小,模型就越好。
代价函数(Cost Function):度量全部样本集的平均误差。
目标函数(Object Function):代价函数和正则化函数,最终要优化的函数。
我们追求损失函数值越小越好。
是不是损失函数最小就好呢?答案是否定的?
因为随着函数复杂度提高,模型会出现过拟合。
如何解决呢?通过定义复杂度函数防止结构化风险
3、线性回归的优化方法
常用的有梯度下降法、最小二乘法矩阵求解、牛顿法、拟牛顿法等
4、线性回归的实现方法比较
运用sklearn中线性模型的代码比较方便
最小二乘法和梯度下降法需要依据原理一步一步写代码。
5、具体实现(三种方法比较)
第一步:生成数据
import numpy as ny
#生成随机数
np.random.seed(1234)
x = np.random.rand(500,3)
#构建映射关系,模拟真实的数据待预测值,映射关系为y = 4.2 + 5.7*x1 + 10.8*x2,可自行设置值进行尝试
y = x.dot(np.array([4.25,7,10.8]))
第一种方法:调用sklearn的线性回归模型训练数据
import numpy as ny
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
%matplotlib inline
#调用模型
lr = LinearRegression(fit_intercept=True)
#训练模型
lr.fit(x,y)
print("估计的参数值为:%s"