1.評價指標的侷限性算法
問題1 準確性的侷限性
準確率是分類問題中最簡單也是最直觀的評價指標,但存在明顯的缺陷。好比,當負樣本佔99%時,分類器把全部樣本都預測爲負樣本也能夠得到99%的準確率。因此,當不一樣類別的樣本比例很是不均衡時,佔比大的類別每每成爲影響準確率的最主要因素。網絡
例子:Hulu的奢侈品廣告主但願把廣告定向投放給奢侈品用戶。Hulu經過第三方的數據管理平臺拿到了一部分奢侈品用戶的數據,並以此爲訓練集和測試集,訓練和測試奢侈品用戶的分類模型,該模型的分類準確率超過了95%,但在實際廣告投放過程當中,該模型仍是把大部分廣告投給了非奢侈品用戶,這多是什麼緣由形成的?
解決方法:可使用平均準確率(每一個類別下的樣本準確率的算術平均)做爲模型評估的指標;也多是其餘問題:過擬合或欠擬合、測試集和訓練集不合理、線下評估和線上測試的樣本分佈存在差別。app
問題2 精確率與召回率的權衡
精確率=分類正確的正樣本個數/分類器斷定爲正樣本的樣本個數 全部推薦了的新聞中該推薦的新聞的比例。 好比,推薦了10篇新聞,其中8篇是應該推薦的機器學習
召回率=分類正確的正樣本個數/真正的正樣本的樣本個數 全部應該推薦的新聞中實際推薦了的新聞的比例。好比應該推薦10篇感興趣的新聞,只推薦了其中的8篇。函數
要平衡精確率和召回率,能夠調節區分正負類別的機率臨界值。 爲提升精確率,能夠提升機率臨界值,使得正類別的判斷更加保守;爲了提升召回率,能夠下降機率臨界值,以增長正類別的數量性能
例子:Hulu提供視頻的模糊搜索功能,搜索排序模型返回的Top5的精確率很是高,但在實際使用過程當中,用戶仍是常常找不到想要的視頻,特別是一些比較冷門的劇集,這多是哪一個環節出了問題呢?分類器須要儘可能在「更有把握」時才把樣本預測爲正樣本,但此時每每會由於過於保守而漏掉不少「沒有把握」的正樣本,致使Recall值下降。
解決方法:用P-R曲線,橫軸是召回率,縱軸是精確率。對於一個排序模型來講,其P-R曲線上的一個點表明着,在某一個閾值下,模型將大於該閾值的結果斷定爲正樣本,小於該閾值的結果斷定爲負樣本學習
建議:作搜索:保證召回的狀況下提高準確率;作疾病監測、反垃圾:保證準確率的條件下,提高召回率測試
問題3 平方根偏差的「意外」
例子:Hulu做爲一家流媒體公司,擁有衆多的美劇資源,預測每部美劇的流量趨勢對於廣告投放、用戶增加都很是重要,咱們但願構建一個迴歸模型來預測某部美劇的流量趨勢,但不管採用哪一種迴歸模型,獲得的RMSE指標都很是高。然而事實是,模型在95%的時間區間內的預測偏差都小於1%,取得了至關不錯的預測結果。那麼,形成RMSE指標居高不下的最可能緣由是什麼?
緣由分析:在實際狀況中,若是存在個別偏離程度很是大的離羣點,即便離羣點數量很是少,也會讓RMSE指標變得不好。回到問題中,模型在95%的時間區間內的預測偏差都小於1%,這說明,在大部分時間區間內,模型的優化
預測效果都是 很是優秀的,然而,RMSE卻一直不好,這極可能是因爲在其餘的5%時間區間存在很是嚴重的離羣點。事實上,在流量預估這個問題中,噪聲點確實是很容易產生的,好比流量特別小的美劇、剛上映的美劇或者spa
剛獲獎的美劇,甚至一些相關社交媒體突發事件帶來的流量,都看會形成離羣點。
解決方法:
1)若是咱們認定這些離羣點是「噪聲點」的話,就須要在數據預處理的階段把這些噪聲點過濾掉;
2)若是不讓我這些離羣點是「噪聲點」,就須要進一步提升模型的預測能力,將離羣點產生的機制建模進去;
3)找一個更合適的指標來評估該模型。關於評估指標,實際上是存在比RMSE的魯棒性更好的指標,好比平均絕對百分偏差MAPE(mean absolute percent error),相比於RMSE,MAPE至關於把每一個點的偏差進行了歸一化,下降了
個別離羣點帶來的絕對偏差的影響。
2.ROC曲線
問題1:什麼是ROC曲線?
ROC曲線是Receiver operating characteristic curve的簡稱,中文名爲「受試者工做特徵曲線」。ROC曲線源於軍事領域,橫座標爲假陽性率(False positive rate,FPR),縱座標爲真陽性率(True positive rate,TPR).
假陽性率 FPR = FP/N ---N個負樣本中被判斷爲正樣本的個數佔真實的負樣本的個數
真陽性率 TPR = TP/P ---P個正樣本中被預測爲正樣本的個數佔真實的正樣本的個數
問題2:如何繪製ROC曲線?
ROC曲線是經過不斷移動分類器的「截斷點」來生成曲線上的一組關鍵點的,「截斷點」指的就是區分正負預測結果的閾值。
經過動態地調整截斷點,從最高的得分開始,逐漸調整到最低得分,每個截斷點都會對應一個FPR和TPR,在ROC圖上繪製出每一個截斷點對應的位置,再鏈接全部點就獲得最終的ROC曲線。
問題3:如何計算AUC?
AUC指的是ROC曲線下的面積大小,該值可以量化地反映基於ROC曲線衡量出的模型性能。因爲ROC曲線通常都處於y=x這條直線的上方(若是不是的話,只要把模型預測的機率反轉成1-p就能夠獲得一個更好的分類器),因此AUC的取值通常在0.5-1之間。AUC越大,說明分類器越可能把真正的正樣本排在前面,分類性能越好。
問題4:ROC曲線相比P-R曲線有什麼特色?
當正負樣本的分佈發生變化時,ROC曲線的形狀可以基本保持不變,而P-R曲線的形狀通常會發生較劇烈的變化。ROC可以儘可能下降不一樣測試集帶來的干擾,更加客觀的衡量模型自己的性能。若是研究者但願更多地看到模型在特定數據集上的表現,P-R曲線可以更直觀地反映其性能。
3.餘弦距離的應用
問題1:結合你的學習和研究經歷,探討爲何在一些場景中要使用餘弦類似度而不是歐氏距離?
餘弦類似度在高維狀況下依然保持「相同時爲1,正交時爲0,相反時爲-1」的性質,而歐式距離的數值則受維度影響,而且含義也比較模糊。
整體來講,歐氏距離體現數值上的絕對差別,而餘弦距離體現方向上的相對差別。
例子:統計兩部劇的用戶觀看行爲,用戶A的觀看向量爲(0,1),用戶B爲(1,0);此時二者的餘弦距離很大,而歐氏距離很小;咱們分析兩個用戶對不一樣視頻的偏好,更關注相對差別,顯然應當使用餘弦距離;而咱們分析用戶活躍度,以登陸次數和平均觀看時長做爲特徵時,餘弦距離會認爲(1,10)和(10,100)兩個用戶距離很近;但顯然這兩個用戶活躍度是有着極大差別的,此時咱們更關注數值絕對偏差,應當使用歐式距離。
問題2:餘弦距離是不是一個嚴格定義的距離?
距離需知足三條性質:正定性、對稱性、三角不等式;
餘弦距離知足正定性和對稱性,可是不知足三角不等式,所以它不是嚴格意義上的距離。
正定性證實dist(A,B)>0;
對稱性證實dist(A,B)=dist(B,A)
三角不等式證實dist(A,C)+dist(C,B) >= dist(A,B)
例子:在經過影視語料庫訓練出的詞向量中,comedy和funny,funny和happy的餘弦距離都很近,小於0.3,然而comedy和happy的餘弦距離卻高達0.7.這一現象明顯不符合距離的定義。
在機器學習領域中,KL距離也叫相對熵,經常使用於計算兩個分佈之間的差別,但不知足對稱性和三角不等式。
4.A/B測試的陷阱
問題1:在對模型進行充分的離線評估以後,爲何還要進行在線A/B測試?
緣由:(1)離線評估沒法徹底消除模型過擬合的影響;
(2)離線評估沒法徹底還原線上的工程環境;
(3)線上系統的某些商業指標在離線評估中沒法計算。
問題2:如何進行線上A/B測試?
進行用戶分桶,即將用戶分紅實驗組和對照組,對實驗組的用戶施以新模型,對對照組的用戶施以舊模型,在分桶的過程當中,要注意樣本的獨立性和採樣方式的無偏性,確保同一個用戶每次只能分到同一個桶中,在分桶過程當中所選取的user_id須要是一個隨機數,這樣才能保證桶中的樣本是無偏的。
問題3:如何劃分實驗組和對照組?
例子:H公司的算法工程師們最近針對系統中的「美國用戶」研發了一套全新的視頻推薦模型A,而目前正在使用的針對全體用戶的推薦模型是B。在正式上線以前,工程師們但願經過A/B測試來驗證新推薦模型效果。
正確的作法是將全部美國用戶根據user_id個位數劃分爲試驗組合對照組,分別施以模型A和B,才能驗證模型A的效果。
5.模型評估的方法
問題1:在模型評估過程當中,有哪些主要的驗證方法,它們的優缺點是什麼?
(1)Holdout檢驗:
直接將原始的樣本集合隨機劃分紅訓練集和驗證集兩部分。比方說,對於一個點擊量預測模型,咱們把樣本按照70%~30%的比例分紅兩部分,70%的樣本用於模型訓練;30%的樣本用於模型驗證,包括繪製ROC曲線、計算精確率和召回率等指標來評估模型性能;
缺點:在驗證集上計算出來的最後評估指標與原始分組有很大的關係
(2)交叉驗證
K-fold交叉驗證:首先將所有樣本劃分紅k個大小相等的樣本子集;一次遍歷這k個子集,每次把當前子集做爲驗證集,其他全部子集做爲訓練集,進行模型的訓練和評估;最後把k次評估指標的平均值做爲最終的評估指標。在實驗中,k常常取10.
留一驗證:每次留下一個樣本做爲驗證集,其他全部樣本做爲測試集。在樣本總數較多的狀況下,留一驗證的時間開銷極大.
留p驗證:每次留下p個樣本做爲驗證集,而從n個元素中選擇p個元素有Cnp種可能,所以它的時間開銷更是遠遠高於留一驗證。
(3)自助法
基於自助採樣法的校驗方法。對於總數爲n的樣本集合,進行n次有放回的隨機抽樣,獲得大小爲n的訓練集。n次抽樣過程當中,有的樣本會被重複採樣,有的樣本沒有被抽出過,將這些沒有被抽出的樣本做爲驗證集,進行規模驗證。
問題2:在自助法的採樣過程當中,對n個樣本進行n次自助抽樣,當n趨於無窮大時,最終有多少數據從未被選擇過?
一個樣本在一次抽樣過程當中未被抽中的機率爲(1-1/n),n次抽樣均未被抽中的機率爲(1-1/n)n,當n趨於無窮大時,機率爲1/e,所以當樣本數很大時,大約有36.8%的樣本從未被選擇過,可做爲驗證集。
6.超參數調優?
問題1:超參數有哪些調優方法?
(1)網格搜索
經過查找搜索範圍內的全部的點來肯定最優值。若是採用較大的搜索範圍以及較小的步長,網絡搜索有很大機率找到全局最優值。然而,這種搜索方案十分消耗計算資源和時間,特別是須要調優的超參數比較多的時候,所以,在實際應用中,網格搜索法通常會使用較廣的搜索範圍和步長,來尋找全局最優值可能的位置;而後會逐漸縮小搜索範圍和步長,來尋找更精確的最優值。這種方案能夠下降所需的時間和計算量,但因爲目標函數通常是非凸的,因此極可能會錯過全局最優值。
(2)隨機搜索
理論依據是若是樣本集足夠大,那麼經過隨機採樣也能大機率地找到全局最優值,或其近似值。隨機搜索通常會比網格搜索要快一些,可是和網格搜索的快速版同樣,它的結果也是無法保證的。
(3)貝葉斯優化算法
網格搜索和隨機搜索在測試一個新點時,會忽略前一個點的信息;而貝葉斯優化算法則充分利用了以前的信息。貝葉斯優化算法經過對目標函數形狀進行學習,找到使目標函數向全局最優值提高的函數。具體來講,它學習目標函數形狀的方法是,首先根據先驗分佈,假設一個蒐集函數;而後,每一次使用新的採樣點來測試目標函數時,利用一個這個信息來更新目標函數的先驗分佈;最後,算法測試由後驗分佈給出的全局最值最可能出現的位置的點。
對於貝葉斯優化算法,須要注意的是,一旦找到了一個局部最優值,它會在該區域不斷採樣,因此很容易陷入局部最優值。爲了彌補這個缺陷,貝葉斯優化算法會在搜索和利用之間找到一個平衡點,「搜索」就是在還未取樣的區域獲取採樣點;而「利用」則是根據後驗分佈在最可能出現全局最值的區域進行採樣。
7.過擬合與欠擬合
問題1:在模型評估過程當中,過擬合和欠擬合具體是指什麼現象?
過擬合是指模型對於訓練數據擬合呈過當的狀況,反映到評估指標上,就是模型在訓練集上的表現很好,但在測試集和新數據上的表現較差;
欠擬合指的是模型在訓練和預測時表現到很差的狀況。
問題2:可否說出幾種下降過擬合和欠擬合風險的方法?
下降「過擬合」的方法:
(1)得到更多的訓練數據
(2)下降模型複雜度
(3)正則化方法
(4)集成學習方法
下降「欠擬合」風險的方法:
(1)添加新特徵
(2)增長模型複雜度
(3)減少正則化係數