丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給光陰
發(fā)送

0

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

本文作者: 光陰 2017-05-25 17:15
導(dǎo)語:許多隨機(jī)機(jī)器學(xué)習(xí)算法存在同樣的問題:相同的算法、相同的數(shù)據(jù),得到的計(jì)算結(jié)果卻每次都不同。

雷鋒網(wǎng)按:本文作者 Jason Brownlee 為澳大利亞知名機(jī)器學(xué)習(xí)專家,對(duì)時(shí)間序列預(yù)測尤有心得。原文發(fā)布于其博客。雷鋒網(wǎng)編譯。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

Jason Brownlee

許多隨機(jī)機(jī)器學(xué)習(xí)算法存在同樣的問題:相同的算法、相同的數(shù)據(jù),得到的計(jì)算結(jié)果卻每次都不同。這意味著在進(jìn)行隨機(jī)算法檢驗(yàn)或者算法比較的時(shí)候,必須重復(fù)試驗(yàn)很多次,然后用它們的平均值來評(píng)價(jià)模型。

那么對(duì)于給定問題,隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

一般建議重復(fù)30次以上甚至100次左右。有人甚至重復(fù)幾千次,完全無視邊際遞減效應(yīng)。

對(duì)于衡量隨機(jī)機(jī)器學(xué)習(xí)算法性能所需的重復(fù)試驗(yàn)次數(shù),在本教程中,我將教會(huì)大家如何用統(tǒng)計(jì)學(xué)方法來正確預(yù)估。

教程概述

本教程分以下4部分:

  1. 數(shù)據(jù)生成

  2. 基本分析

  3. 重復(fù)次數(shù)的影響分析

  4. 標(biāo)準(zhǔn)誤差計(jì)算 

本教程使用Python語言,版本 2或者3均可,為順利運(yùn)行示例代碼,請(qǐng)務(wù)必安裝SciPy 、NumPy、Pandas和Matplotlib庫。

下面正式開始我們的教程

1.數(shù)據(jù)生成

第一步是生成可用的數(shù)據(jù)。

假設(shè)我們將一個(gè)神經(jīng)網(wǎng)絡(luò)模型或其它隨機(jī)算法,在數(shù)據(jù)的訓(xùn)練集上重復(fù)訓(xùn)練了1000次,并且記錄了模型在測試集上的均方根誤差(RMSE)。作為本教程后續(xù)分析的前提,假設(shè)我們所用的數(shù)據(jù)呈正態(tài)分布。

務(wù)必查看一下結(jié)果的分布形態(tài),通常結(jié)果會(huì)呈高斯分布(即正態(tài)分布)。

我們會(huì)預(yù)先生成研究用的樣本總體,這么做對(duì)后續(xù)研究非常有幫助,因?yàn)槌绦蛏傻臉颖究傮w其均值和標(biāo)準(zhǔn)差就確定下來,而這在實(shí)際應(yīng)用中常常是無法得知的。

我們用均值=60,標(biāo)準(zhǔn)差=10作為參數(shù)生成試驗(yàn)數(shù)據(jù)。

下面是生成1000個(gè)隨機(jī)數(shù)的代碼,將結(jié)果保存為results.csv文件.

代碼中我們用seed()作為隨機(jī)數(shù)生成器種子函數(shù),來確保每次運(yùn)行代碼后得到的數(shù)據(jù)都一致。使用normal()函數(shù)生成正態(tài)分布隨機(jī)數(shù),用savetxt()函數(shù)將數(shù)據(jù)保存為ASCII格式。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

運(yùn)行這段代碼后,我們得到一個(gè)名為results.csv的文件,里面保存了1000個(gè)隨機(jī)數(shù),它們代表了隨機(jī)算法重復(fù)運(yùn)行的模擬結(jié)果。

下面是該文件的最后十行數(shù)據(jù)。

6.160564991742511864e+01

5.879850024371251038e+01

6.385602292344325548e+01

6.718290735754342791e+01

7.291188902850875309e+01

5.883555851728335995e+01

3.722702003339634302e+01

5.930375460544870947e+01

6.353870426882840405e+01

5.813044983467250404e+01

現(xiàn)在咱們先把如何得到這批數(shù)據(jù)的事放一邊,繼續(xù)往下進(jìn)行。

2.基本分析

得到樣本總體之后,我們先對(duì)其進(jìn)行簡單的統(tǒng)計(jì)分析。

