• sklearn实现线性回归


    线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法
    简单说:可以根据两个或一个变量,预测另一个变量的值
    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    from sklearn.linear_model import LinearRegression
    data = pd.read_excel('generated_data.xlsx')
    s = data.head()
    #print(s)
    x = data.loc[:,'x']
    y = data.loc[:,'y']
    #matplotlib可视化
    plt.figure()
    plt.scatter(x,y)
    #plt.show()
    
    lr_model = LinearRegression()
    x = np.array(x)
    x=x.reshape(-1,1) #转2D数组
    y = np.array(y)
    y = y.reshape(-1,1) #转2D数组
    
    lr_model.fit(x,y)
    #yy = lr_model.predict(x)
    #预测x == 11 时 , y的值
    y11 = lr_model.predict([[11]])
    print(y11)##[[27.]]

    #多因子预测 

    task2_data.csv

    """以面积、人均收入、平均房龄为输入变量,建立多因子模型,评估模型表现
    预测面积=150, 人均收入=60000, 平均房龄=5的合理房价"""
    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    from sklearn.linear_model import LinearRegression
    from sklearn.metrics import mean_squared_error,r2_score
    data = pd.read_csv('task2_data.csv')
    
    # fig = plt.figure(figsize=(20,5))
    # fig1 = plt.subplot(131)
    # plt.scatter(data.loc[:,'面积'],data.loc[:,'价格'])
    # plt.title('Price VS Size')
    #plt.show()
    #X y再次赋值
    X = data.drop(['价格'],axis=1)
    y = data.loc[:,'价格']
    X.head(100)
    
    #数据预处理
    X = np.array(X)
    
    y = np.array(y)
    y = y.reshape(-1,1)
    ##建立多因子回归模型 并且训练
    model_multi = LinearRegression()
    print('X',X)
    model_multi.fit(X,y)
    #多因子模型的预测
    y_predict_multi = model_multi.predict(X)
    #通过计算模型准确率与r2_score对模型进行评估
    MSE_multi = mean_squared_error(y,y_predict_multi)
    R2_multi = r2_score(y,y_predict_multi)
    
    
    #预测面积=150, 人均收入=60000, 平均房龄=5的合理房价 = 1037640.66671137
    X_test = np.array([[150,60000,5]])
    y_test_predict = model_multi.predict(X_test)
    print(MSE_multi,R2_multi,y_test_predict)
  • 相关阅读:
    IOS数据持久化之归档NSKeyedArchiver
    Java中导入、导出Excel
    IOS开发中多线程的使用
    深入分析动态管理Fragment
    IOS开发之数据sqlite使用
    如何在Eclipse和Tomcat的Debug过程中启用热部署
    在PHP中无法连接Memcached的解决办法
    Apache mod_rewrite规则重写的标志一览
    Java多线程中run(), start(), join(), wait(), yield(), sleep()的使用
    Centos5.8下编译安装PHP5.4和memcached, phalcon, yaf, apc
  • 原文地址:https://www.cnblogs.com/wtcl/p/16273558.html
Copyright © 2020-2023  润新知