线性回归原理¶
学习目标¶
- 掌握线性回归模型公式含义
- 掌握 LinearRegression API 的使用
1 线性回归应用场景¶
-
房价预测
-
销售额预测
-
贷款额度预测
线性关系举例:
2 什么是线性回归¶
2.1 定义与公式¶
线性回归(Linear regression)是利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。
特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归。
通用公式 \(h(w)=w{_1}x{_1}+w{_2}x{_2}+w{_3}x{_3}+...+b=w^Tx+b\),
其中\(w\), \(x\)可以理解为矩阵:\(w= \begin{pmatrix} b \\ w{_1} \\ w{_2} \\ \vdots \end{pmatrix}\), \(x= \begin{pmatrix} 1 \\ x{_1} \\ x{_2}\\\vdots \end{pmatrix}\)
线性回归用矩阵表示举例:
\(\begin{cases}1 \times x{_1} + x{_2} = 2 \\ 0 \times x{_1} + x{_2} = 2 \\ 2 \times x{_1} + x{_2} = 3 \end{cases}\)
写成矩阵形式:
\(\begin{split} &\begin{bmatrix} 1 \quad 1 \\ 0 \quad 1 \\ 2 \quad 1 \end{bmatrix} &\begin{bmatrix} x{_1} \\ x{_2} \end{bmatrix} &=&\begin{bmatrix} 2 \\ 2 \\ 3 \end{bmatrix} \\ &\quad\:\: \uparrow &\:\:\:\uparrow &&\:\:\: \uparrow \\ &\quad\:\: A\;\times\;&\:\:\:\: x&=&\:\:\:\: b \end{split}\)
从列的角度看:
\(\begin{split} &\begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix} &\times& x{_1} &+& &\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} &\times& x{_2} & = &\begin{bmatrix} 2 \\ 2 \\ 3 \end{bmatrix} \\ &\:\:\:\uparrow&&&&&\:\:\:\uparrow&&&&\:\:\:\uparrow \\ &\:\:\:\:a{_1} &\times& x{_1} &+& &\:\:\:a{_2} &\times& x{_2} &=&\:\:\:\:b \end{split}\)
那么怎么理解呢?我们来看几个例子
- 期末成绩:0.7×考试成绩+0.3×平时成绩
- 房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
上面两个例子, 我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型 。
2.2 线性回归的特征与目标的关系分析¶
线性回归当中主要有两种模型, 一种是线性关系,另一种是非线性关系。 在这里我们只能画一个平面更好去理解,所以都用单个特征或两个特征举例子。
线性关系 :
- 单变量线性关系:
- 多变量线性关系
注释:单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系
更高维度的我们不用自己去想,记住这种关系即可
- 非线性关系
注释:为什么会这样的关系呢?原因是什么?
如果是非线性关系,那么回归方程可以理解为:
\(w_1x_1+w_2x_2^2+w_3x_3^2\)
3. 线性回归API初步使用¶
3.1 线性回归API¶
sklearn中, 线性回归的API在linear_model模块中
sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
3.2 举例¶
代码实现:
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]
# 实例化API
estimator = LinearRegression()
# 使用fit方法进行训练
estimator.fit(x,y)
print(estimator.coef_)
# 对未知样本预测
estimator.predict([[100, 80]])
4. 小结¶
- 线性回归公式 \(h(w)=w{_1}x{_1}+w{_2}x{_2}+w{_3}x{_3}+...+b=w^Tx+b\),h(w) 为目标值
- 线性回归公式中,w、b 代表模型参数
- LinearRegression.fit 表示模型训练函数
- LinearRegression.predict 表示模型预测函数
- 线性回归模型的目标:通过学习得到线性方程的这两个权值,如在y=kx+b中,得到k和b两个权值,并用这个方程解释变量和目标变量之间的关系。