下面三種是非常簡單有效的方法:

  1. 計(jì)算統(tǒng)計(jì)信息,比如均值、標(biāo)準(zhǔn)差和百分位數(shù)。

  2. 繪制箱線圖來查看數(shù)據(jù)散布程度

  3. 繪制直方圖來查看數(shù)據(jù)分布情況

通過下面的代碼進(jìn)行簡單的統(tǒng)計(jì)分析,首先加載results.csv數(shù)據(jù)文件,然后進(jìn)行統(tǒng)計(jì)計(jì)算,并繪圖顯示。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

可以看出,算法的平均性能約為60.3,標(biāo)準(zhǔn)差約為9.8。                                                                       

假定數(shù)據(jù)表示的是類似均方根誤差一樣的最小值,從統(tǒng)計(jì)結(jié)果看,最大值為99.5,而最小值為29.4。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

下面的箱線圖中展示了數(shù)據(jù)的散布程度,其中箱形部分是樣本中段(上下四分位之間)數(shù)據(jù)(約占樣本的50%),圓點(diǎn)代表異常值,綠線表示中位數(shù)。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

由圖可知,結(jié)果圍繞中值分布合理。

最后生成的是數(shù)據(jù)的直方圖,圖中顯示出了正態(tài)分布的貝爾曲線(鐘形曲線),這意味著我們?cè)谶M(jìn)行數(shù)據(jù)分析工作時(shí),可以使用標(biāo)準(zhǔn)的統(tǒng)計(jì)分析工具。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

由圖可知,數(shù)據(jù)以60為對(duì)稱軸,左右?guī)缀鯖]有偏斜。

3.重復(fù)次數(shù)的影響分析

之前我們生成了1000個(gè)結(jié)果數(shù)據(jù)。對(duì)于問題的研究來說可能多了,也可能不夠。

該如何判斷呢?

第一個(gè)想法就是畫出試驗(yàn)重復(fù)次數(shù)和這些試驗(yàn)結(jié)果均值之間的曲線圖。我們希望隨著重復(fù)次數(shù)的增加,結(jié)果的均值能很快穩(wěn)定。繪制成曲線后,看起來起始段波動(dòng)較大且短,而中后部平穩(wěn)且長。

利用下面的代碼繪制出該曲線。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

由圖可以看出,前200次數(shù)據(jù)均值波動(dòng)較大, 600次后,均值趨于穩(wěn)定,曲線波動(dòng)較小。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

為了更好的觀察曲線,將其放大,只顯示前500次重復(fù)試驗(yàn)結(jié)果。

同時(shí)將1000次試驗(yàn)結(jié)果的均值線疊加上,以便找到兩者之間的偏差關(guān)系。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

圖中橙色直線就是1000重復(fù)試驗(yàn)結(jié)果的均值線。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

同時(shí)也能看到重復(fù)100次時(shí),結(jié)果與均值較近,重復(fù)次數(shù)達(dá)到400時(shí),結(jié)果更理想,但是提升不明顯。

是不是很棒?不過會(huì)不會(huì)還有更好的辦法呢?

4.計(jì)算標(biāo)準(zhǔn)誤差

標(biāo)準(zhǔn)誤差用來計(jì)算樣本均值偏離總體均值的多少。它和標(biāo)準(zhǔn)差不同,標(biāo)準(zhǔn)差描述了樣本觀察值的平均變化量。標(biāo)準(zhǔn)誤差能夠根據(jù)樣本均值的誤差量或者誤差散布來估計(jì)總體均值。

標(biāo)準(zhǔn)誤差可以通過下式計(jì)算:

standard_error = sample_standard_deviation / sqrt(number of repeats)

即標(biāo)準(zhǔn)誤差等于樣本的標(biāo)準(zhǔn)差除以重復(fù)次數(shù)的均方根。

我們希望標(biāo)準(zhǔn)誤差會(huì)隨著試驗(yàn)次數(shù)的增加而減小。通過下面的代碼,計(jì)算每個(gè)重復(fù)試驗(yàn)次數(shù)對(duì)應(yīng)的樣本均值的標(biāo)準(zhǔn)誤差,并繪制標(biāo)準(zhǔn)誤差圖。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

運(yùn)行代碼后,會(huì)繪制出標(biāo)準(zhǔn)誤差與重復(fù)次數(shù)的關(guān)系曲線。

和預(yù)期的一樣,隨著重復(fù)試驗(yàn)次數(shù)的增加,標(biāo)準(zhǔn)誤差快速減小。標(biāo)準(zhǔn)誤差下降到一定程度后,趨于穩(wěn)定,通常把1~2個(gè)單位內(nèi)的值,稱為可接受誤差。

