最近在從事一些大數據分析的項目,接觸到了時下非常熱門的機器學習的概念。作爲剛剛進入這一行的從業人員,我也經歷了迷茫期,不知道該如何去學習這一門新興學科。在網上查閱資料的時候,也沒有發現能夠有由淺入深介紹機器學習知識的資料。於是,自己想結合自己的學習過程,記錄我是如何學習機器學習這一門新學科的。
與學習任何一門知識一樣,我們先從基礎的概念層面對機器學習做一個底層的全面理解和認知。本篇文章中我會從四個方面介紹機器學習的基礎概念。
1. 機器學習的簡單概述
- 機器學習能讓我們自數據集中受到啓發,換句話說,我們會利用計算機來彰顯數據背後的真實含義。
- 機器學習就是把無序的數據轉換成有用的信息。
- 如何使用機器學習算法進行分類:首先需要做的是算法訓練,也就是學習如何分類;通常使用兩套獨立的樣本集:訓練數據和測試數據。當機器學習程序開始運行時,使用訓練樣本集作爲算法的輸入,訓練完成之後輸入測試樣本。
- 通常我們爲算法輸入大量已分類數據作爲算法的訓練集。訓練集是用於訓練機器學習算法的數據樣本集合。
2. 機器學習的主要任務
- 分類:將實例數據劃分到合適的分類中;
- 迴歸:主要用於預測數值型數據;
- 聚類:將數據集合分成類似的對象組成的多個類的過程;
- 密度估計:將尋找描述數據統計值的過程
3. 如何選擇合適的算法
- 特徵值是離散型變量還是連續型變量;
- 特徵值是否存在缺失的值;
- 何種原因造成缺失值;
- 數據中是否存在異常值;
- 某個特徵發生的頻率如何
4. 開發機器學習應用程序的步驟
- 收集數據:我們可以使用很多方法收集樣本數據。如:製作網絡爬蟲從網站上抽取數據、從RSS反饋或API中得到信息、設備發送過來的實測數據(風速、水溫)。提取數據的方法非常多,爲了節省時間與精力,可以使用公開可用的數據源;
- 準備輸入數據:得到數據後,還必須確保數據格式符合要求,一般我們可以使用Python語言的List類型,使用這種標準數據格式可以融合算法和數據源,方便匹配操作;此外,我們還需要爲機器學習算法準備特定的數據格式。
- 分析輸入數據:此步驟主要是人工分析以前得到的數據。爲了確保前兩步有效,最簡單的方法就是使用文本編輯器打開數據文件,查看數據是否爲空值。此外,還可以進一步瀏覽數據,分析是否可以識別出模式;數據是否存在明顯的異常值;這一步主要是確保數據集中沒有垃圾數據。
- 訓練算法:機器學習算法從這一步才真正開始學習。我們將前面得到的格式化數據輸入到算法,從中抽取知識或信息。這裏得到的知識需要存儲爲計算機可以處理的格式,方便後續步驟使用。如果使用無監督學習算法,由於不存目標變量值,故而也不需要訓練算法,所有與算法相關的內容都集中在第五步。
- 測試算法:這一步將實際使用第四步機器學習中得到的知識信息。爲了評估算法,必須測試算法工作的效果。對於監督學習,必須已知用於評估算法的目標變量值;對於無監督學習,也必須用其他的評估手段來檢測算法的成功率。無論哪種情形,如果不滿意算法的輸出結果,則可以回到第四步,改正並加以測試。
- 使用算法:將機器學習算法轉換爲應用程序,執行實際任務,以檢驗上述步驟是否可以在實際環境中正常工作。