2.1 线性回归简介
学习目标
- 了解线性回归的应用场景
- 知道线性回归的定义
1 线性回归应用场景
-
房价预测
-
销售额预测
-
贷款额度预测
线性关系举例:

2 什么是线性回归
2.1 定义与公式
线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。
-
特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归。
通用公式 h ( w ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + . . . + b = w T x + b h(w)=w{_1}x{_1}+w{_2}x{_2}+w{_3}x{_3}+...+b=w^Tx+b h(w)=w1x1+w2x2+w3x3+...+b=wTx+b,
其中 w w w, x x x可以理解为矩阵: w = ( b w 1 w 2 ⋮ ) w= \begin{pmatrix} b \\ w{_1} \\ w{_2} \\ \vdots \end{pmatrix} w=⎝⎜⎜⎜⎛bw1w2⋮⎠⎟⎟⎟⎞, x = ( 1 x 1 x 2 ⋮ ) x= \begin{pmatrix} 1 \\ x{_1} \\ x{_2}\\\vdots \end{pmatrix} x=⎝⎜⎜⎜⎛1x1x2⋮⎠⎟⎟⎟⎞
-
线性回归用矩阵表示举例
{ 1 × x 1 + x 2 = 2 0 × x 1 + x 2 = 2 2 × x 1 + x 2 = 3 \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} ⎩⎪⎨⎪⎧1×x1+x2=20×x1+x2=22×x1+x2=3
写成矩阵形式:
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ &\begin{bmat…
从列的角度看:
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ &\begin{bmatri…
那么怎么理解呢?我们来看几个例子
- 期末成绩:0.7×考试成绩+0.3×平时成绩
- 房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
上面两个例子,我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型。
2.2 线性回归的特征与目标的关系分析
线性回归当中主要有两种模型,**一种是线性关系,另一种是非线性关系。**在这里我们只能画一个平面更好去理解,所以都用单个特征或两个特征举例子。
-
线性关系
- 单变量线性关系:
-
多变量线性关系
注释:单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系
更高维度的我们不用自己去想,记住这种关系即可
-
非线性关系
注释:为什么会这样的关系呢?原因是什么?
如果是非线性关系,那么回归方程可以理解为:
w 1 x 1 + w 2 x 2 2 + w 3 x 3 2 w_1x_1+w_2x_2^2+w_3x_3^2 w1x1+w2x22+w3x32
小结
- 线性回归的定义【了解】
- 利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
- 线性回归的分类【知道】
- 线性关系
- 非线性关系
2.2 线性回归api初步使用
学习目标
- 知道线性回归api的简单使用
1 线性回归API
- sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
- LinearRegression.intercept_: 截距
2 举例

2.1 步骤分析
- 1.获取数据集
- 2.数据基本处理(该案例中省略)
- 3.特征工程(该案例中省略)
- 4.机器学习
- 5.模型评估(该案例中省略)
2.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)
# 打印回归系数(每个特征列前的系数)
estimator.coef_
# 打印截距
estimator.intercept_
# 利用训练的模型进行预测
estimator.predict([[100, 80]])
小结
- sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
- LinearRegression.intercept_: 截距
2.3 数学:求导
学习目标
- 知道常见的求导方法
- 知道导数的四则运算
1 导数的概念回顾
-
导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。
- 当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f’(x0)或df(x0)/dx。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wme8dm2U-1633775046328)(./images/导数.jpeg)]
-
导数是函数的局部性质。一个函数在某一点的导数描述了这个函数在这一点附近的变化率。
- 如果函数的自变量和取值都是实数的话,函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率
- 导数的本质是通过极限的概念对函数进行局部的线性逼近。例如在运动学中,物体的位移对于时间的导数就是物体的瞬时速度
-
不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。
- 若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导
- 可导的函数一定连续;不连续的函数一定不可导
-
对于可导的函数f(x),x↦f’(x)也是一个函数,称作f(x)的导函数(简称导数)。寻找已知的函数在某点的导数或其导函数的过程称为求导
- 实质上,求导就是一个求极限的过程,导数的四则运算法则也来源于极限的四则运算法则
- 已知导函数也可以倒过来求原来的函数
2 常见函数的导数
公式 | 例子 |
---|---|
( C ) ′ = 0 (C)^\prime=0 (C)′=0 | ( 5 ) ′ = 0 \left(5\right)^\prime=0 (5)′=0 ( 10 ) ′ = 0 \left(10\right)^\prime=0 (10)′=0 |
( x α ) ′ = α x α − 1 \left(x^\alpha\right)^\prime=\alpha x^{\alpha-1} (xα)′=αxα−1 | ( x 3 ) ′ = 3 x 2 \left(x^3\right)^\prime=3 x^{2} (x3)′=3x2 ( x 5 ) ′ = 5 x 4 \left(x^5\right)^\prime=5 x^{4} (x5)′=5x4 |
( a x ) ′ = a x ln a \left(a^x\right)^\prime=a^{x}\ln{a} (ax)′=axlna | ( 2 x ) ′ = 2 x ln 2 \left(2^x\right)^\prime=2^x\ln{2} (2x)′=2xln2 ( 7 x ) ′ = 7 x ln 7 \left(7^x\right)^\prime=7^x\ln{7} (7x)′=7xln7 |
( e x ) ′ = e x \left(e^x\right)^\prime=e^{x} (ex)′=ex | ( e x ) ′ = e x \left(e^x\right)^\prime=e^{x} (ex)′=ex |
( log a x ) ′ = 1 x ln a \left(\log{_a}x\right)^\prime=\frac{1}{x\ln{a}} (logax)′=xlna1 | ( log 10 x ) ′ = 1 x ln 10 \left(\log{_{10}}x\right)^\prime=\frac{1}{x\ln{10}} (log10x)′=xln101 ( log 6 x ) ′ = 1 x ln 6 \left(\log{_{6}}x\right)^\prime=\frac{1}{x\ln{6}} (log6x)′ |