標(biāo)準(zhǔn)誤差的單位和樣本數(shù)據(jù)的單位一致。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

在上圖中添加縱坐標(biāo)為0.5和1的輔助線,幫助我們找到可接受的標(biāo)準(zhǔn)誤差值。代碼如下:

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

雷鋒網(wǎng)友情提醒,圖中出現(xiàn)的兩條紅色輔助線,分別代表標(biāo)準(zhǔn)誤差等于0.5和1。

由圖可知,如果試驗(yàn)重復(fù)次數(shù)等于100次左右,標(biāo)誤差開始小于1,如果試驗(yàn)重復(fù)次數(shù)等于300~350次左右,標(biāo)準(zhǔn)誤差小于0.5。隨著重復(fù)試驗(yàn)次數(shù)的增加,標(biāo)準(zhǔn)誤差趨于穩(wěn)定,變化較小。再次提醒大家記住,標(biāo)準(zhǔn)誤差可以衡量樣本均值偏離總體均值的多少。

  隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

我們也可以使用標(biāo)準(zhǔn)誤差來作為均值的置信區(qū)間。比如,用總體均值的95%作為置信區(qū)間的上下界。這種方法只適合試驗(yàn)重復(fù)次數(shù)大于20的情況。

置信區(qū)間定義如下:

樣本均值 +/- (標(biāo)準(zhǔn)誤差*1.96)

下面計(jì)算置信區(qū)間,并將其作為誤差線添加到重復(fù)試驗(yàn)次數(shù)對(duì)應(yīng)的樣本均值上。這是計(jì)算代碼。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

下圖創(chuàng)建了帶置信區(qū)間的樣本均值曲線。

其中紅色直線表示總體的均值(在教程開始根據(jù)給定的均值和標(biāo)準(zhǔn)差生成了總體,所以總體的均值已知),重復(fù)1000次或更多后,可以用樣本均值代替總體均值。

圖中誤差線包裹著均值線。而且樣本均值夸大或高估了總體均值,不過還是落在總體均值的95%置信區(qū)間內(nèi)。

95%置信區(qū)間的含義是做100次重復(fù)試驗(yàn),有95次包含了總體均值的真值,另外5次沒有包括。

圖中可以看出,隨著重復(fù)次數(shù)的增加,由于標(biāo)準(zhǔn)誤差的減小,95%置信區(qū)間也逐漸變窄。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

放大上圖后,這種趨勢在20到200之間時(shí)尤其明顯。

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

這是由上述代碼生成的樣本均值和誤差線隨試驗(yàn)次數(shù)變化的曲線。此圖能更好的反映樣本均值與總體均值的偏差。  

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

擴(kuò)展閱讀

實(shí)際上,既涉及使用隨機(jī)算法的計(jì)算試驗(yàn)方法又涉及統(tǒng)計(jì)學(xué)的參考資料非常少。

我個(gè)人認(rèn)為1995年科恩的書是兩者結(jié)合最好的:

Empirical Methods for Artificial Intelligence(人工智能實(shí)證方法),Cohen(科恩),1995

如果你對(duì)這篇教程感興趣,我強(qiáng)烈推薦此書。

另外,維基百科上還有幾篇文章可能對(duì)你有幫助:

Standard Error 

Confidence Interval

68–95–99.7 rule

如果你還有其他好的相關(guān)資料,可以在評(píng)論區(qū)與大家交流。謝謝。

小結(jié)

在這篇教程里,我們提供了一種合理選擇試驗(yàn)重復(fù)次數(shù)的方法,這有助于我們?cè)u(píng)價(jià)隨機(jī)機(jī)器學(xué)習(xí)算法的正確性。

下面是幾種重復(fù)次數(shù)選擇的方法:

  • 簡單粗暴的直接用30、100或者1000次。

  • 繪制樣本均值和重復(fù)次數(shù)的關(guān)系曲線,并根據(jù)拐點(diǎn)進(jìn)行選擇。

  • 繪制標(biāo)準(zhǔn)誤差和重復(fù)次數(shù)的關(guān)系曲線,并根據(jù)誤差閾值進(jìn)行選擇。

  • 繪制樣本置信區(qū)間和重復(fù)次數(shù)的關(guān)系曲線,并根據(jù)誤差散布進(jìn)行選擇。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

隨機(jī)機(jī)器學(xué)習(xí)算法需要試驗(yàn)多少次,才足以客觀有效的反映模型性能?

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說