ai-2、机器学习之线性回归
机器学习之线性回归
- 1、机器学习
- 2、线性回归
- 2.1、梯度下降法
- 3、python下调用scikit-learn
1、机器学习
2、线性回归
####所以y可以当成我们需要的结果,根据公式可以求的y一撇的值更小,所以更接近需要的结果,所以y一撇拟合性更好
2.1、梯度下降法
已知:
J = f
(
(
(p
)
)
) = 3.5p
2
^2
2-14p+14
p
i
_i
i = 0.5 ,
α
\alpha
α = 0.01
p
i
+
1
_{i+1}
i+1= ??
∵
\because
∵ 一元二次函数 f
(
(
(p
)
)
) = ap
2
^2
2-bp+c的幂函数求导公式
f
(
(
(x
)
)
) = x
a
^a
a ->
f
′
f\prime
f′(
x
x
x) = ax
a
−
1
^{a-1}
a−1
∵
\because
∵
3.5p
2
^2
2其导数为2*3.5p
(
2
−
1
)
^{(2-1)}
(2−1) = 7p
-14p其导数为-14*p ( 1 − 1 ) ^{(1-1)} (1−1)=-14
14为常数项导数为0
∵ \because ∵ 3.5p 2 ^2 2-14p+14的导数是7p-14
∴ \therefore ∴ α \alpha α δ δ p i \frac{\delta}{\delta p_i} δpiδf ( ( (p i _{i} i ) ) ) = 7p-14
∵ \because ∵ p i _i i = 0.5
∴ \therefore ∴ 代入 α \alpha α δ δ p i \frac{\delta}{\delta p_i} δpiδf ( ( (p i _{i} i ) ) )=7*0.5-14=-10.5
∴ \therefore ∴ 损失函数J = 0.5-0.01*(-10.5) = 0.605
∴
\therefore
∴ 损失函数梯度值为0.605
3、python下调用scikit-learn
https://scikit-learn.org/stable/
可以用简短的代码求解模型
import numpy as np
from sklearn.linear_model import LinearRegression
# 获取数据
x = [1,2,3,4,5,6,7,8,9,10]
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
X = x.reshape(-1, 1)
y = np.array([7,9,11,13,15,17,19,21,23,25])
# 寻找a、b(y = ax + b)
lr_model = LinearRegression()
lr_model.fit(X,y)
# 展示a、b
a = lr_model.coef_
b = lr_model.intercept_
#打印系数a和截距b
print("系数a",a)
print("截距b",b)
#对新数据进行预测
x_new = np.array([11,12])
X_new = x_new.reshape(-1, 1)
predictions = lr_model.predict(X_new)
#打印预测数据
print("预测数据是:",predictions)