代码给出了如何线性拟合散点数据的方法。
#导入数据
import pandas as pd
data=pd.read_csv('test.csv')
data.head()#显示前五行数据
x=data.loc[:,'x']
print(x)
y=data.loc[:,'y']
print(y)
from matplotlib import pyplot as plt
plt.figure(figsize=(3,3))
plt.scatter(x,y)
plt.show()
#建立一个线性回归模型
from sklearn.linear_model import LinearRegression
lr_model=LinearRegression()
print(x,y)
#lr_model.fit(x,y)#错误表达,shape不对
print(type(x),x.shape)
import numpy as np
x=np.array(x)
y=np.array(y)
print(x)
print(y)
x=x.reshape(-1,1)
y=y.reshape(-1,1)
print(x)
print(y)
lr_model.fit(x,y)
y_p=lr_model.predict(x)
print(y_p)
y_3=lr_model.predict([[3]])
print(y_3)
a=lr_model.coef_
b=lr_model.intercept_
print(a)
print(b)
from sklearn.metrics import mean_squared_error,r2_score
MSE=mean_squared_error(y,y_p)
R2=r2_score(y,y_p)
print(MSE,R2)
plt.scatter(x,y)
plt.plot(x,y_p)
plt.legend(['train_data','predict_data'])
plt.show()