1. 程式人生 > >【機器學習】筆記01

【機器學習】筆記01

機器學習總體流程圖

在這裡插入圖片描述

機器學習 四個階段

1.資料預處理階段: 特徵提取:將原始資料轉化為特徵資料,從而能夠有效的對原始資料所涵蓋的資訊進行表達(raw data→feature); 特徵選擇:有時會從原始資料提取很多的特徵,我們選擇出一部分特徵來以適應當前的場景,同時簡化資料; 降維、幅度縮減:當進行特徵選擇後資料的維度仍然過高,或者適用當前場景的模型相對簡單,為了解決計算成本以及防止過擬合,通常對資料再進行降維操作;主要採用主成分分析法(PCA)取樣:採集樣本集;過取樣:;欠取樣:;

2.模型學習: 根據經驗以及對當前場景的理解選擇適合的機器學習模型,並對資料進行訓練,從而學習到資料所含的內在規律。由資訊理論知識可知,對於給定的資料,其所含的資訊就已經確定了,我們所做的資料預處理即是儘可能的提取其中所涵蓋的有用資訊並剔除噪聲資料,即是資料是根本,其本身決定了模型效果的上限;而我們選擇不同的演算法則是使我們的模型效果無線趨近於其上限,簡而言之:演算法越合適,效果越好;機器學習常用演算法如下圖所示: 在這裡插入圖片描述

3.模型評估: 什麼是好的模型?答:高精度與泛化能力的折中,而我們要想評估我們的模型,則需要訓練資料集以外的資料集----驗證集 常用的驗證集生成方法主要有以下三種:

①hold out (留出法)

  • 要儘量保持資料分佈的一致性,如分層取樣;
  • 多次隨機重複劃分;
  • 測試集不能太大,也不能太小:

②k折交叉檢驗(cross validation) 在這裡插入圖片描述 ③自助法(bootstrap) 在這裡插入圖片描述 即當樣本數量較多時,我們能夠按照自助法把原有資料集隨機分割成約7:3的兩個子資料集D1D_1D2D_2,我們用D1D_1來做訓練集生成模型,D2D_2來做測試集並選擇模型效能的度量來判別模型的好壞。

模型的常用效能度量標準

迴歸問題(Regression)

以下用yy代表真實值,yy^*代表預測值,yˉ\bar y代表真實值的均值:

  • 平均絕對誤差MAE(mean absolute error) MAE=1ni=1nyiyiMAE=\frac{1}{n} \sum\limits_{i=1}^{n} \begin{vmatrix} y_i-y^*_i\end{vmatrix}
  • 平均平方誤差MSE (mean square error)MSE=1ni=1n(yiyi)2MSE=\frac{1}{n}\sum\limits_{i=1}^{n}(y_i-y^*_i)^2
  • 方均根誤差RMSE(root mean square error)RMSE=1ni=1n(yiyi)2RMSE=\sqrt{\frac{1}{n}\sum\limits_{i=1}^{n}(y_i-y^*_i)^2}
  • 殘差平方和SSresidual=i=1n(yiyi)2SS_{residual}=\sum\limits_{i=1}^{n}(y_i-y^*_i)^2
  • 迴歸平方和SSregression=i=1n(yiyˉ)2SS_{regression}=\sum\limits_{i=1}^{n}(y^*_i-\bar y)^2
  • 總離差平方和SStotal=i=1n(yiyˉ)2SS_{total}=\sum\limits_{i=1}^{n}(y_i-\bar y)^2
  • 線性迴歸決定係數 R2R^2 :反應了yy的波動有多少百分比能被xx的波動所描述,即表徵依變數yy的變異中有多少百分比,可由控制的自變數xx來解釋SStotal=SSresidual+SSregressionSS_{total}=SS_{residual}+SS_{regression} R2=1SSregressionSStotal=SSresidualSStotalR^2=1-\frac{SS_{regression}}{SS_{total}}=\frac{SS_{residual}}{SS_{total}}

分類問題(Classification)

  • 錯誤率 Err=1mi=1mI(yiyi)Err=\frac{1}{m}\sum\limits_{i=1}^{m}\mathbb{I}(y_i\neq y^*_i)
  • 精度 Acc=1mi=1mI(yi=yi)Acc=\frac{1}{m}\sum\limits_{i=1}^{m}\mathbb{I}(y_i=y^*_i)
  • 混淆矩陣(confusin matrix)
預測結果 (positive) 預測結果(negetive)
真實值(positive) TP FN
真實值(negetive) FP TN

準確率P=TPTP+FPP=\frac{TP}{TP+FP} 召回率R=TPTP+FNR=\frac{TP}{TP+FN} 在不同的場景我們需要選擇準確率或者召回率,如在對樣本的精度有較高要求的時候應該選擇準確率,而在某些特定對樣本的準確性(寧可錯殺一千也不放過一個)有較高要求的時候應該選擇召回率; F1F_1-Score:是統計學中用來衡量二分類模型精確度的一種指標。它同時兼顧了分類模型的準確率和召回率,可以看做是準確率和召回率的一種加權平均1F1=1P+1R\frac{1}{F_1}=\frac{1}{P}+\frac{1}{R} 在此基礎上可以對其加一個影響因子β\beta Fβ=(1+β2)PR(β2P)+RF_\beta=\frac{(1+{\beta} ^2)*P*R}{(\beta ^2 *P)+R}β>1\beta>1時召回率有更大影響,當β<1\beta<1時準確率有更大影響

  • AUC (Area Under ROC Curve) 在這裡插入圖片描述

機器學習常用方法

在這裡插入圖片描述