[toc] 面試
準確率: 指分類正確的樣本佔總樣本個數的比例算法
Accuracy = \frac{n_{correct}}{n_{total}}
準確度的問題: 當不一樣類別的樣本比例很是不均衡時,佔比大的類別每每成爲影響準確率的最主要因素。 例如:當負樣本佔99%,分類器把全部樣本都預測爲負樣本也能夠得到99%的準確率。函數
精確度: 分類正確的正樣本個數佔分類器斷定爲正樣本的樣本個數的比例。 召回率: 分類正確的正樣本個數佔真正的正樣本個數的比例。性能
在排序問題中,一般沒有一個肯定的閥值把獲得的結果直接斷定爲正樣本或負樣本,而是採用TopN返回結果的Precision值和Recall值來衡量排序模型的性能,即認爲模型返回的Top N的結果就是模型斷定的正樣本,而後計算前N個位置上的準確率Precision@N和前N個位置上的召回率Recall@N。學習
Precision值和Recall值是既矛盾又統一的兩個指標,爲了提升Precision值,分類器須要儘可能在「更有把握」時才把樣本預測爲正樣本,但此時每每會由於過於保守而漏掉不少「沒有把握」的正樣本,致使Recall值下降。
爲了綜合評價一個排序模型的好壞,不只要看precision和recall,並且最好繪製模型P-R(precision-recall)曲線。測試
由圖可見,當召回率接近於0時,模型A的精確率爲0.9,模型B的精確率是1,這說明模型B得分前幾位的樣本所有是真正的正樣本,而模型A即便得分最高的幾個樣本也存在預測錯誤的狀況。而且,隨着召回率的增長,精確率總體呈降低趨勢。可是,當召回率爲1時,模型A的精確率反而超過了模型B。這充分說明,只用某個點對應的精確率和召回率是不能全面地衡量模型的性能,只有經過P-R曲線的總體表現,纔可以對模型進行更爲全面的評估。優化
F1 scorespa
F1 = \frac{2 \times precision \times recall} {precision + recall}
RMSE的計算公式:code
RMSE = \sqrt{ {\frac {{\sum_{i=1}^n} {(y_i - \overline{y}_{i} )}^2} {n}}}
$y_i$是第i個樣本點的真實值,$\overline{y}_{i}$ 是第i個樣本預測值, n是樣本點個數。視頻
RMSE可以很好地反映迴歸模型預測值與真實值的偏離程度。
比RMSE的魯棒性更好的指標,平均絕對百分比偏差(Mean Absolute Percent Error, MAPE),定義以下:
物理含義:相比RMSE,MAPE至關於把每一個點的偏差進行了歸一化,下降了個別離羣點帶來的絕對偏差的影響。
ROC曲線是Receiver Operating Characteristic Curve的簡稱,中文名爲「受試者工做特徵曲線」。ROC曲線源於軍事領域,然後在醫學領域應用甚廣,「受試者工做特徵曲線」這一名稱也正是來自於醫學領域。
ROC曲線的橫座標爲假陽性率(False Positive Rate,FPR);縱座標爲真陽性率(True Positive Rate,TPR) 。FPR和TPR的計算方法分別爲:
上式中,P是真實的正樣本的數量,N是真實的負樣本的數量,TP是P個正樣本中被分類器預測爲正樣本的個數,FP是N個負樣本中被分類器預測爲正樣本的個數。
下面例子有助於學習: 只看定義確實有點繞,爲了更直觀地說明這個問題,咱們舉一個醫院診斷病人的例子。假設有10位疑似癌症患者,其中有3位很不幸確實患了癌症(P=3),另外7位不是癌症患者(N=7)。醫院對這10位疑似患者作了診斷,診斷出3位癌症患者,其中有2位確實是真正的患者(TP=2)。那麼真陽性率TPR=TP/P=2/3。對於7位非癌症患者來講,有一位很不幸被誤診爲癌症患者(FP=1),那麼假陽性率FPR=FP/N=1/7。對於「該醫院」這個分類器來講,這組分類結果就對應ROC曲線上的一個點(1/7,2/3)。
**ROC曲線是經過不選移動分類器的<u>截斷點</u>來生成曲線上的一組關鍵點。
截斷點:區分正負預測結果的閾值。
經過動態地調整截斷點,從最高的得分開始(其實是從正無窮開始,對應着ROC曲線的零點),逐漸調整到最低得分,每個截斷點都會對應一個FPR和TPR,在ROC圖上繪製出每一個截斷點對應的位置,再鏈接全部點就獲得最終的ROC曲線。
其實,還有一種更直觀地繪製ROC曲線的方法。首先,根據樣本標籤統計出正負樣本的數量,假設正樣本數量爲P,負樣本數量爲N;接下來,把橫軸的刻度間隔設置爲1/N,縱軸的刻度間隔設置爲1/P;再根據模型輸出的預測機率對樣本進行排序(從高到低);依次遍歷樣本,同時從零點開始繪製ROC曲線,每遇到一個正樣本就沿縱軸方向繪製一個刻度間隔的曲線,每遇到一個負樣本就沿橫軸方向繪製一個刻度間隔的曲線,直到遍歷完全部樣本,曲線最終停在(1,1)這個點,整個ROC曲線繪製完成。
AUC,就是ROC曲線下的面積。可以量化地反映基於ROC曲線衡量出的模型性能。AUC越大,說明分類器越可能把真正的正樣本排在前面,分類性能越好。
計算AUC值只須要沿着ROC橫軸作積分就能夠了。
相比P-R曲線,ROC曲線有一個特色,當正負樣本的分佈發生變化時,ROC曲線的形狀可以基本保持不變,而P-R曲線的形狀通常會發生較劇烈的變化。(從二者曲線的定義、物理含義就能很好地理解)
能夠看出,P-R曲線發生了明顯的變化,而ROC曲線形狀基本不變。這個特色讓ROC曲線可以儘可能下降不一樣測試集帶來的干擾,更加客觀地衡量模型自己的性能。這有什麼實際意義呢?在不少實際問題中,正負樣本數量每每很不均衡。好比,計算廣告領域常常涉及轉化率模型,正樣本的數量每每是負樣本數量的1/1000甚至1/10000。若選擇不一樣的測試集,P-R曲線的變化就會很是大,而ROC曲線則可以更加穩定地反映模型自己的好壞。因此,ROC曲線的適用場景更多,被普遍用於排序、推薦、廣告等領域。但須要注意的是,選擇P-R曲線仍是ROC曲線是因實際問題而異的,若是研究者但願更多地看到模型在特定數據集上的表現,P-R曲線則可以更直觀地反映其性能。
對於兩個向量A和B,其他弦類似度定義爲 即兩個向量夾角的餘弦,關注的是向量之間的角度關係,並不關心它們的絕對大小,其取值範圍是[-1,1]。當一對文本類似度的長度差距很大、但內容相近時,若是使用詞頻或詞向量做爲特徵,它們在特徵空間中的的歐氏距離一般很大;而若是使用餘弦類似度的話,它們之間的夾角可能很小,於是類似度高。此外,在文本、圖像、視頻等領域,研究的對象的特徵維度每每很高,餘弦類似度在高維狀況下依然保持「相同時爲1,正交時爲0,相反時爲-1」的性質,而歐氏距離的數值則受維度的影響,範圍不固定,而且含義也比較模糊。
在一些場景,例如Word2Vec中,其向量的模長是通過歸一化的,此時歐氏距離與餘弦距離有着單調的關係,即
結論: 整體來講,歐氏距離體現數值上的絕對差別,而餘弦距離體現方向上的相對差別。例如,統計兩部劇的用戶觀看行爲,用戶A的觀看向量爲(0,1),用戶B爲(1,0);此時兩者的餘弦距離很大,而歐氏距離很小;咱們分析兩個用戶對於不一樣視頻的偏好,更關注相對差別,顯然應當使用餘弦距離。而當咱們分析用戶活躍度,以登錄次數(單位:次)和平均觀看時長(單位:分鐘)做爲特徵時,餘弦距離會認爲(1,10)、(10,100)兩個用戶距離很近:但顯然這兩個用戶活躍度是有着極大差別的,此時咱們更關注數值絕對差別,應當使用歐氏距離。 特定的度量方法適用於什麼樣的問題,須要在學習和研究中多總結和思考,這樣不只僅對面試有幫助,在遇到新的問題時也能夠活學活用。
距離定義:在一個集合中,若是每一對元素都可惟一肯定一個實數,使得三條距離公理(正定性,對稱性,三角不等式)成立,則該實數可稱爲這對元素之間的距離。
進行A/B測試的主要手段是進行用戶分桶,即將用戶分紅實驗組和對照組,對實驗組的用戶施以新模型,對對照組的用戶施以舊模型。在分桶的過程當中,要注意樣本的獨立性和採樣方式的無偏性,確保同一個用戶每次只能分到同一個桶中,在分桶過程當中所選取的user_id須要是一個隨機數,這樣才能保證桶中的樣本是無偏的。
1. Holdout檢驗 Holdout 檢驗是最簡單也是最直接的驗證方法,它將原始的樣本集合隨機劃分紅訓練集和驗證集兩部分。比方說,對於一個點擊率預測模型,咱們把樣本按照70%~30%的比例分紅兩部分,70%的樣本用於模型訓練;30%的樣本用於模型驗證,包括繪製ROC曲線、計算精確率和召回率等指標來評估模型性能。
Holdout 檢驗的缺點很明顯,即在驗證集上計算出來的最後評估指標與原始分組有很大關係。爲了消除隨機性,研究者們引入了「交叉檢驗」的思想。
2. 交叉檢驗 k-fold交叉驗證:首先將所有樣本劃分紅k個大小相等的樣本子集;依次遍歷這k個子集,每次把當前子集做爲驗證集,其他全部子集做爲訓練集,進行模型的訓練和評估;最後把k次評估指標的平均值做爲最終的評估指標。在實際實驗中,k常常取10。
留一驗證:每次留下1個樣本做爲驗證集,其他全部樣本做爲測試集。樣本總58數爲n,依次對n個樣本進行遍歷,進行n次驗證,再將評估指標求平均值獲得最終的評估指標。在樣本總數較多的狀況下,留一驗證法的時間開銷極大。事實上,留一驗證是留p驗證的特例。留p驗證是每次留下p個樣本做爲驗證集,而從n個元素中選擇p個元素有C%種可能,所以它的時間開銷更是遠遠高於留一驗證,故而不多在實際工程中被應用。
自助法:自助法是基於自助採樣法的檢驗方法。對於總數爲n的樣本集合,進行n次有放回的隨機抽樣,獲得大小爲n的訓練集。n次採樣過程當中,有的樣本會被重複採樣,有的樣本沒有被抽出過,將這些沒有被抽出的樣本做爲驗證集,進行模型驗證,這就是自助法的驗證過程。
過擬合:在訓練集上表現很好,在測試集和新數據上表現不好。 欠擬合:訓練和測試都表現很差。
下降過擬合的方法:
下降欠擬合風險的方法: