线性回归应用场景
- 房价预测
- 销售额预测
- 贷款额度预测
线性回归(Linear regression)是利用 回归方程对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。
- 期末成绩:0.7×考试成绩+0.3×平时成绩
- 房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价)
我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型 。
线性回归当中主要有两种模型, 一种是线性关系,另一种是非线性关系。
线性回归API
sklearn中, 线性回归的API在linear_model模块中
sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
from sklearn.linear_model import LinearRegression x = [[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]] y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4] estimator = LinearRegression() estimator.fit(x,y) print(estimator.coef_) print(estimator.predict([[100, 80]])) [0.3 0.7] [86.]
- LinearRegression.fit 表示模型训练函数
- LinearRegression.predict 表示模型预测函数
- 线性回归模型的目标:通过学习得到线性方程的这两个权值,y=kx+b中,得到k和b两个权值
损失函数
- 衡量机器学习模型性能
- 损失函数可以计算预测值与真实值之间的误差,误差越小说明模型性能越好。
- 确定损失函数之后, 我们通过求解损失函数的极小值来确定机器学习模型中的参数。
X = [0.0, 1.0, 2.0, 3.0]
y = [0.0, 2.5, 3.3, 6.2]
上面的数据中,X与y的关系可以近似的表示为一元线性关系, 即 y = WX
训练线性回归模型模型的过程实际上就是要找到一个合适的W
我们将距离定义为:dis=y1-y2,可以计算出当W=5.0时预测的误差分别为:0、2.5、6.7、8.8
将上面所有点的预测误差相加得到18,误差有些大,模型还有调整的空间,令W=2时计算出误差为0,但实际情况除了d0之外其余点均存在预测误差。
所以我们不能简单的将每个点的预测误差相加得到误差值。
回归问题的损失函数通常用下面的函数表示:
- yi 为第i个训练样本的真实值
- h(xi) 为第i个训练样本特征值组合预测函数
损失函数在训练阶段能够指导模型的优化方向,在测试阶段能够用于评估模型的优劣。
import numpy as np from sklearn.linear_model import LinearRegression x = np.asarray([[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]]) y = np.asarray([84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]).transpose() estimator = LinearRegression(fit_intercept=True) estimator.fit(x, y) print(estimator.coef_) [0.3 0.7]
线性回归原理(二)+https://developer.aliyun.com/article/1544062?spm=a2c6h.13148508.setting.19.1fa24f0eRBJGs5