1. 程式人生 > >《美團機器學習實踐》第1章 問題建模

《美團機器學習實踐》第1章 問題建模

1.1 評估指標
評估指標用於反映模型效果。在預測問題中,要評估模型的效果,就需要將模型的預測結果f(X)f(X)和真實標註YY進行比較,評估指標定義為f(X)f(X)YY的函式。

通常,線下使用的是機器學習評估指標,而線上使用的是業務指標(比如,線上支付的風控模型,線下使用的是風險交易筆數的準召率,而線上使用的業務指標卻是資損率,這就會導致線上、線下的不一致)。所以,在模型訓練的階段,要設法找到與線上業務指標相一致的線下指標,“一致”的意思是指標的變化趨勢一樣。

評估指標根據任務型別的不同,可以分為分類指標、迴歸指標、聚類指標和排序指標等。

1.1.1 分類指標
1)精確率和召回率
精確率和召回率用於二分類問題,結合混淆矩陣
在這裡插入圖片描述


精確率和召回率的定義為
在這裡插入圖片描述
精確率和召回率是此消彼長的(事實上,並不是嚴格的“此消彼長”。閾值越小,召回率越高,但是精確率卻未必越低,但是大多數時候精確率是越低的,因為閾值越小,雖然TP和FP都會變大,但是對FP的影響往往要大於對TP的影響,即FP變大的更多,從而導致精確率下降。),計算精確率和召回率的前提是設定一個閾值,將預測概率大於閾值的樣本歸為正樣本,預測概率小於閾值的樣本歸為負樣本。實際中,精確率和召回率重要性不同,有時候精確率更重要,比如風控模型(誤殺太多會帶來糟糕的使用者體驗),有時候召回率更重要,比如推薦模型。
以召回率RR為橫軸,以精確率PP為縱軸可以畫P-R曲線。P-R曲線越靠近右上角越好。如果預測的結果,正樣本的預測概率均大於負樣本的預測概率,那麼P-R曲線將變成一條折線。
P-R曲線下的面積叫AP分數(Average Precision Score,平均精確率分數)。
在這裡插入圖片描述

AP分數能在一定程度上反映模型的精確率和召回率都高的比例。但計算起來並不方便,為此人們提出了一些其他的綜合考慮精確率和召回率的指標。
F1F_{1}值是常用的指標,其是精確率和召回率的調和平均值
2F1=1P+1R\frac{2}{F_{1}}=\frac{1}{P}+\frac{1}{R}
FF值可以泛化為精確率和召回率不同權重進行加權調和:
Fα=(1+α2)PRα2P+RF_{\alpha}=\frac{(1+\alpha^{2})\cdot P\cdot R}{\alpha^{2}\cdot P + R}
此外,準確率和錯誤率也是常用的評估指標
準確率(accuracy) = TP+TNTP+FP+FN+TN\frac{TP+TN}{TP+FP+FN+TN}
錯誤率(error rate) = FP+FNTP+FP+FN+TN\frac{FP+FN}{TP+FP+FN+TN}
精確率和準確率是有區別的,精確率是一個二分類指標,而準確率能應用於多分類。

2)ROC與AUC
用準確率、召回率對模型的效果進行評價時,需要對預測概率設定一個閾值,這樣就會額外引入一個超引數,並且這個超引數會影響模型的泛化能力。
ROC(Receiver Operating Characteristic)曲線不需要設定這樣的閾值。ROC曲線的縱座標是真正率,而橫座標是假正率。公式是
真正率(TPR) = TPTP+FN\frac{TP}{TP+FN}
假正率(FPR) = FPFP+TN\frac{FP}{FP+TN}
在這裡插入圖片描述
真正率與假正率變化趨勢是一致的。所以FPR-TPR是一條遞增的曲線。ROC曲線的繪製很簡單,只需要按模型的預測概率排序,然後以每一個樣本的預測概率為閾值,計算該閾值下的TPR、FPR,就可以獲得大量離散的點(FPR,TPR),將這些離散的點連起來,就成了一條接近連續的曲線。
ROC越靠近左上角越好,最好的情況就是ROC曲線變成了一條與座標軸重合的折線,什麼時候ROC會是這樣的折線呢?就是當模型對正樣本的預測概率值都大於對負樣本的預測概率值
AUC即ROC曲線下的面積,取值越大說明模型越可能將正樣本排在負樣本之前。統計學意義上,AUC等於隨機挑選一個正樣本和一個負樣本時,分類器將正樣本排前面的概率。當ROC曲線為折線時,AUC取得最大值1,此時模型將全部的正樣本排在了負樣本前面(按預測概率)。
AUC的計算方法有多種,物理意義上,AUC是ROC曲線下的面積,那麼利用微元法,曲線下的面積,就是眾多的小梯形面積之和。
在這裡插入圖片描述
概率意義上,AUC衡量的是排序質量,
在這裡插入圖片描述
這裡排序問題的AUC範圍是(0,1),它對排序敏感,而對具體的預測概率不很敏感(改變預測概率,但不改變排序結果,ROC曲線形狀不會變)

3)對數損失
對數損失,即對數似然損失(Log-likelihood Loss),也就是交叉熵損失(cross-entropy Loss)
log loss = logP(YX)-logP(Y|X)
對於二分類問題,對數損失為
log loss = 1Ni=1N(yilogpi+(1yi)log(1pi))-\frac{1}{N}\sum_{i=1}^{N}{(y_{i}\cdot logp_{i}+(1-y_{i})\cdot log(1-p_{i}))}
其中,pip_{i}為第ii個樣本預測為1的概率。
多分類任務中的對數損失為
log loss = 1Ni=1Nj=1Cyijlogpij-\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{C}{y_{ij}\cdot logp_{ij}}
其中,NN為樣本數,CC為類別數,yijy_{ij}是一個二值指標,yij=1y_{ij}=1表示第ii個樣本的類別為jjpijp_{ij}為第ii個樣本類別jj的概率。yij,j=1,2,3,...,Cy_{ij},j=1,2,3,...,C中只有一個yijy_{ij}取1,其餘全部取0,假設第ii個樣本屬於類別cc,那麼yic=1y_{ic}=1,預測概率picp_{ic}越接近1越好(loss越小)。
log loss衡量的是預測概率分佈與真實概率分佈的差異性,取值越小越好。與AUC不同,log loss對預測概率敏感。

1.1.2 迴歸指標
1)平均絕對誤差
平均絕對誤差(Mean Absolute Error, MAE),也叫L1範數損失
在這裡插入圖片描述
2)平均絕對百分誤差(MAPE)
在這裡插入圖片描述
如果MAPE=10,這表明預測平均偏離真實值10%。MAPE是一個無量綱的量,所以在特定場景下不同問題具有一定可比性。
3)均方根誤差
在這裡插入圖片描述
RMSE對離群點敏感,健壯性不如MAE。模型使用RMSE作為損失函式是對資料分佈的平均值進行擬合。

1.1.3 排序指標
1)平均準確率均值(Mean Average Precision,MAP)
(沒看懂)

2)NDCG
先引入一個概念,相關等級。如在網頁搜尋場景中,輸入一個詞,搜尋引擎會返回若干網頁,每一個返回的網頁和搜尋關鍵詞的相關性是不一樣的,可以用一些數值來表示相關性大小,2表示非常相關,1表示相關,0表示無關,-1表示垃圾檔案。
用rel來表示相關等級,我們可以計算前pp個位置累計得到的收益(可以理解為對返回的前pp個網頁好壞的衡量結果)為
CGp=i=1preliCG_{p}=\sum_{i=1}^{p}{rel_{i}}
DCG (Discounted Cumulative Gain)
在CG中的計算沒有考慮到位置資訊,比如檢索到了三個文件相關度一次為(3,-1,1)和(-1,1,3),顯然前面的排序好一點,但是兩個排名的CG值是相同的,所以要在CG運算中中加入位置資訊的計算。假設每個位置按照從小到大排序,它們的價值依次遞減,如假設第ii個位置的價值為1log2(i+1)\frac{1}{log_{2}(i+1)},那麼DCG的公式即為
DCGp=i=1prelilog2(i+1)DCG_{p} = \sum_{i=1}^{p}{\frac{rel_{i}}{log_{2}(i+1)}}
另一種比較常用的,用來增加相關度影響比重的DCG計算方式是:
DCGp=i=1p2reli1log2(i+1)DCG_{p} = \sum_{i=1}^{p}{\frac{2^{rel_{i}}-1}{log_{2}(i+1)}}
IDCG是理想狀態下的DCG,即DCG取得最大值的情況。公式為:
IDCGp=i=1REL2reli1log2(i+1)IDCG_{p} = \sum_{i=1}^{|REL|}{\frac{2^{rel_{i}}-1}{log_{2}(i+1)}}
其中|REL|表示文件按照相關性從大到小的順序排序,取前p個文件組成的集合。
NDCG (Normalize DCG)
由於每個查詢語句所能檢索到的結果文件集合長度不一,p值的不同會對DCG的計算有較大的影響。所以不能對不同查詢語句的DCG進行求平均,需要進行歸一化處理。NDCG就是用IDCG進行歸一化處理,表示當前DCG比IDCG還差多大的距離。公式如下:

