• mooc机器学习第九天-多项式回归


    Mooc上一篇的房屋和价格回归预测使用的一元线性回归,这次该用多项式看看拟合效果有什么变化。

    1.多项式原理简单介绍

    (1).基本概念

    多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个 时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。 

            

    在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。 

    多项式回归的最大优点就是可以通过增加x的高次项对实测点进行逼近,直至满意为止。 

    事实上,多项式回归可以处理相当一类非线性问题,它在回归分析 中占有重要的地位,因为任一函数都可以分段用多项式来逼近。

     

     

    2.代码

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn.preprocessing import PolynomialFeatures
    from sklearn import  linear_model
    plt.rcParams['font.sans-serif']=['SimHei']
    
    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)
    # print(datasets_X)
    
    maxX=np.max(datasets_X)
    minX=np.min(datasets_X)
    X=np.arange(minX,maxX).reshape([-1,1])
    
    
    #调用算法
    poly_reg=PolynomialFeatures(degree=2)
    #degree=2表示建立datasets_X的二 次多项式特征X_poly。
    #更该数值可以提高曲线向真实点的逼近效果
    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='r')
    plt.plot(X,lin_reg_2.predict(poly_reg.fit_transform(X)),color='b')
    plt.xlabel('Area')
    plt.title('房屋价格和面积关系非线性拟合')
    plt.ylabel('Price')
    plt.show()
    

      

     图示效果为4次多项式特征

    参考:https://blog.csdn.net/bxg1065283526/article/details/80043049

  • 相关阅读:
    (hash) leetcode 49. Group Anagrams
    (Manacher Algorithm, 中心拓展法,动态规划) leetcode 5. 最长回文串
    (KMP) leetcode 28. Implement strStr() 字符串匹配
    (字符串,哈希) leetcode 8. atoi,12. Integer to Roman
    (贪心) leetcode 435 Non-overlapping Intervals, 455 design cookies
    (Divide and Conquer) Closest Pair of Pairs
    (栈,双端队列,双指针) leetcode. 844 Backspace String Compare
    write、writelines
    *、**
    inf
  • 原文地址:https://www.cnblogs.com/cheflone/p/13308408.html
Copyright © 2020-2023  润新知