zoukankan      html  css  js  c++  java
  • 机器学习sklearn(79):算法实例(三十六)回归(八)线性回归大家族(六)非线性问题:多项式回归(一)

    1 重塑我们心中的“线性”概念

    1.1 变量之间的线性关系

     

    1.2 数据的线性与非线性

     

     

     

     

    1.3 线性模型与非线性模型

     

    1. 导入所需要的库 
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression
    from sklearn.tree import DecisionTreeRegressor
    2. 创建需要拟合的数据集
    rnd = np.random.RandomState(42) #设置随机数种子
    X = rnd.uniform(-3, 3, size=100) #random.uniform,从输入的任意两个整数中取出size个随机数
    #生成y的思路:先使用NumPy中的函数生成一个sin函数图像,然后再人为添加噪音
    y = np.sin(X) + rnd.normal(size=len(X)) / 3 #random.normal,生成size个服从正态分布的随机数
    #使用散点图观察建立的数据集是什么样子
    plt.scatter(X, y,marker='o',c='k',s=20)
    plt.show()
    #为后续建模做准备:sklearn只接受二维以上数组作为特征矩阵的输入
    X.shape
    X = X.reshape(-1, 1)
    3. 使用原始数据进行建模
    #使用原始数据进行建模
    LinearR = LinearRegression().fit(X, y)
    TreeR = DecisionTreeRegressor(random_state=0).fit(X, y) #放置画布
    fig, ax1 = plt.subplots(1) #创建测试数据:一系列分布在横坐标上的点
    line = np.linspace(-3, 3, 1000, endpoint=False).reshape(-1, 1) #将测试数据带入predict接口,获得模型的拟合效果并进行绘制
    ax1.plot(line, LinearR.predict(line), linewidth=2, color='green',
             label="linear regression")
    ax1.plot(line, TreeR.predict(line), linewidth=2, color='red',
             label="decision tree") #将原数据上的拟合绘制在图像上
    ax1.plot(X[:, 0], y, 'o', c='k') #其他图形选项
    ax1.legend(loc="best")
    ax1.set_ylabel("Regression output")
    ax1.set_xlabel("Input feature")
    ax1.set_title("Result before discretization")
    plt.tight_layout()
    plt.show()
    #从这个图像来看,可以得出什么结果?

    非线性模型拟合线性数据
    线性模型拟合非线性数据
     

     

    既是线性,也是非线性的模型 

     

     

     

     
  • 相关阅读:
    CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
    如何正确且成功破解跨平台数据库管理工具DbVisualizer?(图文详解)
    [转]【HTTP】Fiddler(二)
    [转]jQuery UI Dialog Modal Popup Yes No Confirm example in ASP.Net
    [转]artDialog
    [转]GridView排序——微软提供Sort
    [转]GridView中直接新增行、编辑和删除
    [转]asp.net的ajax以及json
    [转]JQuery Ajax 在asp.net中使用总结
    [转]Jquery easyui开启行编辑模式增删改操作
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14965586.html
Copyright © 2011-2022 走看看