相關推薦

機器學習實踐1 問題建模

1.1 評估指標 評估指標用於反映模型效果。在預測問題中,要評估模型的效果,就需要將模型的預測結果f(X)f(X)f(X)和真實標註YYY進行比較,評估指標定義為f(X)f(X)f(X)和YYY的函式。 通常,線下使用的是機器學習評估指標,而線上使用的是業務指標

機器學習實踐》—— 讀後總結

第一章 問題建模 第二章 特徵工程 第三章 常用模型 第四章 模型融合 第五章 使用者畫像 第六章 POI實體連結 第七章 評論挖掘 第八章 O2O場景下的查詢理解和使用者引導 第九章 O2O場景下排序的特點 第十章 推薦

機器學習實踐- 決策樹

計算給定資料集的夏農熵from math import log import operator def calcShannonEnt(dataSet): numEntries = len(dat

簡易說人工智慧(三) 細數《機器學習實戰》裡的錯誤 1:開篇詞

美團的作品《美團機器學習實戰》,是工程領域非常好的一本書。也是難得的國內的人工智慧領域比較實用的作品,豆瓣評分大於7.5,這個評分在計算機領域算是不錯的書了。 但是為什麼選材如此好的作品未到8分呢,最近剛開始讀,說說從第一節公式介紹看到的問題。 1、學習人工智慧大家都知道最令人懼

機器學習實戰—5:Logistic迴歸中程式清單5-1中的數學推導

如圖中梯度上升法給出的函式程式碼。 假設函式為: 1、梯度上升演算法(引數極大似然估計值): 通過檢視《統計學習方法》中的模型引數估計,分類結果為類別0和類別1的概率分別為: 則似然函式為: 對數似然函式為: 最大似然估計求使得對數似然函式取最大值時的引數

《深度實踐Spark機器學習 》11 pyspark決策樹模型

由於此書不配程式碼,以下程式碼都是本寶寶在ipynb測試過的,執行環境為hdp2.6.2和Anaconda2。完整ipynb和py程式碼地址:https://gitee.com/iscas/deep_spark_ml/tree/master11.3 資料載入刪除標題sed 1

機器學習實戰支援向量機照葫蘆畫瓢演算法實踐

支援向量機簡要介紹 一些概念: 1.分隔超平面:在二維中直觀來說就是將資料集分隔開來的直線,三維中則是一個平面。觸類旁通。 2.超平面:分類的決策邊界,分佈在超平面一側的所有資料都屬於某個類別,另一側屬於另一個。 3.支援向量:離分隔超平面最近的那些

神經網路與機器學習3版學習筆記-1 Rosenblatt感知器

神經網路與機器學習第3版學習筆記       -初學者的筆記,記錄花時間思考的各種疑惑 第一章 Rosenblatt感知器 1、第32頁 1.1 為什麼如果第n次迭代時的內積存在符號錯誤,第n+1次迭代內積的符號就會正確?     已知 $

機器學習 決策樹學習 筆記加總結

分類問題 子集 觀察 組成 cas 普通 重復 1.0 需要 《機器學習》第三章 決策樹學習 決策樹學習方法搜索一個完整表示的假設空間,從而避免了受限假設空間的不足。決策樹學習的歸納偏置是優越選擇較小的樹。 3.1.簡介 決策樹學習是一種逼近離散值目標函數的方法,在這種方法

機器學習實戰Logistic回歸

表示 article err () tail mat cycle col transpose def gradAscent(dataMatIn, classLabels): dataMatrix = mat(dataMatIn) #co

機器學習實戰7——利用AdaBoost元算法提高分類性能

nes 重要性 function mine spl 技術 可能 copy elar 將不同的分類器組合起來,這種組合結果被稱為集成方法或元算法(meta-algorithm)。 使用集成方法時會有多種形式:(1)可以是不同算法的集成(2)可以是同一種算法在不同設置下的集成

機器學習實戰8預測數值型數據:回歸

矩陣 向量 from his sca ima 用戶 targe 不可 1.簡單的線性回歸 假定輸入數據存放在矩陣X中,而回歸系數存放在向量W中,則對於給定的數據X1,預測結果將會是                  這裏的向量都默認為列向量 現在的問題是手裏有一些x

吳恩達機器學習十三)---支援向量機SVM

