↵
一、機器學習概覽
本書假定你對機器學習幾乎一無所知。它的目標是給你實際實現能夠從數據中學習的程序所 需的概念,直覺和工具。
https://github.com/ageron/handson-ml 是 Jupyter notebooks上的代碼示例。
機器學習可以根據訓練時監督的量和類型進行分類。主要有四類:監督學習、非監督學習、 半監督學習和強化學習。
另一個用來分類機器學習的準則是,它是否能從導入的數據流進行持續學習:批量和在線學習。
另一種分類機器學習的方法是判斷它們是如何進行歸納推廣的。大多機器學習任務是關於預 測的。這意味着給定一定數量的訓練樣本,系統需要能推廣到之前沒見到過的樣本。對訓練 數據集有很好的性能還不夠,真正的目標是對新實例預測的性能。
有兩種主要的歸納方法:基於實例學習和基於模型學習。
使用 Scikit-Learn 訓練並運行線性模型步驟:
- 研究數據
- 選擇模型
- 用訓練數據進行訓練(即,學習算法搜尋模型參數值,使代價函數最小)
- 最後,使用模型對新案例進行預測(這稱作推斷),但願這個模型推廣效果不差
機器學習的主要挑戰
- 訓練數據量不足
- 沒有代表性的訓練數據
- 低質量數據
- 不相關的特徵(特徵工程=特徵選擇+特徵提取+收集新數據創建新特徵。)
- 過擬合訓練數據
- 欠擬合訓練數據
回顧:
- 機器學習是讓機器通過學習數據對某些任務做得更好,而不使用確定的代碼規則。
- 有許多不同類型的機器學習系統:監督或非監督,批量或在線,基於實例或基於模型, 等等。
- 在機器學習項目中,我們從訓練集中收集數據,然後對學習算法進行訓練。如果算法是 基於模型的,就調節一些參數,讓模型擬合到訓練集(即,對訓練集本身作出好的預 測),然後希望它對新樣本也能有好預測。如果算法是基於實例的,就是用記憶學習樣 本,然後用相似度推廣到新實例。
- 如果訓練集太小、數據沒有代表性、含有噪聲、或摻有不相關的特徵(垃圾進,垃圾 出),系統的性能不會好。最後,模型不能太簡單(會發生欠擬合)或太複雜(會發生 過擬合)。