<input id="dlorj"></input>
      <acronym id="dlorj"><form id="dlorj"></form></acronym>

      扣丁學堂Python培訓詳解Python實現二維函數高次擬合的示例

      2019-08-05 16:33:31 41瀏覽

      本篇文章扣丁學堂Python培訓小編給小伙伴們分享一下Python實現二維函數高次擬合的示例,文中有詳細的代碼列出供小伙伴們參考,感興趣的小伙伴就隨小編來看看吧,希望對大家有所幫助。

      扣丁學堂Python培訓詳解Python實現二維函數高次擬合的示例


      # coding=utf-8
      import matplotlib.pyplot as plt
      import numpy as np
      import scipy as sp
      import csv
      from scipy.stats import norm
      from sklearn.pipeline import Pipeline
      from sklearn.linear_model import LinearRegression
      from sklearn.preprocessing import PolynomialFeatures
      from sklearn import linear_model
      
      ''''' 數據導入 '''
      def loadDataSet(fileName):
       dataMat = []
       labelMat = []
       csvfile = file(fileName, 'rb')
       reader = csv.reader(csvfile)
       b = 0
       for line in reader:
        if line[50] is '':
         b += 1
        else:
         dataMat.append(float(line[41])/100*20+30)
         labelMat.append(float(line[25])*100)
      
      
       csvfile.close()
       print "absence time number: %d" % b
       return dataMat,labelMat
      
      xArr,yArr = loadDataSet('data.csv')
      x = np.array(xArr)
      y = np.array(yArr)
      # x = np.arange(0, 1, 0.002)
      # y = norm.rvs(0, size=500, scale=0.1)
      # y = y + x ** 2
      
      def rmse(y_test, y):
       return sp.sqrt(sp.mean((y_test - y) ** 2))
      
      def R2(y_test, y_true):
       return 1 - ((y_test - y_true) ** 2).sum() / ((y_true - y_true.mean()) ** 2).sum()
      
      def R22(y_test, y_true):
       y_mean = np.array(y_true)
       y_mean[:] = y_mean.mean()
       return 1 - rmse(y_test, y_true) / rmse(y_mean, y_true)
      
      
      plt.scatter(x, y, s=5)
      #分別進行1,2,3,6次擬合
      degree = [1, 2,3, 6]
      y_test = []
      y_test = np.array(y_test)
      
      for d in degree:
       #普通
       # clf = Pipeline([('poly', PolynomialFeatures(degree=d)),
       #     ('linear', LinearRegression(fit_intercept=False))])
       # clf.fit(x[:, np.newaxis], y)
      
       # 嶺回歸
       clf = Pipeline([('poly', PolynomialFeatures(degree=d)),
           ('linear', linear_model.Ridge())])
       clf.fit(x[:, np.newaxis], y)
       y_test = clf.predict(x[:, np.newaxis])
      
       print('多項式參數%s' %clf.named_steps['linear'].coef_)
       print('rmse=%.2f, R2=%.2f, R22=%.2f, clf.score=%.2f' %
         (rmse(y_test, y),
         R2(y_test, y),
         R22(y_test, y),
         clf.score(x[:, np.newaxis], y)))
      
       plt.plot(x, y_test, linewidth=2)
      
      plt.grid()
      plt.legend(['1', '2','3', '6'], loc='upper left')
      plt.show()

      想要了解更多關于Python和人工智能方面內容的小伙伴,請關注扣丁學堂Python培訓官網、微信等平臺,扣丁學堂IT職業在線學習教育平臺為您提供權威的Python開發環境搭建視頻,Python培訓后的前景無限,行業薪資和未來的發展會越來越好的,扣丁學堂老師精心推出的Python視頻教程定能讓你快速掌握Python從入門到精通開發實戰技能。扣丁學堂Python技術交流群:279521237。


      扣丁學堂微信公眾號                          Python全棧開發爬蟲人工智能機器學習數據分析免費公開課直播間


            【關注微信公眾號獲取更多學習資料】         【掃碼進入Python全棧開發免費公開課】



      查看更多關于"Python開發資訊"的相關文章>

      標簽: Python培訓 Python視頻教程 Python在線視頻 Python學習視頻 Python培訓班
      微信
      微博
      15311698296

      全國免費咨詢熱線

      郵箱:codingke@1000phone.com

      官方群:148715490

      北京千鋒互聯科技有限公司版權所有   北京市海淀區寶盛北里西區28號天豐利商場4層
      京ICP備12003911號-6   Copyright ? 2013 - 2019
      返回頂部 返回頂部
      500福利导航第一福利导