1. 程式人生 > >【Youtube機器速成學習筆記】 入門總結

【Youtube機器速成學習筆記】 入門總結

機器學習一些常用概念

什麼是機器學習

用已知資料去預測推算未知事情

標籤

標籤是我們要預測的事物,即簡單線性迴歸中的 y 變數。標籤可以是小麥未來的價格、圖片中顯示的動物品種、音訊剪輯的含義或任何事物。

特徵

特徵是輸入變數,即簡單線性迴歸中的 x 變數。簡單的機器學習專案可能會使用單個特徵,而比較複雜的機器學習專案可能會使用數百萬個特徵,按如下方式指定:

{x1,x2,...xN}

在垃圾郵件檢測器示例中,特徵可能包括:

  • 電子郵件文字中的字詞
  • 發件人的地址
  • 傳送電子郵件的時段
  • 電子郵件中包含“一種奇怪的把戲”這樣的短語。

樣本

樣本是指資料的特定例項:x。(我們採用粗體 x 表示它是一個向量。)我們將樣本分為以下兩類:

  • 有標籤樣本
  • 無標籤樣本

有標籤樣本同時包含特徵和標籤。即:


  
   
   
  
    labeled examples: {features, label}: (x, y)
  

我們使用有標籤樣本來訓練模型。在我們的垃圾郵件檢測器示例中,有標籤樣本是使用者明確標記為“垃圾郵件”或“非垃圾郵件”的各個電子郵件。

例如,下表顯示了從包含加利福尼亞州房價資訊的資料集中抽取的 5 個有標籤樣本:

housingMedianAge(特徵) totalRooms(特徵) totalBedrooms(特徵) medianHouseValue(標籤)
15 5612 1283 66900
19 7650 1901 80100
17 720 174 85700
14 1501 337 73400
20 1454 326 65500

無標籤樣本包含特徵,但不包含標籤。即:


  
   
   
  
    unlabeled examples: {features, ?}: (x, ?)

在使用有標籤樣本訓練了我們的模型之後,我們會使用該模型來預測無標籤樣本的標籤。在垃圾郵件檢測器示例中,無標籤樣本是使用者尚未新增標籤的新電子郵件。

模型

模型定義了特徵與標籤之間的關係。例如,垃圾郵件檢測模型可能會將某些特徵與“垃圾郵件”緊密聯絡起來。我們來重點介紹一下模型生命週期的兩個階段:

  • 訓練表示建立或學習模型。也就是說,您向模型展示有標籤樣本,讓模型逐漸學習特徵與標籤之間的關係。

  • 推斷表示將訓練後的模型應用於無標籤樣本。也就是說,您使用訓練後的模型來做出有用的預測 (y')。例如,在推斷期間,您可以針對新的無標籤樣本預測 medianHouseValue

迴歸與分類

迴歸模型可預測連續值。例如,迴歸模型做出的預測可回答如下問題:

  • 加利福尼亞州一棟房產的價值是多少?

  • 使用者點選此廣告的概率是多少?

分類模型可預測離散值。例如,分類模型做出的預測可回答如下問題:

  • 某個指定電子郵件是垃圾郵件還是非垃圾郵件?

  • 這是一張狗、貓還是倉鼠圖片?


訓練模型表示通過有標籤樣本來學習(確定)所有權重和偏差的理想值。在監督式學習中,機器學習演算法通過以下方式構建模型:檢查多個樣本並嘗試找出可最大限度地減少損失的模型;這一過程稱為經驗風險最小化

損失是對糟糕預測的懲罰。也就是說,損失是一個數值,表示對於單個樣本而言模型預測的準確程度。如果模型的預測完全準確,則損失為零,否則損失會較大。訓練模型的目標是從所有樣本中找到一組平均損失“較小”的權重和偏差。例如,圖 3 左側顯示的是損失較大的模型,右側顯示的是損失較小的模型。關於此圖,請注意以下幾點:

  • 紅色箭頭表示損失。
  • 藍線表示預測。

兩個直角座標曲線圖,每個曲線圖顯示一條線和一些資料點。在第一個曲線圖中,線與資料極其不吻合,所以損失較大。在第二個曲線圖中,線與資料比較吻合,所以損失較小。

圖 3. 左側模型的損失較大;右側模型的損失較小。

 

請注意,左側曲線圖中的紅色箭頭比右側曲線圖中的對應紅色箭頭長得多。顯然,相較於左側曲線圖中的藍線,右側曲線圖中的藍線代表的是預測效果更好的模型。

您可能想知道自己能否建立一個數學函式(損失函式),以有意義的方式彙總各個損失。

平方損失:一種常見的損失函式

接下來我們要看的線性迴歸模型使用的是一種稱為平方損失(又稱為 L2 損失)的損失函式。單個樣本的平方損失如下:


 
  
  = the square of the difference between the label and the prediction = (observation - prediction(
 x))
 2 = (y - y')
 2
 

均方誤差 (MSE) 指的是每個樣本的平均平方損失。要計算 MSE,請求出各個樣本的所有平方損失之和,然後除以樣本數量:

MSE=1N∑(x,y)∈D(y−prediction(x))2

其中:

  • (x,y) 指的是樣本,其中
    • x 指的是模型進行預測時使用的特徵集(例如,溫度、年齡和交配成功率)。
    • y 指的是樣本的標籤(例如,每分鐘的鳴叫次數)。
  • prediction(x) 指的是權重和偏差與特徵集 x 結合的函式。
  • D 指的是包含多個有標籤樣本(即 (x,y))的資料集。
  • N 指的是 D 中的樣本數量。

雖然 MSE 常用於機器學習,但它既不是唯一實用的損失函式,也不是適用於所有情形的最佳損失函式。

【簡單一個程式帶你進入機器學習】

例如:給你一些特徵值,讓你預測所屬標籤(猜測蘋果橘子)

機器學習簡單步驟

步驟1:首先去採集資料(採集標籤所具有的特徵值)

步驟2:根據這些資料訓練你的分類器採用決策樹演算法

程式碼如下:

from sklearn import tree
features = [[140,1],[130,1],[150,0],[170,0]]
labels = [0,0,1,1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features,labels)
print clf.predict([[150,0]])