日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

吴恩达《机器学习》学习笔记十二——机器学习系统

發布時間:2024/7/23 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达《机器学习》学习笔记十二——机器学习系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

吳恩達《機器學習》學習筆記十二——機器學習系統

  • 一、設計機器學習系統的思想
    • 1.快速實現+繪制學習曲線——尋找重點優化的方向
    • 2.誤差分析
    • 3.數值估計
  • 二、偏斜類問題(類別不均衡)
  • 三、查準率P與召回率R——代替準確率的評估指標
  • 四、查準率與召回率的權衡——F1-Score

上次筆記主要介紹評估機器學習模型的方法,從偏差、方差來分析模型可能擁有的問題,從而應該采取什么相應的措施。介紹了偏差、方差與欠擬合、過擬合之間的關系,以及正則化對偏差、方差的影響,還介紹了一些曲線圖幫助分析,這些都是實踐中很重要的建議,相比毫無目的地隨便選擇優化方法,通過評估分析之后可以排除一些無意義的選項,節省了大量寶貴的時間。

上次筆記鏈接:https://blog.csdn.net/qq_40467656/article/details/107525426

這次筆記繼續介紹一些機器學習系統實際使用時會遇到的一些問題,以及相應的解決方案。

一、設計機器學習系統的思想

1.快速實現+繪制學習曲線——尋找重點優化的方向

當要開始做一個機器學習的系統時,一般來說最好的辦法,不是一開始就建立一個很復雜的有許多復雜特征的系統,而是通過一個簡單的算法來快速地實現它,即使這個簡單的東西不是很完美;然后通過交叉驗證集來測試數據。

做完上述的之后,就可以畫出相應的學習曲線,通過學習曲線以及檢驗誤差來找出你的算法是否存在高偏差或高方差或其他一些的問題,在作出這些分析之后,再來決定是否使用更多的數據或者特征等等。這種方法在你剛剛開始解決一個機器學習的問題的時候能起到很好的作用,因為你并不能預知,你是需要更多的特征還是更多的數據或者是別的東西,在缺乏各種證據的情況下,很難提前知道這些信息,因為你沒有畫出學習曲線所以很難決定把時間花在哪里。

所以很多時候,一開始應當先進行一次簡單快速地實現,然后畫出學習曲線來幫助你進行之后的判斷。可以把它想成是在你編程的時候,你要避免出現過早優化的問題,這種思想告訴我們,應該用實際的證據來指導我們的決策,來決定把時間花在哪里,而不是僅憑直覺。上述思想如下圖所示:

2.誤差分析

當實現比如一個垃圾郵件分類器的時候,會經常觀察交叉驗證集的情況,然后看一看那些被錯誤分類的文件。通過查看這些被錯誤分類的垃圾郵件和非垃圾郵件,有什么共同的特征和規律,這樣做多了以后,這個過程就會啟發你應該設計怎樣的新特征或是告訴你現在的系統有什么優點和缺點,然后指導你想出辦法來改進它。

舉一個具體的例子:假如在做一個垃圾郵件分類器,然后在你的交叉驗證集中有500個樣本,假如在這個例子中錯誤率較高,它錯誤分類了100個交叉驗證樣本,如下圖所示:

那么現在要做的就是手動核查著100個錯誤,然后手工為它們分類,同時要考慮這些郵件是什么類型的郵件,有什么線索或者特征能幫助算法正確的進行分類。比如經過手動核查后發現錯誤分類的郵件是以下的情況:

對于錯誤比較多的類別,就應該多關注一下,多找一些特征來區別它們,進而進行改進。

因此,這樣的誤差分析,是一種手動地去檢查算法所出現的失誤的過程,它能引導你走向最有成效的道路。這也是為什么要先通過一種比較簡單的算法先實現的原因,我們要做的是找到一些最難以分類的類別,而對于不同的學習算法來說,對它們造成困難的樣本總是相似的,通過一個簡單粗暴的算法實現,你可以很快的找到算法的不足所在和難以處理的樣本的類型,然后把精力集中在它們身上。

3.數值估計

在改進學習算法時,另一個技巧是保證自己對學習算法有一種數值估計的方法。當改進學習算法時,如果你的算法能夠返回一個數值評價指標來估計算法執行的效果,將會很有幫助。
可能算法是準確的,也可能是錯誤的,但這個數字能告訴你你的學習算法效果有多好,先看一個例子:

當遇到是否應該把discount、discounts、discounted和discounting這幾個單詞當作有相同的含義時,可能會考慮是否使用stemming軟件(一種詞干提取軟件),那么我們就可以通過比較使用前后系統的錯誤率的變化來判斷是否應該使用。圖中所示,不使用的錯誤率是5%,使用后的錯誤率是3%,顯然有了這樣的數值比較,抉擇起來會很容易。

