一、實現流程 1、問題建模解決一個機器學習問題從建模開始,首先前期調研資料,將問題抽象成機器學習可預測問題。再這個過程中要明確業務指標和模型預測目標,根據目標選擇適當得評估指標。然后從原始數據中選取相關子樣本集用于訓練和測試。 2、特征工程完成第一步之后,就需要對選取得樣本集進行特征抽取,即特征工程。特征工程是一項很重要又很困難得工作,尤其是在推薦系統等領域。不僅需要對算法模型得深入了解,還需要我們又很扎實得專業領域知識。成功得機器學習應用一定是特征工程做的好的,當然特征提取也有很多可以通用的技巧。 3、模型選擇我們做特征是為了將特征輸入給模型,讓模型從中學習出普遍規律。但是模型很多,不同的模型使用天差地別,當我們有一份高質量的數據后,還需要選擇一個適合的模型,可以充分的學習到數據中規律,同時還需要在性能和部署方面考慮其實用性。 4、模型融合如上所言,不同的模型會有很大差別,可以從數據中學到的規律也會不同,所以我們經常會使用多種模型來進行學習,然后將不同模型融合,充分利用各模型特點。多種模型可以使用同一份特征,也可以根據需求做多份特征。 ![]() 二、問題建模2.1 評估指標評估指標用于反映模型效果。在預測問題中,要評估模型效果,就需要將模型預測結果f(X)和真是結果Y進行比較,評估指標定義為f(X)和Y函數: score=metric(f(X),Y) 模型的好壞是相對的,使用不同的評估標準往往會導致不同結論,所以在選擇評估標準是要結合業務需求。 評估指標根據任務類型可分類為:分類指標、回歸指標、聚類指標和排序指標。 2.1.1 分類指標1. 精確率和召回率精確率和召回率多用于二分類模型,可結合混淆矩陣來看。 表2-1 混淆矩陣
TP(真正,Ture Tositive):真實結果為正,預測結果也為真; FP(假正,False Tosotive):真實結果為負,預測結果為正; FN(假負,False Negative):真實結果為正,預測結果為負; TN(真負,Ture Negative):真實結果為負,預測結果也為負。 樣本總數=TP+FP+FN+TN 精確率(P)=TP/(TP+FP) 召回率(R)=TP/(TP+FN) 準確率(accuracy)=(TP+TN)/(TP+FP+FN+TN) 錯誤率(error rate)=(FN+FP)/(TP+FP+FN+TN) 注:準確率和精確率常混淆,精確率是一個二分類模型指標,準確率可以應用于多分類。 理想情況下,我們希望精確率和召回率兩者都越高越好,但一般情況下,精確率越高召回率越低,精確率越低召回率越高。因此需要結合使用場景判斷哪個指標更為重要。 我們以召回率R為橫軸,精確率P為豎軸畫出P-R曲線: ![]() 圖2-1 P-R曲線 據圖可看到,P-R曲線越靠近右上角性能越好,曲線下的面積叫AP分數(平均準確率分數),但這個值計算不方便,所以設計了綜合考慮精確率和召回率的指標。 F1值就是這樣一個指標,F1是精確率和召回率的調和平均值: 2/F1=1/P+1/R F值可泛化為對精確率和召回率賦不同權重調和: 2. ROC和AUC接收者操作特征(Receiver Operating Characteristic,ROC),縱坐標是真正率,橫坐標是假正率, 真正率(TPR)=TP/(TP+FN) 假正率(FPR)=FP/(FP+TN) ![]() 圖2-2 ROC曲線 ROC與P-R曲線很相似,ROC曲線越靠近左上角性能越好,左上角坐標(0,1),TPR=1,FPR=0,根據公式可知,FN=0,FP=0,模型對所有樣本分類正確。繪制ROC曲線,首先對所有樣本按預測概率排序,以每條樣本的預測概率為閾值,計算對應的FPR、TPR,然后連線。數據量小時,曲線不平滑,數據量大時,曲線會趨于平滑。 AUC(Area Under Roc Curve)ROC曲線下面積,取值越大說明模型越可能將正樣本排在負樣本前面。AUC特性:AUC等于隨機挑選一個正樣本和一個負樣本時,分類器正樣本排前面的概率;AUC和Wilcoxon Test of Ranks等價;AUC還和基尼系數有聯系,Gini+1=2*AUC。 2.1.2 回歸指標 1. 平均絕對誤差也叫L1范數, ![]() N為樣本數,yi為第i條真實值,pi為第i條預測值。 加權平均絕對誤差:是基于MAE得變種指標 ![]() wi是第i條樣本得權重。 2.平均絕對百分誤差 3. 均方根誤差均方根對數誤差: 2.1.3 排序指標 1. 平均準確率正均值 2. NDCG 2.2 樣本選擇從全量數據集種選擇相關性高的數據作為模型訓練測試樣本集,最理想的樣本是用最少量的訓練集S,而模型效果不會變差,滿足P(Algo s)=P(Algo T),P為模型評估函數,Algo是模型。 樣本選擇的意義:
2.2.1 去噪數據中噪聲是一個不可避免的問題,噪聲的存在會降低數據質量,導致模型訓練效果不佳。但是在訓練集中加入適量噪聲能使模型更加健壯。 |
|
來自: 昵稱68307919 > 《待分類》