機器學習公開課備忘錄(三)機器學習算法的應用與大數據集

 機器學習公開課備忘錄(三)機器學習算法的應用與大數據集

對應機器學習公開課第六週和第10周算法

機器學習算法模型的選擇與評價

一、對於一個data,能夠將data劃分爲training set、test set和cross validation set三類(比例60%、20%、20%),其代價函數值分別爲\(J_{train}、J_{test}、J_{cv}\),例如在構建新特徵 \(x\) 的多項式時,能夠假設不一樣的階次 \(d\)\(x\) 的多項式,利用training set獲得各個多項式的具體參數,利用cross validation選擇多項式模型中性能最好的一組,即肯定最佳的 \(d\),而test set則用於評價最終模型的性能。
二、模型在泛化時中常見的兩類問題是欠擬合與過擬合。前者表明數據有大的誤差,即平均值和真實值偏離;後者表明有大的方差,即平均值和真實值接近,可是波動幅度大。對於正則項,\(\lambda\) 過大時引起了underfit(欠擬合)問題,反之則引起overfit(過擬合問題), \(\lambda\) 的選擇一樣能夠根據cross validation set來選擇。繪製m和\(J_{train}、J_{cv}\)的曲線,能夠觀察系統存在的問題:

對於高誤差,最終測試集的偏差和訓練集偏差隨着樣本m的提升很是接近,可是這偏差值很是高,離咱們指望值較遠;而對於高誤差,測試集偏差和訓練集偏差在m很大時仍然有必定差距,且隨着m的增大而繼續接近。這也說明,試圖經過增大樣本數量來改善模型性能的,只對高誤差的過擬合問題有效。
三、對於系統的過擬合和欠擬合問題,一些能夠嘗試的解決辦法以下機器學習

解決方案 問題
更多data high variance
更少特徵 high variance
增長額外特徵 high bias
增長特徵階次 high bias
增大正則參數 high bias
減少正則參數 high variance

四、某些狀況下,測試集的存在不能很好地評估系統性能,例如對於偏斜類問題(即分類問題中,某個類別特別少),所以還有一種評價方法:函數

預測\真實 1 0
1 true positive false positive
0 false negative true negative

此時,有 \[查準率P = \frac{TP}{TP+FP}\] \[查全率R = \frac{TP}{TP+FN}\] \[F=2*\frac{PR}{P+R}\]性能

大數據集的使用

梯度降低法的使用

一、在正式開始前,能夠選用較小的數據集,繪製學習曲線,來大體尋找參數範圍
二、批量梯度降低法須要讀入全部數據才完成一次更新,在數據量過大時,速度很緩慢,爲了提升速度,有兩種方法:學習

a. 隨機梯度降低法:每讀入一個數據,就進行參數更新:\[\theta_j=\theta_j-\alpha(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}   j=0,...,n \] 直到將m個數據所有讀入更新完畢,而後打亂數據集順序,再從新讀入一次,通常要重複1~10次;隨機梯度降低法只能逼近最小值,但不能達到。若要繪製曲線,則可每讀入一個數據,就計算該數據的代價,每掃描必定數量的數據,就計算平均cost,而後繪製一個點,最後獲得曲線測試

b. 小批量梯度降低法:每讀入b(1<b<m)個數據,就進行參數跟新:
say b=10,m=1000
repeat{
 for i=1,11,21,...,991{
   \(\theta_j=\theta_j-\alpha\frac{1}{10}\sum\limits_{k=i}^{i+9}(h_\theta(x^{(k)})-y^{(k)})x_j^{(k)}  j=0,1,...,n\)大數據

 }
}spa

在線學習機制

  1. 每讀入一個數據,就進行更新,而後捨棄數據
  2. 能適應並反應用戶偏好的變化

MAP REDUCE

  1. 分散計算——彙總,以此來加快求解速度
  2. 算法必須能表示成求和的形式
相關文章
相關標籤/搜索