讀古今文學網 > 機器學習實戰 > 1.4 如何選擇合適的算法 >

1.4 如何選擇合適的算法

從表1-2中所列的算法中選擇實際可用的算法,必須考慮下面兩個問題:一、使用機器學習算法的目的,想要算法完成何種任務,比如,是預測明天下雨的概率還是對投票者按照興趣分組;二、需要分析或收集的數據是什麼。

首先考慮使用機器學習算法的目的。如果想要預測目標變量的值,則可以選擇監督學習算法,否則可以選擇非監督學習算法。確定選擇監督學習算法之後,需要進一步確定目標變量類型,如果目標變量是離散型,如是/否、1/2/3、A/B/C或者紅/黃/黑等,則可以選擇分類算法;如果目標變量是連續型的數值,如0.0~100.00、-999~999或者+∞~-∞等,則需要選擇回歸算法。

如果不想預測目標變量的值,則可以選擇非監督學習算法。進一步分析是否需要將數據劃分為離散的組。如果這是唯一的需求,則使用聚類算法;如果還需要估計數據與每個分組的相似程度,則需要使用密度估計算法。

在大多數情況下,上面給出的選擇方法都能幫助讀者選擇恰當的機器學習算法,但這也並非一成不變。第9章我們就會使用分類算法來處理回歸問題,顯然這將與上面監督學習中處理回歸問題的原則不同。

其次需要考慮的是數據問題。我們應該充分瞭解數據,對實際數據瞭解得越充分,越容易創建符合實際需求的應用程序。主要應該瞭解數據的以下特性:特徵值是離散型變量還是連續型變量,特徵值中是否存在缺失的值,何種原因造成缺失值,數據中是否存在異常值,某個特徵發生的頻率如何(是否罕見得如同海底撈針),等等。充分瞭解上面提到的這些數據特性可以縮短選擇機器學習算法的時間。

我們只能在一定程度上縮小算法的選擇範圍,一般並不存在最好的算法或者可以給出最好結果的算法,同時還要嘗試不同算法的執行效果。對於所選的每種算法,都可以使用其他的機器學習技術來改進其性能。在處理輸入數據之後,兩個算法的相對性能也可能會發生變化。後續章節我們將進一步討論此類問題,一般說來發現最好算法的關鍵環節是反覆試錯的迭代過程。

機器學習算法雖然各不相同,但是使用算法創建應用程序的步驟卻基本類似,下一節將介紹如何使用機器學習算法的通用步驟。