zoukankan      html  css  js  c++  java
  • Scikit-Learn 线性回归

    1. 引入包

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import PolynomialFeatures
    import sys
    
    reload(sys)
    sys.setdefaultencoding("utf-8")

    2. 画图

    # --------画图---------------
    plt.figure()  # 实例化作图变量
    plt.title('single variable')  # 图像标题
    plt.xlabel('x')  # x轴文本
    plt.ylabel('y')  # y轴文本
    plt.axis([0, 400, 100, 400])
    plt.grid(True)  # 是否绘制网格线

    3. 画点

    # --------画点---------------
    X = [[50], [100], [150], [200], [250], [300]]
    y = [[150], [200], [250], [280], [310], [330]]
    X_test = [[50], [250]]  # 用来做最终效果测试
    y_test = [[150], [310]]  # 用来做最终效果测试
    plt.plot(X, y, 'k.')

    4. 一元线性回归

    # --------画线(一元线性回归)---------------
    model = LinearRegression()
    model.fit(X, y)
    X2 = [[0], [400]]
    y2 = model.predict(X2)
    plt.plot(X2, y2, 'g-')

    5. 二元线性回归

    # --------画线(二元线性回归)---------------
    xx = np.linspace(0, 400, 100)  # 设计x轴一系列点作为画图的x点集
    quadratic_featurizer = PolynomialFeatures(degree=2)  # 实例化一个二次多项式特征实例
    X_train_quadratic = quadratic_featurizer.fit_transform(X)  # 用二次多项式对样本X值做变换
    xx_quadratic = quadratic_featurizer.transform(xx.reshape(xx.shape[0], 1))  # 把训练好X值的多项式特征实例应用到一系列点上,形成矩阵
    regressor_quadratic = LinearRegression()  # 创建一个线性回归实例
    regressor_quadratic.fit(X_train_quadratic, y)  # 以多项式变换后的x值为输入,代入线性回归模型做训练
    
    X_test_quadratic = quadratic_featurizer.transform(X_test)
    plt.plot(xx, regressor_quadratic.predict(xx_quadratic), 'r-')  # 用训练好的模型作图

    6. 准确率输出

    # --------输出,准确率---------------
    print '一元线性回归 r-squared', model.score(X_test, y_test)
    print '二次回归     r-squared', regressor_quadratic.score(X_test_quadratic, y_test)

    7. 显示图像:

    plt.show()  # 展示图像

    8. 输出结果:

    一元线性回归 r-squared 0.985555555556
    二次回归     r-squared 0.99998963648

    9. 显示图像

    LinearRegression参数参考:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html

  • 相关阅读:
    CSS媒体查询
    重新认识caniuse
    范仁义css3课程---40、box-sizing属性实例
    前端超级实用技巧---2、css、js兼容性查询网站can i use
    日常英语---200221(shrink)
    心得体悟帖---200221(方针:进可攻退可守的方式:先把不熟悉的知识点录)
    心得体悟帖---200221(本来二月份就到了三月之期的)
    心得体悟帖---200220(对不同的人,用不同的处理方式(这个你远远没有理解))
    java中的String.format使用
    android中的ellipsize设置(省略号的问题)
  • 原文地址:https://www.cnblogs.com/zhuhc/p/7308509.html
Copyright © 2011-2022 走看看