zoukankan      html  css  js  c++  java
  • 对 联合循环发电厂数据集 做线性回归

    import matplotlib.pyplot as plt
    %matplotlib inline
    from sklearn import metrics
    import numpy as np
    import pandas as pd
    from sklearn import datasets, linear_model
    data = np.loadtxt('ccpp.csv',delimiter=',',skiprows=(1),unpack=True).T
    data = np.matrix(data)
    X = data[:,0:4]
    y = data[:,4]
    X_norm = np.array(X)
    mu = np.zeros((1,X.shape[1]))   
    sigma = np.zeros((1,X.shape[1]))
    mu = np.mean(X_norm,0)          # 求每一列的平均值(0指定为列,1代表行)
    sigma = np.std(X_norm,0)        # 求每一列的标准差
    for i in range(X.shape[1]):     # 遍历列
        X_norm[:,i] = (X_norm[:,i]-mu[i])/sigma[i]  # 归一化
    # print(X_norm[:,1]-mu[1])
    # print(X_norm[:,1])
    X = X_norm
    m,n = X.shape
    X = np.hstack((np.ones((m,1)),X))
    X.shape
    # print(X)
    
    ##划分数据集变成训练集和测试集
    #我们把X和y的样本组合划分成两部分,一部分是训练集,一部分是测试集,代码如下:
    
    from sklearn.cross_validation import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
    
    ss = np.ones(len(X_train)-6062)
    
    w = np.matrix([[1],[1],[1],[1],[1]])
    for i in np.arange(0,len(X_train)-6062):
        t = X_train[i]
        t=np.matrix(t)
        yt = y_train[i]
        yt=np.matrix(yt)
        l = t.T*(yt-t*w)
        ws = 0.01*l
        w = w+ws
        y_tt = y_test*1
        for t in np.arange(0,len(X_test)):
            y_tt[t] = (X_test[t]*w)
        ss[i] = metrics.mean_squared_error(y_test, y_tt)
    
    print(w)
    
    y_tt = y_test*1
    for i in np.arange(0,len(X_test)):
        y_tt[i] = (X_test[i]*w)
    
    re = np.array(y_test.T)
    res = np.array(y_tt.T)
    
    fig, ax = plt.subplots()
    ax.scatter(re[0],res[0])
    ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k', lw=4)
    ax.set_xlabel('Measured')
    ax.set_ylabel('Predicted')
    plt.show()

    数据集: http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant

  • 相关阅读:
    新增模块--性能调测问题荟萃
    SSDB(网络LevelDB)-- 实际遇到的问题
    内存池--定长内存池
    分布式系统
    Tcp Ip -- tcpdump win窗口大小
    GCC手册学习(序)
    GNU--gprof使用总结
    几种TCP连接中出现RST的情况(转载)
    Tcp/Ip--正常情况下的三次握手,四次挥手
    关于cnblogs的排版
  • 原文地址:https://www.cnblogs.com/zhzf/p/9717382.html
Copyright © 2011-2022 走看看