一、優化目標 邏輯迴歸中的代價函式:  畫出兩種情況下的函式影象可得: y=1: 我們找一條折線來近似表示這個函式影象 y=0:    我們用這兩條折線來近似表示原來的曲線函式可得新的代價函式(假設-log(h(x))為,-log(1

吳恩達機器學習)---神經網路的反向傳播演算法

一、簡介 我們在執行梯度下降的時候,需要求得J(θ)的導數,反向傳播演算法就是求該導數的方法。正向傳播,是從輸入層從左向右傳播至輸出層;反向傳播就是從輸出層,算出誤差從右向左逐層計算誤差,注意:第一層不計算,因為第一層是輸入層,沒有誤差。 二、如何計算 設為第l層,第j個的誤差。

吳恩達機器學習)---神經網路

神經網路是非線性的分類演算法。模擬人類的神經系統進行計算。 1、原因 當特徵數很大的時候(比如100個),那麼在假設函式的時候要考慮太多項,包含x1x2,x1x3,x2x3等等,不能僅僅單個考慮x1,x2等,這樣一來,在擬合過程中的計算量就會非常大。 2、基本概念 其中,藍色的

吳恩達機器學習)---正則化

在我們擬合的時候,根據我們選擇函式的不同可能會出現欠擬合,擬合程度較好,過擬合。 1.欠擬合和過擬合        欠擬合,上面第一張圖就是欠擬合情況,欠擬合表現為所選的函式沒有很好的擬合所給的資料,從影象上看就是很多資料都不在函式上,偏

吳恩達機器學習)---邏輯迴歸

一、邏輯迴歸 邏輯迴歸通俗的理解就是,對已知類別的資料進行學習之後,對新得到的資料判斷其是屬於哪一類的。 eg:對垃圾郵件和非垃圾郵件進行分類,腫瘤是惡性還是良性等等。 1.為什麼要用邏輯迴歸: 對於腫瘤的例子:  在外面不考慮最右邊的樣本的時候我們擬合的線性迴歸

吳恩達機器學習)--特徵縮放和學習率

一、特徵縮放  ----(1) 對於我們假設的式子(1),可能存在這樣一種情況就是有些資料遠大於另一些資料(eg:x_1>>x_2) 比如房子價格的例子: 房子的面積要遠大於房子的層數和房間數。在這種情況下可以看下圖,所產生的等高線的圈會很窄,在做梯度下降

機器學習筆記 1課:機器學習中的資料

資料在機器學習中起著重要的作用。 在談論資料時,理解和使用正確的術語非常重要。 你如何看待資料?想想電子表格吧,有列、行和單元格。 從統計視角而言,機器學習的任務是在假設函式( f )的上下文中構建資料。這些假設函式由機器學習演算法通過學習建立。給定一些輸入變數( Input ),該函式回答

java程式設計思想學習筆記——1 物件導論

1.1 抽象過程 面向物件思想的實質:程式可以通過新增新型別的物件使自身適用於某個特定問題。 面向物件思想的五個基本特徵: 1)萬物皆物件 2)程式是物件的集合 3)每個物件都有自己的由其他物件所構成的儲存 4)每個物件都有其型別 5)某一特定型別的所有物件都可以接收同樣的訊息 物件具有行為、