使用matplotlib畫擬合曲線的基本方法


        import matplotlib.pyplot as plt
        fig = plt.figure()
        ax = fig.add_subplot(111)
        
        ax.scatter(xSortRawArr, ySortRawArr)  
        ax.plot(xSortRawArr, ySortHatArr)

        plt.show()

 

scatter:畫原始點

plot:畫擬合曲線

 

這樣就實現了回歸圖的擬合效果圖。

 

當然由於有很多擬合情況,具體效果還是需要調參,然后看效果,以及十折交叉驗證,選擇一個泛化最好的算法

 

pyplot.plot()

在使用嶺回歸時,發現使用二維數組作為參數,也可以畫出曲線,例如:yArr = array([[1,2,3,4], [5,6,7,8], [9,10,11,12], [15,16,17,18]])

直接使用yArr的話,將以列數據作為y軸的數據,而x軸,則按照常樣本的個數,進行自然數增長。代碼為:

       import matplotlib.pyplot as plt
        fig = plt.figure()
        ax = fig.add_subplot(111)

        yArr = array([[1,2,3,4], [5,6,7,8], [9, 10, 11, 12], [15, 16, 17, 18]])
       
        ax.plot(yArr) 
        plt.show()

結果:

 

當然,可以使用自定義的x軸數據,如:xArr = arange(10,14,1),這樣的話,就是自定義x軸了。代碼如下:

 

        import matplotlib.pyplot as plt
        fig = plt.figure()
        ax = fig.add_subplot(111)

        yArr = array([[1,2,3,4], [5,6,7,8], [9, 10, 11, 12], [15, 16, 17, 18]])
        x = arange(10, 14, 1)
        ax.plot(x, yArr) # 此時,x軸為4個數據,因為有4個樣本;yArr有4個樣本,4個特征,特征值為y軸值
        plt.show()

 

結果如下:

 

利用plot畫二維數據,有很大的優點:

1.可以比較不同特征值的變化過程;從這里可以引申出在不同迭代下權重參數的變化過程。比如在嶺回歸:

        cm_regression = CmRegression()
        abX, abY = cm_regression.loadDataSet2('abalone.txt')
        ridgeWeights = cm_regression.ridgeTest(abX, abY)
        
        xArr = arange(-10, 20, 1)

        import matplotlib.pyplot as plt
        fig = plt.figure()
        ax = fig.add_subplot(111)
        ax.plot(xArr, ridgeWeights) # 此時,x軸為xArr有30個數據;ridgeWeights 最為y軸值
plt.xlabel('log(lambda)')
plt.show()

運行結果:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM