机器学习算法-线性回归
1.K-近邻算法
(略)
2.线性回归
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_1x_1+w_2x_2+w_3x_3...+b=w^Tx+b h(w)=w1x1+w2x2+w3x3...+b=wTx+b
其中w,x可以理解为矩阵:
w = ( b w 1 w 2 ) , x = ( 1 x 1 x 2 ) w=\bigg( \begin{smallmatrix} b\\w_1\\w_2 \end{smallmatrix} \bigg),x=\bigg( \begin{smallmatrix} 1\\x_1\\x_2 \end{smallmatrix} \bigg) w=(bw1w2),x=(1x1x2)
-
线性回归用矩阵表示举例
{ 1 × x 1 + x 2 = 2 0 × x 1 + x 2 = 2 2 × x 1 + x 2 = 3 \left\{ \begin{matrix} 1 \times x_1 + x_2=2\\ 0 \times x_1 + x_2=2\\ 2 \times x_1 + x_2=3 \end{matrix} \right. ⎩ ⎨ ⎧1×x1+x2=20×x1+x2=22×x1+x2=3 -
写成矩阵形式:
[ 1 1 0 1 2 1 ] [ x 1 x 2 ] = [ 2 2 3 ] ↑ ↑ ↑ A × x = b \left[\begin{matrix}1&1\\0&1\\2&1\end{matrix}\right] \left[\begin{matrix}x_1\\x_2\end{matrix}\right] =\left[\begin{matrix}2\\2\\3\end{matrix}\right]\\ \uparrow \quad \quad \quad \uparrow \quad \quad \quad \uparrow\\ A \quad \times \quad x\quad = \quad b 102111 [x1x2]= 223 ↑↑↑A×x=b
2.2线性回归api初步使用
code
from sklearn.linear_model import LinearRegression
# 1.获取数据
X = [[80, 86],
[82, 80],
[90, 90],
[85, 78],
[86, 82],
[82, 90],
[78, 80],
[92, 94]
]
y = [84.2, 80.6, 80.1, 90, 83.2, 86.6, 79.4, 93.4]
# 2.模型训练
# 2.1实例化一个估计器
estimator = LinearRegression()
# 2.2使用fit方法进行训练
estimator.fit(X, y)
# 打印对应的系数
print("线性回归的系数是:\n", estimator.coef_)
# 打印预测结果
print("输出预测结果:\n", estimator.predict([[100, 80]]))
# D:\Python\Python311\python.exe D:\work\pyprj\ml\linser_demo.py
# 线性回归的系数是:
# [0.41212411 0.13044053]
# 输出预测结果:
# [90.47473664]
2.3数学:求导
1、常见的函数导数
n 公式 例子 1 ( 常数 ) ′ = 0 ( 5 ) ′ = 0 ( 10 ) ′ = 0 2 ( x a ) ′ = a x a − 1 ( x 3 ) ′ = 3 x 2 3 ( a x ) ′ = a x l n a ( 2 x ) ′ = 2 x l n 2 4 ( e x ) ′ = e x ( e x ) ′ = e x 5 ( l o g a x ) ′ = 1 x l n a ( l o g 10 x ) ′ = 1 x l n 10 6 ( l n x ) ′ = 1 x ( l n x ) ′ = 1 x 7 ( s i n x ) ′ = c o s x ( s i n x ) ′ = c o s x 8 ( c o s x ) ′ = − s i n x ( c o s x ) ′ = − s i n x \begin{array} {|c|l|l|} \hline n & \text{公式} & \text{例子} \\ \hline 1 & (常数)'=0 & (5)'=0 (10)'=0 \\ \hline 2 & (x^a)'=ax^{a-1} & (x^3)'=3x^2 \\ \hline 3 & (a^x)'=a^xlna & (2^x)'=2^xln2 \\ \hline 4 & (e^x)'=e^x & (e^x)'=e^x\\ \hline 5 & (log_ax)'= \frac{1}{xlna} & (log_{10}x)'= \frac{1}{xln10}\\ \hline 6 & (lnx)'= \frac{1}{x} & (lnx)'= \frac{1}{x}\\ \hline 7 & (sinx)'= cosx & (sinx)'= cosx \\ \hline 8 & (cosx)'= -sinx & (cosx)'= -sinx\\ \hline \end{array} n12345678公式(常数)′=0(xa)′=axa−1(ax)′=axlna(ex)′=ex(logax)′=xlna1(lnx)′=x1(s