用sklearn求解线性回归
-
- # 导入文件
- from sklearn.metrics import mean_squared_error, r2_score
- import numpy as np
- from sklearn.linear_model import LinearRegression
- from matplotlib import pyplot as plt
- import pandas as pd
- data = pd.read_csv('data.csv')
- # 赋值
- x = data.loc[:, 'x'] # 用data.drop(['不要的数据'],axis=1)可以获得多个变量
- y = data.loc[:, 'y']
- # 展示
- fig1 = plt.figure(figsize=(5, 5))
- plt.scatter(x, y)
- plt.title('raw data')
- plt.show()
- # 建立线性回归模型
- Ir_model = LinearRegression()
- # 转换维度
- x = np.array(x)
- x = x.reshape(-1, 1)
- y = np.array(y)
- y = y.reshape(-1, 1)
- # 转换维度,用多个变量就不用处理了
-
- Ir_model.fit(x, y)
- y_predict = Ir_model.predict(x)
- # 预测
- y_3 = Ir_model.predict([[3.5]])
- print(y_3)
-
- a = Ir_model.coef_
- b = Ir_model.intercept_
- print(a, b)
- # 评估模型
- MSE = mean_squared_error(y, y_predict)
- R2 = r2_score(y, y_predict)
- print(MSE, R2)
- plt.figure()
- plt.title('commend figure')
- plt.scatter(y, y_predict)
- plt.show()