分類器的相關概念

昨天,@人民網 發了一條八卦微博,盤點“雨神”(@蕭敬騰)是如何煉成的。微博稱,網友統計發現,在@蕭敬騰 近年12次主要行程中,有10次他的“現身”讓當地下起了雨,下雨的概率爲83.3%。


圖1

這裏,網友相當於是做了一個人工數據挖掘,用術語表示,就是構造瞭如下一個分類器:

IF 蕭敬騰有活動THEN當地下雨 ELSE 當地不下雨 END

該分類器預測老蕭舉辦個唱或發售新專輯的城市會下雨的概率爲83.3%。

藉助老蕭的神威,我們來總結下分類器的相關概念。
分類器是數據挖掘中對樣本進行分類的方法的統稱,包含決策樹、邏輯迴歸、樸素貝葉斯、神經網絡等算法。分類器的構造和實施大體會經過以下幾個步驟:
  • 選定樣本(包含正樣本和負樣本),將所有樣本分成訓練樣本和測試樣本兩部分。
  • 在訓練樣本上執行分類器算法,生成分類模型。
  • 在測試樣本上執行分類模型,生成預測結果。
  • 根據預測結果,計算必要的評估指標,評估分類模型的性能。
以上的描述中已經提到了分類器所涉及的一些概念:訓練樣本、測試樣本、正樣本、負樣本。此外,還有未涉及到的概念,如樣本的特徵變量和類標識變量,以及常見的評估工具、指標,包括混淆矩陣、準確率、覆蓋率、命中率、ROC、AUC、Lift、Gain、K-S等。本文介紹評估指標中的準確率、覆蓋率和命中率。

本文不涉及樣本訓練的過程,假定分類器已經存在,並且有下面的數據集作爲測試樣本:

圖2

該測試樣本集的前12條記錄,就是雨神所到之處的降雨記錄;後15條記錄是隨機選取的同一時期相關城市在老蕭沒有活動情況下的降雨記錄。“蕭敬騰是否有活動”是特徵變量,1表示有活動,0表示無;“當地是否下雨”是類標識變量,1表示下雨,0表示無雨。由於我們的研究目標傾向於預測下雨的可能性,因此我們選定“當地是否下雨=1”的樣本爲正樣本(圖2中灰底的記錄);相應的,“當地是否下雨=0”的樣本爲負樣本。當我們考察的類標識變量是個二值變量時,通常我們會把感興趣的那個取值對應的樣本稱作正樣本,而另一個值對應的樣本則稱作負樣本。比如在識別欺詐客戶時,我們感興趣的是這類客戶是否被我們識別出來,這樣我們會把欺詐客戶作爲正樣本看待,而把正常客戶當作負樣本。

現在,我們把網友構造的分類器描述的規範一些:

IF蕭敬騰是否有活動=1THEN 當地是否下雨=1 ELSE 當地是否下雨=0END

這個分類器在圖2樣本上的分類結果是:

圖3

根據分類結果,我們可以計算出該分類器的混淆矩陣:

圖4

所謂混淆矩陣(Confusion Matrix),是一種比較分類器分類結果和類標識變量實際值的矩陣,其中的每一行代表了分類器的分類結果,每一列則表示類標識變量的實際值。爲方便說明,我們把圖4的混淆矩陣擴充一下,計算每一行和每一列的和,見圖5:

圖5

在圖5中,每一行的和爲17、10,分別代表17個正樣本和10個負樣本;每一列的和爲12、15,表示分類器判定出“當地是否下雨=1”的數量爲12,“當地是否下雨=0”的數量爲15。矩陣中包含4個元素,以第一行的兩個元素10和7爲例,它們表示在所有實際“當地是否下雨=1”的17條記錄中,被分類器正確判定爲“當地是否下雨=1”的數量爲10,錯誤判定爲“當地是否下雨=0”的記錄數爲7;也就是針對17條下雨記錄,分類器準確判斷了其中10條,誤判了7條。再來看列元素的含義,第一列的兩個元素10和2表示,在分類器判定出的12條“當地是否下雨=1”的記錄中,10條爲正確判斷,2條爲誤判(實際沒有下雨)。

根據混淆矩陣,我們可以計算一系列指標來評估分類器的性能。
(1)準確率
準確率是針對整個分類結果而言的,計算公式爲:

準確率 = 正確預測的樣本數 / 樣本總數 * 100%

從圖5我們可以算出:準確率 = (10+8) / 27 * 100% = 66.7%

與準確率相對應的是不常用的錯誤率,計算公式爲:
錯誤率 = 錯誤預測的樣本數 / 樣本總數 * 100%
根據圖5計算得:錯誤率 = (2+7) / 27 * 100% = 33.3%

可見,錯誤率 = 1 - 準確率。
分類器的第一目標往往是保證準確率,特別在你需要對識別出來的記錄做一些敏感操作時。

(2)覆蓋率
覆蓋率是分別針對正負樣本而言的,計算公式爲:

正(負)樣本覆蓋率 = 正確預測的正(負)樣本數 / 實際正(負)樣本總數 * 100%

以圖5爲例,我們有:
正樣本覆蓋率 = 10 / 17 * 100% = 58.8%
負樣本覆蓋率 = 8 / 10 * 100% = 80%

在雨神這個case中,正樣本覆蓋率描述了,在17條下雨記錄中,被分類器正確識別出來的比率。在商業實踐中,有時候我們的目標是使分類結果具有較高的正樣本覆蓋率。比如在一次電子郵件營銷中,我們欲針對具有某類特徵的客戶發送營銷郵件,這個時候我們會要求模型儘可能把所有具有該特徵的客戶都識別出來。其副作用是,某些不具有我們所需特徵的用戶,也有較大的可能進入我們的Email發送列表,從而降低結果的準確率。但這影響似乎不大,非目標客戶收到你的郵件他一笑置之便是,而你多發送幾封郵件的邊際成本也很低。

(3)命中率
命中率同樣是針對正負樣本而言的,剛好與針對行操作的覆蓋率相對,命中率是在列上操作。計算公式爲:

正(負)樣本命中率 = 正確預測的正(負)樣本數 / 預測出的正(負)樣本總數 * 100%

在圖5中,
正樣本命中率 = 10 / 12 * 100% = 83.3%
負樣本命中率 = 8 / 15 * 100% = 53.3%

命中率描述了,當你使用該分類器來做預測時,其預測正確的概率。在雨神case中,現在假設你根據蕭敬騰到某個城市活動,來預測當地會下雨,那麼你的預測“命中”的概率將會是83.3%。這樣就是網友所說的“蕭敬騰的現身讓當地下雨的概率爲83.3%”的含義。

分類器評估指標中的ROC、AUC、Lift、Gain和K-S等指標的介紹,已經超出了雨神case所能演示的範圍。雨神也是有其侷限性的,但不管怎樣,求求老蕭來趟杭州吧,都熱了一個月了!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章