美文网首页
多项式回归

多项式回归

作者: 闫_锋 | 来源:发表于2018-05-22 22:57 被阅读40次

    房价与房屋尺寸关系的非线性拟合

    • 多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。
    • 在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。
    • 多项式回归的最大优点就是可以通过增加x的高次项对实测点进行逼近,直至满意为止。
    • 事实上,多项式回归可以处理相当一类非线性问题,它在回归分析中占有重要的地位,因为任一函数都可以分段用多项式来逼近。

    线性回归实例中,是运用直线来拟合数据输入与输出
    之间的线性关系。不同于线性回归,多项式回归是使用曲线拟合数据的输入与输出的映射关系。

    sklearn中多项式回归:
    这里的多项式回归实际上是先将变量X处理成多项式特征,然后使用线性模型学习多项式特征的参数,以达到多项式回归的目的。

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import linear_model
    from sklearn.preprocessing import PolynomialFeatures
    
    # 读取数据集
    datasets_X = []
    datasets_Y = []
    fr = open('prices.txt', 'r')
    lines = fr.readlines()
    for line in lines:
        items = line.strip().split(',')
        datasets_X.append(int(items[0]))
        datasets_Y.append(int(items[1]))
    
    length = len(datasets_X)
    datasets_X = np.array(datasets_X).reshape([length, 1])
    datasets_Y = np.array(datasets_Y)
    
    minX = min(datasets_X)
    maxX = max(datasets_X)
    X = np.arange(minX, maxX).reshape([-1, 1])
    
    poly_reg = PolynomialFeatures(degree=2)
    X_poly = poly_reg.fit_transform(datasets_X)
    lin_reg_2 = linear_model.LinearRegression()
    lin_reg_2.fit(X_poly, datasets_Y)
    
    # 图像中显示
    plt.scatter(datasets_X, datasets_Y, color='red')
    plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color='blue')
    plt.xlabel('Area')
    plt.ylabel('Price')
    plt.show()
    

    相关文章

      网友评论

          本文标题:多项式回归

          本文链接:https://www.haomeiwen.com/subject/curkjftx.html