一、機器學習基礎
1.1 何謂機器學習
機器學習就是將無序的數據轉換成有用的信息。
機器學習橫跨計算機科學、工程技術和統計學等多個學科,需要多學科的專業知識。
✨✨✨1.1.1 傳感器和海量數據
移動計算和傳感器產生的海量數據意味着未來我們將面臨着越來越多的數據,如何從數據中抽取有價值的信息將是一個非常重要的課題。
✨✨✨1.1.2 機器學習非常重要
大量的經濟活動都依賴於信息,我們不能再海量的數據中迷失,機器學習有助於我們穿越數據霧靄,從中抽取出有用的信息。
1.2 關鍵術語
機器學習的主要任務就是分類。
最終我們決定使用某個機器學習算法進行分類,首先需要做的就是算法訓練,即學習如何分類。
——訓練集:通常我們爲算法輸入大量已分類數據作爲算法的訓練集。訓練集是用於訓練機器學習算法的數據樣本集合。
——目標變量:機器學習算法的預測結果。分類算法中的目標變量的類型通常是標稱型的;迴歸算法中的目標變量通常是連續型的。
訓練樣本集必須明確知道目標變量的值,以便機器學習算法可以發現特徵和目標變量之間的關係。
我們通常將分類問題中的目標變量稱爲類別,並假定分類問題只存在有限個數的類別。
📌📌 特徵或者屬性通常是訓練樣本集的列,它們是獨立測量得到的結果,多個特徵聯繫在一起共同組成一個訓練樣本。
爲了測試機器學習算法的效果,通常採用兩套獨立的樣本集:
——訓練數據:當機器學習程序開始運行時,使用訓練樣本集作爲算法的輸入。
輸入測試樣本時並不提供測試樣本的目標變量,由程序決定樣本屬於哪個類別。
——測試數據:訓練完成後輸入測試樣本。
比較測試樣本預測的目標變量值和實際樣本類別之間的差別,就可以精確的計算出算法的實際精確度。
1.3 機器學習的主要任務
機器學習的任務:
- 分類:將實例數據劃分到合適的分類中。
- 迴歸:預測數值型數據。
監督學習:分類和迴歸都屬於監督學習。因爲它必須知道預測什麼,即目標變量的分類信息。
無監督學習:此時的數據沒有類別信息,也不會給定目標值。
- 將數據集合分成由類似的對象組成的多個類的過程被稱爲聚類;
- 將尋找描述數據統計值的過程稱爲密度估計。
無監督學習可以減少數據特徵的維度,以便我們可以使用二維或三維圖形更加直觀地展示數據信息。
1.4 如何選擇合適的算法
上表的算法中選擇實際可用的算法,必須考慮兩個問題:
- 使用機器學習算法的目的,想要算法完成何種任務;
- 需要分析或收集的數據是什麼。
✨✨ 首先需要考慮使用機器學習算法的目的。
① 如果想要預測目標變量的值,則可以選擇監督學習算法。
- 確定監督學習算法後,需要進一步確定目標變量類型。
- 目標變量是離散型
如:是/否、1/2/3、A/B/C或者紅/黃/黑 等。 - 目標變量是連續型
如:0.0~100.00、-999~999、-∞~+∞
- 目標變量是離散型
② 如果不想要預測目標變量的值,則可以選擇無監督學習算法。
- 進一步分析是否需要將數據劃分成離散的組。
- 如果這是唯一的需求,則使用聚類算法;
- 如果還需要估計數據和每一個分組的相似程度,則需要使用密度估計算法。
✨✨ 其次需要考慮的是數據問題。
主要應該瞭解數據的以下特徵:
特徵值是離散型變量還是連續型變量,特徵值中是否存在缺失的值,何種原因造成缺失值,數據中是否存在異常值,某個特徵發生的頻率如何等等。充分了解上面的數據特徵可以縮短選擇機器學習算法的時間。
1.5 開發機器學習應用程序的步驟
- 收集數據。
收集樣本數據。
- 準備輸入數據。
確保數據格式符要求。
- 分析輸入數據。
確保數據集中沒有垃圾數據。
- 訓練算法。
將前兩步得到的數據輸入到算法中,從而抽取知識或者信息。
- 若採用無監督學習算法,由於不存在目標變量值,故而也不需要訓練算法、所有與算法相關的內容都集中在第五步。
- 測試算法。
這步將實際使用第四步機器學習得到的知識信息。爲了評估算法,必須測試算法工作的效果。
- 對於監督學習,必須已知用於估算算法的目標變量值;
- 對於無監督學習,也必須用其他的評測手段來檢測算法的成功率。
- 使用算法。
將機器學習算法轉換成應用程序,執行實際操作,以檢驗上述步驟是否可以在實際環境中正常工作。
1.6 Python語言的優勢
Python作爲機器學習算法編程語言的3大原因:
- python語法清晰
- 易於操作純文本文件
- 使用廣泛,存在大量的開發文檔
✨✨✨ 1.6.1 可執行僞代碼
Python具有清晰的語法結構,大家稱爲可執行僞代碼。