《機器學習實戰》第一章 機器學習基礎

weixin_34249678發表於2018-11-25

該系列:

  • 整合了《機器學習實戰》中的要點,適合理解概念之後當作筆記複習或者只喜歡看概念不喜歡看講解的胖友。
  • 將程式碼改成了python3版本
  • 將單獨成段的程式碼講解以註釋的方式與程式碼融合,方便閱讀。

機器學習基礎概念

  • 訓練集是用於訓練機器學習演算法的資料樣本集合。
  • 目標變數是機器學習演算法的預測結果,在分類演算法中目標變數的型別通常是標稱型的,而在迴歸演算法中通常是連續型的。
  • 一般過程: 為了測試機器學習演算法的效果,通常使用兩套獨立的樣本集:訓練資料和測試資料。當機器學習程式開始執行時,使用訓練樣本集作為演算法的輸人,訓練完成之後輸人測試樣本。輸人測試樣本時並不提供測試樣本的目標變數,由程式決定樣本屬於哪個類別。比較測試樣本預測的目標變數值與實際樣本類別之間的差別,就可以得出演算法的實際精確度。

  • 監督學習:知道預測什麼,即目標變數的分類資訊。
    • 分類
    • 迴歸:主要用於預測數值型資料
  • 無監督學習:此時資料沒有類別資訊,也不會給定目標值。
    • 聚類:資料集合分成由類似的物件組成的多個類。
    • 密度估計:將尋找描述資料統計值的過程。
14825702-cbe856bdc65f53db.jpg
用於執行分類、迴歸、聚類和密度估計的機器學習演算法.jpg

如何選擇合適演算法

1、使用機器學習演算法的目的,想要演算法完成何種任務

if(想預測目標變數的值){
    選擇監督學習演算法;
    //進一步確定目標變數型別
    if(目標變數是離散型){
        選擇分類器演算法;
    }
    if(目標變數是連續型){
        選擇迴歸演算法;
    }
}else{
    選擇無監督學習演算法;
    //進一步分析是否需要將資料劃分為離散的組
    if(這是唯一需求){
        使用聚類演算法;
    }else if(還需要估計資料與每個分組的相似程度){
        使用密度估計演算法。
    }
}

2、需要分析或收集的資料是什麼
其次需要考慮的是資料問題。我們應該充分了解資料,對實際資料瞭解得越充分,越容易建立符合實際需求的應用程式。
主要應該瞭解資料的以下特性:

  • 特徵值是離散型變數還是連續型變數
  • 特徵值中是否存在缺失的值,何種原因造成缺失值
  • 資料中是否存在異常值
  • 某個特徵發生的頻率如何
    ...

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

1、收集資料;
2、準備輸入資料;保證資料格式符合要求。
3、分析輸入資料;確保資料集中沒有垃圾資料。
4、訓練演算法;
5、測試演算法;無論哪種情形,如果不滿意演算法的輸出結果,則可以回到第4步,改正並加以測試。問題常常會跟資料的收集和準備有關,這時你就必須跳回第1步重新開始。
6、使用演算法;將機器學習演算法轉換為應用程式,執行實際任務,以檢驗上述步驟是否可以在實際環境中正常工作。此時如果碰到新的資料問題,同樣需要重複執行上述的步驟。

相關文章