建设工程质量监督网站上海站群优化
机器学习之线性回归
- 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)