• 线性回归之电力预测


     1 import pandas as pd
     2 # pandas 读取数据
     3 data = pd.read_csv("C:/Users/Administrator/Desktop/data/ccpp.csv")
     4 data.head()
     5 
     6 X = data[["AT","V","AP","RH"]]
     7 print(X.shape)
     8 y = data[["PE"]]
     9 print (y.shape)
    10 
    11 """
    12 sklearn.cross_validation是sklearn老版本的模块,新版本都迁移到了model_selection
    13 """
    14 from sklearn.model_selection import train_test_split
    15 # 划分训练集和测试集
    16 X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=1)
    17 print (X_train.shape)
    18 print (y_train.shape)
    19 print (X_test.shape)
    20 print (y_test.shape)
    21 
    22 
    23 from sklearn.linear_model import LinearRegression
    24 linreg = LinearRegression()
    25 linreg.fit(X_train,y_train)
    26 # 训练模型完毕,查看结果
    27 print (linreg.intercept_)# 截距
    28 print (linreg.coef_)  #系数
    29 
    30 
    31 y_pred = linreg.predict(X_test)
    32 from sklearn import metrics
    33 import numpy as np
    34 # 使用sklearn来计算mse和Rmse
    35 print ("MSE:",metrics.mean_squared_error(y_test, y_pred))
    36 print ("RMSE:",np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
    37 
    38 
    39 # 交叉验证
    40 from sklearn.model_selection import cross_val_predict
    41 predicted = cross_val_predict(linreg,X,y,cv=10)
    42 print ("MSE:",metrics.mean_squared_error(y, predicted))
    43 print ("RMSE:",np.sqrt(metrics.mean_squared_error(y, predicted)))
    44 
    45 
    46 # 画图查看结果
    47 import matplotlib.pyplot as plt
    48 fig, ax = plt.subplots()
    49 ax.scatter(y, predicted)
    50 ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
    51 ax.set_xlabel('Measured')
    52 ax.set_ylabel('Predicted')
    53 plt.show()
  • 相关阅读:
    第24课 多线程开发
    第23课 装饰器
    第22课 调用外部程序
    第20课 异常处理
    第19课 习题讲解
    第18课 面向对象
    第17课 调试程序
    第16课 pycharm 使用
    第15课 模块与包
    第14课 再识函数
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725363.html
Copyright © 2020-2023  润新知