當你改進學習算法時,你總是要去嘗試很多新主意和新版本的算法,如果你每次試用新方法都手動地去檢測這些例子看看表現的好不好,會讓你很難去決定到底應不應該這么做。但是通過一個單一規則的數值評價指標,你可以觀察誤差率是變大了還是變小了,你可以通過它更快地實踐你的新想法,它能直接告訴你你的想法能提高還是降低學習算法的表現,這會大大加速你的進程。

二、偏斜類問題(類別不均衡)

從一個例子來理解偏斜類問題:

訓練一個邏輯回歸模型來判斷患者是否患有癌癥,假設我們訓練的這個模型在測試集上的錯誤率只有1%。但是如果只有0.5%的患者是有癌癥的,這時即使不用任何算法,直接將所有患者都預測為無癌癥,錯誤率也只有0.5%,比使用了機器學習算法后獲得的錯誤率還要低

這種情況經常發生在正例和負例的比率非常接近于一個極端情況的時候。在本例中,正樣本的數量與負樣本的數量相比非常非常少,把這種情況叫做偏斜類。一個類的數據與另一個類相比多很多,此時使用分類誤差或分類精確度來作為評估度量可能會產生如下問題:有時候只看準確率無法衡量一個算法的好壞,無法確定真的提升了算法的質量

三、查準率P與召回率R——代替準確率的評估指標

所以在遇到偏斜類問題時,我們希望有一個不同的誤差度量值或評估度量值。下面介紹兩種評估度量值:查準率與召回率

首先要定義一些概念:

當真實類別與預測的類別都為1時的數據,我們稱之為真陽性(True Positive),真實類別為1,預測類別為0的,稱之為假陽性(False Positive),真實類別為0,預測類別為1的,稱之為假陰性(False Negative),真實類別與預測類別都為0的,稱之為真陰性(True Negative),如上圖所示。

然后再來看查準率與召回率的定義:

查準率(Precision)是指,在所有預測為真的數據中真實標簽為真的數據的比例,公式如下圖所示,可以看出,查準率越高越好。

召回率(Recall)是指,在所有真實標簽為真的數據中,被預測正確(即也為真)的比例,公式如下圖所示,自然也是越高越好。

通過計算查準率與召回率,我們就可以更好地知道分類模型到底好不好,針對上述提及的癌癥分類的偏斜類問題,如果我們將所有的數據全都預測為無癌癥(0/假),那么召回率就變成0,由此得知這不是一個好的算法。

擁有高查準率和高召回率的模型是一個好的分類模型,這給予了我們一個更好的評估值,給予了一種更直接的方法來評估模型的好壞。

四、查準率與召回率的權衡——F1-Score

在很多應用中,我們希望能夠保證查準率與召回率的相對平衡。先來看一下查準率與召回率有什么聯系:

  • 還是在這個癌癥分類的邏輯回歸模型上,如果我們的目標是盡可能的減少患者的心理負擔,即只有很確定時才宣布患有癌癥(y=1),不然不判定為癌癥(y=0)。

    當我們將分類的閾值從0.5改為0.7或者是0.9時,這就意味著在概率達到90%時才判定為有癌癥,這樣的話判斷有癌癥的數據中真的有癌癥的比例就會變大,即查準率會變大;而與此同時,所有真實有癌癥的數據中被預測為有癌癥的可能性就有所下降(畢竟概率要求變高,原本一些低概率的現在被預測為無癌癥了),即召回率會變小

  • 考慮另外一種情況,假設我們希望避免遺漏掉患有癌癥的患者,即希望避免假陰性。換句話說,如果一個患者確實患有癌癥,但是我們沒有告訴他患有癌癥,那這可能造成嚴重的后果。

    這時的分類閾值將會設置的小一些,比如0.3,因為希望更多的患者被預測為有癌癥,從而進一步接受治療。那么與上一個情況相反,這將擁有高召回率,低查準率

  • 所以對于大多數的回歸模型,你得權衡查準率與召回率,通過改變“閾值”來得到想要的高查準率或是高召回率,它們之間的關系如下圖所示,一個高一個就低

    那么現在又有一個問題,當你有幾個算法時,或者同一個算法但是“閾值”不同時,得到的查準率與召回率都是不一樣的,我們怎樣決定哪一個是最好的呢?當只有一個評價度量時可以直接比較,但是現在有兩個,該怎么綜合考慮呢?

    有一種結合查準率和召回率的的方式,叫做F值(F-Score),公式如下圖所示,分值越高則說明該模型最好

    總結

    以上是生活随笔為你收集整理的吴恩达《机器学习》学习笔记十二——机器学习系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。