线性回归之电力预测

import pandas as pd
# pandas 读取数据
data = pd.read_csv("C:/Users/Administrator/Desktop/data/ccpp.csv")
data.head()

X = data[["AT","V","AP","RH"]]
print(X.shape)
y = data[["PE"]]
print (y.shape)

from sklearn.cross_validation import train_test_split
# 划分训练集和测试集
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=1)
print (X_train.shape)
print (y_train.shape)
print (X_test.shape)
print (y_test.shape)


from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
linreg.fit(X_train,y_train)
# 训练模型完毕,查看结果
print (linreg.intercept_)# 截距
print (linreg.coef_)  #系数


y_pred = linreg.predict(X_test)
from sklearn import metrics
import numpy as np
# 使用sklearn来计算mse和Rmse
print ("MSE:",metrics.mean_squared_error(y_test, y_pred))
print ("RMSE:",np.sqrt(metrics.mean_squared_error(y_test, y_pred)))


# 交叉验证
from sklearn.model_selection import cross_val_predict
predicted = cross_val_predict(linreg,X,y,cv=10)
print ("MSE:",metrics.mean_squared_error(y, predicted))
print ("RMSE:",np.sqrt(metrics.mean_squared_error(y, predicted)))


# 画图查看结果
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.scatter(y, predicted)
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show()

猜你喜欢

转载自blog.csdn.net/qq_42422981/article/details/82837700
今日推荐