讀古今文學網 > 機器學習實戰 > 1.5 開發機器學習應用程序的步驟 >

1.5 開發機器學習應用程序的步驟

本書學習和使用機器學習算法開發應用程序,通常遵循以下的步驟。

1. 收集數據。我們可以使用很多方法收集樣本數據,如:製作網絡爬蟲從網站上抽取數據、從RSS反饋或者API中得到信息、設備發送過來的實測數據(風速、血糖等)。提取數據的方法非常多,為了節省時間與精力,可以使用公開可用的數據源。

2. 準備輸入數據。得到數據之後,還必須確保數據格式符合要求,本書採用的格式是Python語言的List。使用這種標準數據格式可以融合算法和數據源,方便匹配操作。本書使用Python語言構造算法應用,不熟悉的讀者可以學習附錄A。

此外還需要為機器學習算法準備特定的數據格式,如某些算法要求特徵值使用特定的格式,一些算法要求目標變量和特徵值是字符串類型,而另一些算法則可能要求是整數類型。後續章節我們還要討論這個問題,但是與收集數據的格式相比,處理特殊算法要求的格式相對簡單得多。

3. 分析輸入數據。此步驟主要是人工分析以前得到的數據。為了確保前兩步有效,最簡單的方法是用文本編輯器打開數據文件,查看得到的數據是否為空值。此外,還可以進一步瀏覽數據,分析是否可以識別出模式;數據中是否存在明顯的異常值,如某些數據點與數據集中的其他值存在明顯的差異。通過一維、二維或三維圖形展示數據也是不錯的方法,然而大多數時候我們得到數據的特徵值都不會低於三個,無法一次圖形化展示所有特徵。本書的後續章節將會介紹提煉數據的方法,使得多維數據可以壓縮到二維或三維,方便我們圖形化展示數據。

這一步的主要作用是確保數據集中沒有垃圾數據。如果是在產品化系統中使用機器學習算法並且算法可以處理系統產生的數據格式,或者我們信任數據來源,可以直接跳過第3步。此步驟需要人工干預,如果在自動化系統中還需要人工干預,顯然就降低了系統的價值。

4. 訓練算法。機器學習算法從這一步才真正開始學習。根據算法的不同,第4步和第5步是機器學習算法的核心。我們將前兩步得到的格式化數據輸入到算法,從中抽取知識或信息。這裡得到的知識需要存儲為計算機可以處理的格式,方便後續步驟使用。

如果使用非監督學習算法,由於不存在目標變量值,故而也不需要訓練算法,所有與算法相關的內容都集中在第5步。

5. 測試算法。這一步將實際使用第4步機器學習得到的知識信息。為了評估算法,必須測試算法工作的效果。對於監督學習,必須已知用於評估算法的目標變量值;對於非監督學習,也必須用其他的評測手段來檢驗算法的成功率。無論哪種情形,如果不滿意算法的輸出結果,則可以回到第4步,改正並加以測試。問題常常會跟數據的收集和準備有關,這時你就必須跳回第1步重新開始。

6. 使用算法。將機器學習算法轉換為應用程序,執行實際任務,以檢驗上述步驟是否可以在實際環境中正常工作。此時如果碰到新的數據問題,同樣需要重複執行上述的步驟。

下節我們將討論實現機器學習算法的編程語言Python。之所以選擇Python,是因為它具有其他編程語言不具備的優勢,如易於理解、豐富的函數庫(尤其是矩陣操作)、活躍的開發者社區等。