zoukankan      html  css  js  c++  java
  • sklearn调用多元线性回归算法

    #向量化运算
    import matplotlib as mpl
    mpl.rcParams['agg.path.chunksize'] = 1000000
    import numpy as np
    import matplotlib.pyplot as plt
    m=100
    x=np.random.random(size=m)
    y=x*2.0+3.0+np.random.normal(size=m) #带有噪声数据的线性相关数据
    plt.scatter(x,y,color="red")
    plt.show()
    #波士顿房产数据集合
    from sklearn import datasets
    b=datasets.load_boston()
    print(b.DESCR)
    print(b.feature_names)
    x=b.data[:,5] #取第五列的数据,房屋的数目与房价的关系
    y=b.target
    #输出y目标值小于50时的样本数据
    x=x[y<50.0]
    y=y[y<50.0]
    plt.scatter(x,y)
    plt.show()
    #将数据进行分为测试数据集和训练数据集
    from sklearn.model_selection import train_test_split
    #x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=666)
    #回归算法中的评价指标输出MAE和MSE以及R2(开方为RMSE)
    from sklearn.metrics import mean_absolute_error
    from sklearn.metrics import mean_squared_error
    from sklearn.metrics import r2_score
    #多元线性回归不需要进行数据统一化

    #sklearn中调用多元线性回归算法LinearRegression
    #1-1调用各个库
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import datasets
    #1-2加载数据
    boston=datasets.load_boston()
    X=boston.data
    y=boston.target
    x=X[y<50.0]
    y=y[y<50.0]
    #1-3进行数据的分割训练数据集与测试数据集
    from sklearn.model_selection import train_test_split
    x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=666)
    #1-4建立线性回归模型进行模型训练
    from sklearn.linear_model import LinearRegression
    L=LinearRegression()
    L.fit(x_train,y_train)
    #1-5输出模型的各个特征系数与截距
    print(L.coef_) #输出多元线性回归算法的各个特征系数
    print(L.intercept_) #线性回归输出截距值
    y_predict=L.predict(x_test)
    #1-6输出回归算法的各个评价指标
    from sklearn.metrics import mean_absolute_error
    from sklearn.metrics import mean_squared_error,max_error
    from sklearn.metrics import r2_score
    #输出RMSE均方根误差
    print(np.sqrt(mean_squared_error(y_test,y_predict)))
    #输出MAE平均绝对误差
    print(mean_absolute_error(y_test,y_predict))
    #输出最大残余误差绝对
    print(max_error(y_test,y_predict))
    #输出R2的值,即模型不犯错误的程度,准确拟合度
    print(r2_score(y_test,y_predict))
    print(L.score(x_test,y_test))
    #1-7可视化输出预测曲线与真实值的曲线
    plt.plot(y_test)
    plt.plot(y_predict)
    plt.show()
    #1-8输出各个特征的系数权重大小排序
    L1=LinearRegression()
    L1.fit(x,y)
    print(L1.coef_)
    print(np.argsort(L1.coef_))#得到从小到大排序的线性回归算法模型
    print(boston.feature_names[np.argsort(L1.coef_)]) #输出影响从小到大的特征名称


  • 相关阅读:
    第二阶段Sprint冲刺会议8
    第二阶段Sprint冲刺会议7
    第二阶段Sprint冲刺会议6
    问题账户需求分析
    2016年秋季个人阅读计划
    应该怎么做需求分析--读后感
    个人总结
    人月神话第三篇阅读笔记
    第十六周学习进度
    人月神话第二篇阅读笔记
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12514663.html
Copyright © 2011-2022 走看看