「機器學習與R語言」——筆記一:機器學習簡介

我們每天的生活中,需要跟各種數據打交道。我們身體的各個感官——眼睛、耳朵、鼻子、舌頭以及神經一直被數據包圍著,大腦將所接受到的信號轉化成視覺、聽覺、嗅覺、味覺和觸覺。通過語言和文字等等的交流,我們可以將這些感受與他人分享。

電子感測器的發明大大擴展了可以記錄的數據種類,例如各種光譜數據、聲譜數據、電信號數據、壓力數據、分子信號等等。這些感測器處理數據的方式和人類不同,他們不用把原始數據轉換成人類的語言,更大程度上保留了數據的客觀性。當今我們身處於一個大量數據可以直接被機器處理的時代,通過理解數據中存在的規律,將其用於指導我們的決策選擇。

機器學習的研究領域是發明計算機演算法,把數據轉化為智能行為。它基於現有數據、統計方法以及計算能力的迅速發展。在我們的生活中,已經普遍存在機器學習的應用場景,例如零售商定向廣告促銷、規劃商店裡的商品布局、推薦系統、翻譯系統、自動駕駛、垃圾軟體過濾等等。

科學家Tom M. Mitchell給出了機器學習的定義:如果機器能夠獲取經驗並且能利用它們,在以後的類似經驗中能夠提高它的表現,該機器就稱為機器學習。

一般的學習過程可以分為三個部分:

  • 數據輸入:利用觀察、記憶存儲,以及回憶來提供進一步推理的事實依據;
  • 抽象化:把數據轉換成更寬泛的表現形式;
  • 一般化:應用抽象的數據來形成行動的基礎。

數據輸入來源於各種感測器的記錄,隨著計算機資料庫的不斷發展,越來越多方便於使用和管理的資料庫系統被相繼開發出來,人們可以非常方便的將不同來源的數據進行規範、系統的存儲和管理。給這些數據賦予含義的工作是在抽象畫步驟中進行的。在抽象畫過程中,計算機把原始輸入的數據概況在一個模型之中,這個模型就是數據間結構化模式的一個顯示描述。通常我們會用方程、曲線、邏輯規則、數據分組等形式來定義這樣的一個模型。

模型的選擇通常不是由機器來完成的,而是由學習的任務和所分析數據的類型來決定的。在選定一個合適的模型後,要用這個特定的模型來擬合數據集,這個過程稱之為訓練。當模型訓練完成後,數據就被轉換為一個匯聚了原始信息的一個抽象形式。之後將這個抽象形式應用到將來的行動中去,學習過程才算完成。

機器學習的一般步驟:

  • 收集數據:將存儲於各種媒介之下的數據轉為適合分析的電子格式。
  • 探索數據和準備數據:任何機器學習項目的質量很大程度上取決於它使用的數據質量。數據的質量決定了機器學習效果的天花板,而後續的機器學習演算法和各種優化只是為了無限的接近這個天花板。大多數的情況下,機器學習中80%的時間要花在數據處理上,這其中數據探索的過程佔據了大部分的時間。
  • 基於數據訓練模型:具體的機器學習任務會有對應合適的演算法,演算法將會以模型的形式來表現數據之間的關係。
  • 評價模型的性能:不同的機器學習模型會得到不同的解決方案,所以評價演算法的優劣是很必要的過程。一般情況下會構建一個測試數據集來評價模型的預測效果。
  • 改進模型的性能:如果需要得到更好的預測效果,一方面可以使用更加高級的方法來提高模型的性能,或者選擇其他的模型,也可以選擇新的訓練數據集和補充其他的有意義數據。

機器學習演算法可以分為兩類:用來建立預測模型的有監督學習演算法和用來建立描述模型的無監督學習演算法。使用哪種類型的演算法取決於你需要完成的學習任務。

  • 有監督學習:預測模型用於利用數據集中的其他數值來預測另一個值,演算法的目的是發現並建立目標特徵和其他特徵之間的關係。因為預測模型對於「學什麼」和「怎麼學」有清洗的指導,所以訓練一個預測模型的過程也稱為有監督學習。具體來說,給出一組數據,學習演算法嘗試最優化一個函數(模型)來找出各特徵之間的組合方式,最終據此給出目標值。例如常見的分類問題和預測數值問題。
  • 與有監督學習不同,無監督模型里沒有一個要學習的目標。聚類就是典型的無監督學習,把數據集按照相同類型進行分組。

常見的機器學習模型和對應解決的任務類型:

  • 有監督學習演算法:最近鄰——分類,樸素貝葉斯——分類,決策樹——分類,分類器——分類,線性回歸——數值預測,回歸樹——數值預測,模型樹——數值預測,神經網路和支持向量機——分類和數值預測
  • 無監督學習演算法:關聯規則——模式識別,k均值聚類——聚類

推薦閱讀:

TAG:機器學習 | R編程語言 | 數據分析 |