1. 程式人生 > >機器學習中的分類問題及基本學習步驟

機器學習中的分類問題及基本學習步驟

現在讓我們來繼續認識一下到底什麼是機器學習呢?在機器學習中,最常見的問題就是分類(classification)問題,所謂的分類問題,就比如我們用機器學習演算法,將病人的檢查結果分為有病和健康,是一個醫學方面的二分類問題(將要區分的資料分為兩個類別)。再例如在電子郵箱中,收到郵件之後,電子郵箱會將我們的郵件分為廣告郵件,垃圾郵件和正常郵件,這就是一個多分類的問題(將要區分的資料分為多個類別)。

為什麼我們著重的介紹分類的問題呢?因為分類問題是機器學習中的基礎,其他的很多應用都可以從分類的問題演變而來,同時很多問題都可以轉化成分類的問題,比如影象中的影象分割,最簡單的實現方法就是對每一個畫素進行分類,在自然場景的分割中,我們就判斷這個畫素點是不是房子的一部分,如果是的話,那麼他的標籤就是房子。

在機器學習中,能夠完成分類任務的演算法,我們通常把它叫做一個分類器(classifier)。要想評價一個分類器的好壞,我們就要有評價指標,最常見的就是準確率(accuracy),準確率是指被分類器分類正確的資料的數量佔所有資料數量的百分比。但是我們可以在不提及資料集的情況下就說一個分類器要比另一個分類器的效果更好麼?答案是否定的,具體原因還記得嗎?請回看我之前的文章,沒有免費午餐理論

知道了分類器我們就要具體的研究資料了,通常我們會管我們處理的資料叫做資料集(data set)一個數據集通常來說包括三個部分,1,訓練資料(training data)及其標籤,2,驗證資料(validation data)及其標籤,3,測試資料(testing data)

。需要特別強調的是,這三部分都是各自獨立的,也就是說訓練資料中的資料不能再出現在驗證資料以及測試資料中,驗證資料最好也不要出現在測試資料中,這點在訓練分類器的時候一定要特別注意。(這三個部分有時候是可以變成兩個部分的,這個我在大家認識了這三部分之後再詳細的介紹。)

分類問題步驟描述
下面我們來講分類器的訓練,如上圖所示,訓練一個分類器通常需要三個步驟,第一個步驟就是使用訓練資料和其標籤訓練模型,這就好比教育一個小孩子通過觀察知道什麼是蘋果的過程,我們要讓他反覆的看到各種樣式的蘋果的照片以及其他不是蘋果的物體的照片(訓練資料),並且告訴他哪些照片是蘋果,哪些不是(訓練資料的標籤),通過這樣的過程讓小孩子學習。

第二個步驟就是將驗證資料輸入模型中,比較驗證資料的標籤和模型分類結果的區別,進而評價演算法的學習效果,通常來說一個機器學習演算法的準確率或者其他指標就是在驗證資料上得到的。這就好像我們教了孩子一段時間之後,我們拿一個黑白電視機的照片(在之前的教育過程中,小孩子只見過彩色電視機沒見過黑白的電視機,這是和訓練資料不同的驗證資料,“不是蘋果”這個結論就是驗證資料的標籤),問小孩子這是不是蘋果,看小孩子能否答對,進而評價小孩子的學習效果。

第三個步驟是機器學習演算法的實際應用過程,等到我們認為模型已經訓練的足夠好了,在驗證資料上取得了很好的效果之後,我們就將這個模型真正的運用於實際中去,代替我們工作,有時候在一些科研專案中是不存在這個步驟的,因為如果要衡量一個機器學習演算法的優越性,使用第二步中有標籤的資料就可以做到,什麼時候那個演算法真正在現實生活中應用了,那麼才會有很多的無標籤資料讓機器去代替人們完成任務。就像小孩子認識了什麼是蘋果,那麼他就可以從事對照片分類的工作了,他可以基本正確的分辨出哪些照片是蘋果而哪些不是,這樣以後就不用大人手工的挑選照片了,這個艱鉅而又無聊的選擇蘋果照片的任務就交給小孩子了。

上面講的就是最標準的擁有三類資料(訓練,驗證,測試)的情況,下面我們將介紹兩部分資料的情況。有些時候,我們得到的資料只有訓練資料(有標籤)和測試資料(無標籤),這時候我們就需要人為的將訓練資料中的一部分拿出來作為驗證資料,這部分驗證資料不參與分類器的學習過程,通常訓練資料和驗證資料的比例是7比3,就是拿出70%的有標籤資料作為訓練資料,30%的有標籤資料作為驗證資料。

還有時我們的資料都是有標籤的資料,那麼這時候我們通常來說也按照7比3的比例,將有標籤的資料分為訓練資料和驗證資料,通過驗證資料衡量模型在這套資料上的效能,從而省略第三個步驟。