偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何評價算法的好壞?

大數(shù)據(jù) 算法
評價一個算法的好壞,我認(rèn)為關(guān)鍵是看能不能解決問題。如果算法能很好地解決實際的問題,那么我認(rèn)為就是好算法。 比如預(yù)測的算法,關(guān)鍵是看預(yù)測的準(zhǔn)確率,即預(yù)測值與實際值之間的接近程度,而不是看算法本身的評分高低。

序言

評價一個算法的好壞,我認(rèn)為關(guān)鍵是看能不能解決問題。如果算法能很好地解決實際的問題,那么我認(rèn)為就是好算法。 比如預(yù)測的算法,關(guān)鍵是看預(yù)測的準(zhǔn)確率,即預(yù)測值與實際值之間的接近程度,而不是看算法本身的評分高低。

在《 如何用人工智能預(yù)測雙 11 的交易額 》這篇文章中,利用線性回歸算法,我預(yù)測 2019 年雙 11 交易額為 2471 億元,而阿里官方公布的實際交易額是 2684 億元,預(yù)測值比實際值少 7.9%,對這個結(jié)果,我覺得準(zhǔn)確率不夠高。反思預(yù)測的過程,我認(rèn)為可以從以下幾個方面來進行改進。

1. 樣本

為了簡化算法模型,我舍棄掉了前幾年相對較小的數(shù)據(jù),只保留了最近 5 年的數(shù)據(jù)。

在數(shù)據(jù)量本身就比較少的情況下,我仍然遵循簡單原則,這無形中就加大了算法不穩(wěn)定的風(fēng)險,出現(xiàn)了欠擬合的問題。

盡管算法的評分很高,但是評分高并不代表算法就好。所以,樣本的選擇非常重要,不能單純地追求算法的評分高,而忽略樣本的質(zhì)量。

2. 算法

如果保留所有樣本,那么顯然數(shù)據(jù)呈現(xiàn)的規(guī)律并不是線性的,用多項式回歸算法應(yīng)該是個更好的選擇。

