高校门户网站建设建议,永久免费云主机,暴雪战网官网,win优化大师官网线性回归
线性回归#xff1a;根据数据#xff0c;确定两种或两种以上变量间相互依赖的定量关系
函数表达式#xff1a; y f ( x 1 , x 2 . . . x n ) y f(x_1,x_2...x_n) yf(x1,x2...xn) 回归根据变量数分为一元回归[ y f ( x ) yf(x) yf(x)]和多元回归[ y …线性回归
线性回归根据数据确定两种或两种以上变量间相互依赖的定量关系
函数表达式 y f ( x 1 , x 2 . . . x n ) y f(x_1,x_2...x_n) yf(x1,x2...xn) 回归根据变量数分为一元回归[ y f ( x ) yf(x) yf(x)]和多元回归[ y f ( x 1 , x 2 . . . x n ) y f(x_1,x_2...x_n) yf(x1,x2...xn)]根据函数关系分为线性回归[ y a x b yaxb yaxb]与非线性回归[ y a x 2 b x c yax^2bxc yax2bxc]
平方误差成本函数 m i n i m i z e ( J ) minimize(J) minimize(J) J 1 2 m ∑ i 1 m ( y i ‘ − y i ) 2 1 2 m ∑ i 1 m ( a x i b − y i ) 2 g ( a , b ) J\frac{1}{2m} \sum_{i1}^{m}(y^{}_i-y_i)^2\frac{1}{2m} \sum_{i1}^{m}(ax_ib-y_i)^2g(a,b) J2m1i1∑m(yi‘−yi)22m1i1∑m(axib−yi)2g(a,b)
梯度下降算法 J f ( p ) Jf(p) Jf(p) p p − α ∂ ∂ p i f ( p i ) p p - \alpha \frac{\partial}{\partial p_i}f(p_i) pp−α∂pi∂f(pi)
寻找极小值的一种方法。通过向函数上当前点对应梯度或者是近似梯度的反方向的规定步长距离点进行迭代搜索直到在极小点收敛。
实验
基于generated_data.csv数据建立线性回归模型预测x3.5对应的y值评估模型表现
#load the data
import pandas as pd
data pd.read_csv(D:\workspace\data\ML\generated_data.csv)data.head()
print(type(data), data.shape)x data.loc[:,x]
y data.loc[:,y]
print(x,y)#visualize the data
from matplotlib import pyplot as plt
plt.figure(figsize(5,5))
plt.scatter(x,y)
plt.show()# set up a linear regression model
from sklearn.linear_model import LinearRegression
lr_model LinearRegression()import numpy as np
x np.array(x)
x x.reshape(-1,1)
y np.array(y)
y y.reshape(-1,1)lr_model.fit(x,y)y_predict lr_model.predict(x)
print(y_predict)print(y)y_predict_single lr_model.predict([[3.5]])print(y_predict_single)# a/b print
a lr_model.coef_
b lr_model.intercept_
print(a,b)from sklearn.metrics import mean_squared_error, r2_score
MSE mean_squared_error(y, y_predict)
R2 r2_score(y, y_predict)
print(MSE, R2)plt.figure()
plt.plot(y,y_predict)
plt.show()运行结果 其中MSE为 3.1554436208840474 e − 31 3.1554436208840474e^{-31} 3.1554436208840474e−31R2为1.0
实验结论在这个实验中我们建立了一个单因子线性回归模型得到x3.5对应的y值为12其均方误差MSE非常接近于零而确定系数R^2接近于1。这表明我们的模型可以非常好地拟合数据预测能力非常强。
附generated_data,csv数据