<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          從 0 開始機(jī)器學(xué)習(xí) - 機(jī)器學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與誤差分析

          共 2292字,需瀏覽 5分鐘

           ·

          2020-08-13 00:58


          登龍

          這是我的第 144?篇原創(chuàng)

          一、構(gòu)建算法的推薦步驟

          當(dāng)我們遇到一個(gè)問題,比如預(yù)測(cè)房價(jià),我們想要用機(jī)器學(xué)習(xí)算法來更好的解決這個(gè)問題,推薦的步驟如下:

          1.1 實(shí)現(xiàn)一個(gè)簡單的算法

          建議先花點(diǎn)時(shí)間實(shí)現(xiàn)一個(gè)簡單能用的算法,比如線性回歸預(yù)測(cè)房價(jià),不需要一開始就花很多時(shí)間設(shè)計(jì)復(fù)雜的算法(在軟件開發(fā)中叫避免過早優(yōu)化)

          你可以先實(shí)現(xiàn)能用的算法,然后利用上篇文章從 0 開始機(jī)器學(xué)習(xí) - 機(jī)器學(xué)習(xí)算法診斷中的學(xué)習(xí)曲線等診斷法來分析算法的優(yōu)化方向,這樣一個(gè)簡單的算法就成為了優(yōu)化問題的好工具!

          1.2 分析學(xué)習(xí)曲線

          有個(gè)簡單的算法后,我們就可以畫出學(xué)習(xí)曲線了,然后就可以決定下一步到底要往哪個(gè)方向做優(yōu)化:

          1. 獲得更多的訓(xùn)練樣本
          2. 嘗試減少特征的數(shù)量
          3. 嘗試獲得更多的特征
          4. 嘗試增加多項(xiàng)式特征
          5. 嘗試減少正則化程度
          6. 嘗試增加正則化程度
          7. ...

          1.3 誤差分析

          假如我們有多個(gè)方向可以作為優(yōu)化的方向,比如以下的方向都可以解決模型的高方差問題:

          1. 獲得更多的訓(xùn)練樣本 - 適用于高方差的模型
          2. 嘗試減少特征的數(shù)量 - 適用于高方差的模型
          3. 嘗試增加正則化程度 - 適用于高方差的模型

          那我們又如何來評(píng)估每種方法的性能到底提升多少呢?或者說有沒有一種直接的指標(biāo)來告訴我,使用了這樣一種優(yōu)化措施后我的算法性能到底提高了多少百分比?

          今天就來看看如何分析機(jī)器學(xué)習(xí)算法的誤差。

          二、機(jī)器學(xué)習(xí)算法誤差分析

          2.1 偏斜類問題

          在介紹誤差分析指標(biāo)前,先來了解一個(gè)偏斜類問題:

          訓(xùn)練集中有非常多同一類的樣本,只有很少或者沒有其他類的樣本,這樣的訓(xùn)練樣本稱為偏斜類。

          比如預(yù)測(cè)癌癥是否惡性的 100 個(gè)樣本中:95 個(gè)是良性的腫瘤,5 個(gè)惡性的腫瘤,假設(shè)我們?cè)谶@個(gè)樣本上對(duì)比以下 2 種分類算法的百分比準(zhǔn)確度,即分類錯(cuò)誤的百分比:

          1. 普通非機(jī)器學(xué)習(xí)算法:人為把所有的樣本都預(yù)測(cè)為良性,則分錯(cuò)了 5 個(gè)惡性的樣本,錯(cuò)誤率為 5 / 100 = 0.05 = 5%
          2. 神經(jīng)網(wǎng)絡(luò)算法:訓(xùn)練后預(yù)測(cè) 100 個(gè)樣本,把 10 個(gè)良性的樣本誤分類為惡性的樣本,錯(cuò)誤率為 10 / 100 = 10%

          如果僅僅從錯(cuò)誤率大小來判斷算法的優(yōu)劣是不合適的,因?yàn)榈谝环N人為設(shè)置樣本都為良性的算法不會(huì)在實(shí)際項(xiàng)目中使用,但是通過指標(biāo)卻發(fā)現(xiàn)效果比神經(jīng)網(wǎng)絡(luò)還要好,這肯定是有問題的。

          正是因?yàn)榇嬖谶@么一種偏斜類的訓(xùn)練樣本,所以我們需要用一個(gè)更加一般性的算法準(zhǔn)確度評(píng)價(jià)指標(biāo),以此適用與任何類型的樣本,解決上面那種荒唐的結(jié)論。

          2.2 查準(zhǔn)率與查全率

          為了解決這個(gè)問題,使用查準(zhǔn)率(Precision)和查全率(Recall)這 2 個(gè)誤差指標(biāo),為了計(jì)算這 2 者,我們需要把算法預(yù)測(cè)的結(jié)果分為以下 4 種:

          1. 正確肯定(True Positive,TP):預(yù)測(cè)為真,實(shí)際為真
          2. 正確否定(True Negative,TN):預(yù)測(cè)為假,實(shí)際為假
          3. 錯(cuò)誤肯定(False Positive,F(xiàn)P):預(yù)測(cè)為真,實(shí)際為假
          4. 錯(cuò)誤否定(False Negative,F(xiàn)N):預(yù)測(cè)為假,實(shí)際為真

          把這 4 個(gè)寫到表格里面:

          實(shí)際值 \ 預(yù)測(cè)值


          PositiveNegative
          PositiveTPFN
          NegativeFPTN

          然后我們就可以定義這 2 個(gè)指標(biāo)啦:

          • 查準(zhǔn)率 = TP / (TP + FP):預(yù)測(cè)為真(惡性腫瘤)的情況中,實(shí)際為真(惡性腫瘤)的比例,越高越好
          • 查全率 = TP / (TP + FN):實(shí)際為真(惡性腫瘤)的情況中,預(yù)測(cè)為真(惡性腫瘤)的比例,越高越好

          有了這 2 個(gè)指標(biāo)我們?cè)賮矸治鱿律厦娴乃惴ㄐ阅?,第一個(gè)人為的算法認(rèn)為所有的腫瘤都是良性的,也就等價(jià)于原樣本中 5 個(gè)惡性的腫瘤樣本一個(gè)都沒有預(yù)測(cè)成功,也即所有惡性腫瘤樣本,該算法成功預(yù)測(cè)惡性腫瘤的比例為 0,所以查全率為 0,這說明該算法的效果并不好。

          2.3 查準(zhǔn)率與查全率的整合

          在實(shí)際的使用中,查準(zhǔn)率和查全率往往不能很好的權(quán)衡,要想保持兩者都很高不太容易,通過使用以下的公式來整合這 2 個(gè)評(píng)價(jià)指標(biāo)可以幫助我們直接看出一個(gè)算法的性能優(yōu)劣:

          以后評(píng)價(jià)一個(gè)算法的性能直接比較 F1 Score 即可,這就大大方便了我們對(duì)比算法的性能。

          三、機(jī)器學(xué)習(xí)的樣本規(guī)模

          除了評(píng)價(jià)指標(biāo),還有一個(gè)要關(guān)心的問題就是樣本的規(guī)模,在機(jī)器學(xué)習(xí)領(lǐng)域有一句話:「取得成功的人不是擁有最好算法的人,而是擁有最多數(shù)據(jù)的人」

          這句話的意思就是說當(dāng)我們擁有非常多的數(shù)據(jù)時(shí),選擇什么樣的算法不是最最重要的,一些在小樣本上表現(xiàn)不好的算法,經(jīng)過大樣本的訓(xùn)練往往也能表現(xiàn)良好。

          比如下面這 4 種算法在很大樣本上訓(xùn)練后的效果相差不是很大,但是在小樣本時(shí)有挺大差距:

          但在實(shí)際的機(jī)器學(xué)習(xí)算法中,為了能夠使得訓(xùn)練數(shù)據(jù)發(fā)揮最大效用,我們往往會(huì)選一個(gè)比較好的模型(不太容易欠擬合,比如神經(jīng)網(wǎng)絡(luò)),再加上很多的樣本數(shù)據(jù)(防止過擬合)

          通過這 2 者就可以讓一個(gè)算法變的很強(qiáng)大,所以以后當(dāng)你設(shè)計(jì)機(jī)器學(xué)習(xí)算法的時(shí)候一定要考慮自己的樣本規(guī)模,選擇合適的模型適應(yīng)你的數(shù)據(jù),如果你有很多很多的數(shù)據(jù),那么可以選擇復(fù)雜一點(diǎn)的模型,不能白白浪費(fèi)你的數(shù)據(jù)!

          推薦閱讀:

          從 0 開始機(jī)器學(xué)習(xí) - 機(jī)器學(xué)習(xí)算法診斷

          從 0 開始機(jī)器學(xué)習(xí) - 神經(jīng)網(wǎng)絡(luò)反向 BP 算法!

          從 0 開始機(jī)器學(xué)習(xí) - 神經(jīng)網(wǎng)絡(luò)識(shí)別手寫字符!


          廈大同學(xué),與你分享編程,AI 算法等技術(shù)干貨!精品文章創(chuàng)作不易,謝謝關(guān)注,歡迎在看。


          點(diǎn)擊閱讀原文,查看更多精彩文章!

          瀏覽 32
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲黄色成人网 | 无码伦理一级一区久久 | 操逼视频电影 | 大香蕉操逼 | 玩弄大荫蒂视频 |