假如用三次多項式回歸算法進行預(yù)測,那么算法代碼如下:

  1. # 導(dǎo)入所需的庫 
  2. import numpy as np 
  3. import pandas as pd 
  4. import matplotlib.pyplot as plt 
  5. from sklearn.linear_model import LinearRegression 
  6. from sklearn.preprocessing import PolynomialFeatures 
  7. from sklearn.pipeline import Pipeline 
  8. from sklearn.preprocessing import StandardScaler 
  9.  
  10. # 內(nèi)嵌畫圖 
  11. %matplotlib inline 
  12.  
  13. # 設(shè)置正常顯示中文標(biāo)簽 
  14. plt.rcParams['font.sans-serif'] = ['SimHei'
  15.  
  16. # 讀取數(shù)據(jù),在林驥的公眾號后臺回復(fù)「1111」 
  17. df = pd.read_excel('./data/1111.xlsx'
  18.  
  19. # x 年份 
  20. x = np.array(df.iloc[:, 0]).reshape(-1, 1) 
  21.  
  22. # y 交易額 
  23. y = np.array(df.iloc[:, 1]) 
  24.  
  25. # z 預(yù)測的年份 
  26. z = [[2019]] 
  27.  
  28. # 用管道的方式調(diào)用多項式回歸算法 
  29. poly_reg = Pipeline([ 
  30.  ('ploy', PolynomialFeatures(degree=3)), 
  31.  ('std_scaler', StandardScaler()), 
  32.  ('lin_reg', LinearRegression()) 
  33. ]) 
  34. poly_reg.fit(x, y) 
  35.  
  36. # 用算法進行預(yù)測 
  37. predict = poly_reg.predict(z) 
  38.  
  39. # 輸出預(yù)測結(jié)果 
  40. print('預(yù)測 2019 年雙 11 的交易額是', str(round(predict[0],0)), '億元。'
  41. print('線性回歸算法的評分:', poly_reg.score(x, y)) 

預(yù)測 2019 年雙 11 的交易額是 2689.0 億元。

線性回歸算法的評分:0.99939752363314

下面是用 matplotlib 畫圖的代碼:

  1. # 將數(shù)據(jù)可視化,設(shè)置圖像大小 
  2. fig = plt.figure(figsize=(10, 8)) 
  3. ax = fig.add_subplot(111) 
  4.  
  5. # 繪制散點圖 
  6. ax.scatter(x, y, color='#0085c3', s=100) 
  7. ax.scatter(z, predict, color='#dc5034', marker='*', s=260) 
  8.  
  9. # 設(shè)置標(biāo)簽等 
  10. plt.xlabel('年份', fontsize=20) 
  11. plt.ylabel('雙 11 交易額', fontsize=20) 
  12. plt.tick_params(labelsize=20) 
  13.  
  14. # 繪制預(yù)測的直線 
  15. x2 = np.concatenate([x, z]) 
  16. y2 = poly_reg.predict(x2) 
  17. plt.plot(x2, y2, '-', c='#7ab800'
  18. plt.title('用多項式回歸預(yù)測雙 11 的交易額', fontsize=26) 
  19. plt.show() 

 

如何評價算法的好壞?

這近乎完美地擬合了 2009 年以來十一年的數(shù)據(jù),因此不禁讓人懷疑,阿里的數(shù)據(jù)是不是過于完美?

3. 優(yōu)化

按照一般的機器學(xué)習(xí)算法流程,應(yīng)該把數(shù)據(jù)拆分為兩部分,分別稱為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。從 2009 年到 2018 年,雙 11 的交易額總共才 10 個數(shù)據(jù),我在預(yù)測的時候還舍棄了前 5 個數(shù)據(jù),最后只剩下 5 個數(shù)據(jù),我以為再拆分就沒有必要了。 但機器學(xué)習(xí)算法的表現(xiàn)好壞,有一個關(guān)鍵因素,就是要有足夠多的數(shù)據(jù)量。

另外,應(yīng)該適當(dāng)?shù)厥褂镁W(wǎng)格搜索法,優(yōu)化算法的參數(shù),必要時還要與交叉驗證法相結(jié)合,進行算法評估,從而提高算法的可信度和準(zhǔn)確率。 除了算法的準(zhǔn)確率,還可以使用其他的方法對模型進行評價,比如:召回率、F1 分?jǐn)?shù)、ROC、AUC、MSE、RMSE、MAE 等等 。

現(xiàn)實世界是錯綜復(fù)雜的,很難用一個算法就解決問題,往往需要經(jīng)過很多次的嘗試,才可能找到基本符合的模型。需要注意的是,多項式回歸的指數(shù)不宜過高,否則算法太復(fù)雜,很可能出現(xiàn)“過擬合”的現(xiàn)象,從而泛化能力比較差,也就是說,對于訓(xùn)練數(shù)據(jù)集能夠很好地擬合,但是對于測試數(shù)據(jù)集的預(yù)測誤差比較大。模型復(fù)雜度與預(yù)測誤差的大致關(guān)系如下圖所示:

 

如何評價算法的好壞?

小結(jié)

本文是我在用線性回歸算法預(yù)測雙 11 的交易額之后,做的一次復(fù)盤,總結(jié)了改進的思路,學(xué)習(xí)優(yōu)化的方法。

學(xué)以致用,是我學(xué)習(xí)的基本原則。如果害怕出錯,不去勇于實踐,學(xué)習(xí)再多算法有什么用?這就如同我們不能指望不下水就學(xué)會游泳一樣。

以上,希望能夠?qū)δ阌兴鶈l(fā)。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2016-01-29 10:06:47

UI設(shè)計標(biāo)準(zhǔn)

2013-05-02 09:29:43

交換機評判端口密度

2017-04-26 15:21:38

服務(wù)器配置

2022-05-05 12:03:08

分布式系統(tǒng)設(shè)計

2016-12-28 17:59:28

MongoDBNoSQL數(shù)據(jù)

2009-12-02 14:09:52

2018-09-10 13:02:48

人工智能AI創(chuàng)業(yè)公司

2020-04-02 16:12:56

推薦系統(tǒng)CTR分流

2015-04-09 10:15:50

弱電線纜線纜

2011-05-06 17:16:18

相紙

2020-08-13 17:59:20

區(qū)塊鏈區(qū)塊鏈項目數(shù)字貨幣

2013-10-21 10:53:34

虛擬化產(chǎn)品

2023-09-05 10:36:51

3D視覺

2021-05-26 05:33:30

5G網(wǎng)絡(luò)運營商

2016-11-07 15:21:17

數(shù)據(jù)中心指標(biāo)

2014-01-16 14:06:18

軟件開發(fā)團隊管理

2013-08-29 09:53:48

開發(fā)者iOS 7

2017-03-03 11:40:59

linuxping命令

2012-02-01 10:00:59

軟件

2009-11-04 09:02:57

Windows 7媒體評價
點贊
收藏

51CTO技術(shù)棧公眾號