題:
為什麼準確性不是評估分類模型的最佳方法?
Tim
2017-11-09 13:32:57 UTC
view on stackexchange narkive permalink

這是一個一般性問題,在這裡多次被間接問到,但缺少一個權威性的答案。對此有詳細的答案以供參考是很好的。

準確度(正確分類在所有分類中的比例)是非常簡單且非常“直觀”的度量,但對於不平衡數據來說可能是較差的度量。為什麼我們的直覺會誤導我們,並且此措施還有其他問題?

九 答案:
Stephan Kolassa
2017-11-09 14:28:51 UTC
view on stackexchange narkive permalink

Most其他答案集中在不平衡類的示例上。是的,這很重要。但是,我認為即使對於平衡的類,準確性也是有問題的。

弗蘭克·哈雷爾(Frank Harrell)在他的博客上寫過:分類與預測由分類準確性和其他不連續的不正確準確性評分規則導致的損壞 >。

從本質上講,他的論據是,當您為新樣本的每個類別輸出概率時,練習的統計組成部分結束。通過選擇閾值進行分類,將這些預測概率 $(\ hat {p},1- \ hat {p})$ span>映射為0-1分類1比0的新觀察值不再是統計的一部分。它是 decision 組件的一部分。在這裡,您需要模型的概率輸出-還需要考慮以下因素:

  • 決定將新觀測值視為1類vs.0類有什麼後果?然後,我是否將便宜的營銷郵件發送給所有人?還是我會採用具有巨大副作用的浸潤性癌症治療?
  • 將“ true” 0視為1,反之亦然的後果是什麼?我會打勾一位顧客嗎?讓某人接受不必要的治療?
  • 我的“班級”真的是離散的嗎?還是實際上存在一個連續體(例如血壓),而臨床閾值實際上只是認知捷徑?如果是這樣,我現在要對類別進行“分類”的程度有多遠?
  • 或者只有低但為正的概率成為1類實際上意味著“獲取更多數據”,“進行另一項測試”嗎?

根據您決定的後果,您將使用其他閾值來做出決定。如果採取的是侵入性手術,則與推薦兩種阿司匹林相比,將患者分類為患有某種疾病的可能性要高得多。或者,您可能甚至會有 3 個不同的決定,儘管只有兩個類(患病或健康):“回家,別擔心”與“進行另一項測試”因為我們擁有的尚無定論”與“立即操作”。

評估預測概率的正確方法 $(\ hat {p},1- \ hat {p})$ span>是 not 將它們與閾值進行比較,根據閾值將它們映射到 $(0,1)$ span>,然後評估轉換後的 $(0,1)$ span>分類。相反,應該使用適當的。這些是將預測概率和相應觀察到的結果映射到損失值的損失函數,這些損失在期望中通過真實概率 $(p,1-p)$ span>最小化。想法是,我們將對多個(最佳:許多)觀察到的結果進行評估的評分規則的平均值以及相應的預測班級成員資格概率作為對評分規則期望的估計。

請注意,此處的“正確”具有精確定義的含義-有不正確的評分規則以及正確的評分規則,最後是嚴格正確的評分規則評分規則本身就是預測密度和結果的損失函數。 正確的評分規則是在預測密度為真實密度的情況下,期望值最小的評分規則。 嚴格正確的評分規則是僅在預測密度為真實密度的情況下將 期望值最小化的評分規則。

弗蘭克·哈雷爾(Frank Harrell)指出,準確性是不正確的評分規則。 (更準確地說,精度甚至根本不是評分規則:請參見我的答案 在二進制分類設置中準確性是否是不正確的評分規則?)可以看到,例如,如果我們根本沒有任何預測變量,而只是翻轉了概率為 $(0.6,0.4)$ span>的不公平硬幣。如果我們將所有分類都歸為第一類,並且完全忽略任何結果可能屬於第二類的40%概率,則準確性將達到最高。 (這裡我們看到,即使對於平衡的類,準確性也是有問題的。)正確的將首選 $(0.6,0.4 )$ span>預測到期望的 $(1,0)$ span>之一。特別是,準確性在閾值中是不連續的:將閾值移動一點點可能會使一個(或多個)預測改變類別,並使整個準確性降低離散量。這沒有什麼意義。

更多信息可以在上面鏈接的Frank的兩個博客文章以及 Frank Harrell的回歸建模策略的第10章中找到。

(這是我的較早答案的無恥地抄寫。)


編輯。 我對示例的答案,當使用準確性作為結果度量會導致錯誤的結論時給出了一個有希望的示例,其中最大程度的準確性可能導致錯誤的決策

同意(+1),但並非所有算法都返回概率,即使它們返回概率也不總是經過很好的校準,因此在許多情況下,您不會查看概率輸出。
據我了解,@Tim Frank的觀點(他在我們的網站和其他地方的許多答案中都進行了討論)是,如果分類算法不返回概率,那麼它就是垃圾,不應該使用。老實說,大多數常用算法的確會返回概率。
我想說的是一種算法,它會根據過去的觀察結果,僅輸出分類,而不會考慮上述要點(例如,錯誤決策的成本)會使統計和決策方面變得模糊。這就像有人向您推荐一種特定類型的汽車,而無需先問您是要運送一支小型棒球隊,一堆建築材料還是只運輸您自己。所以我也要說這樣的算法將是垃圾。
我本來打算寫一個答案,但後來沒有必要。太棒了我與我的學生討論這是統計建模和決策之間的“關注點分離”。這種概念在工程文化中根深蒂固。
如作者在問題的“第一部分”中指出的那樣,如果作者還可以在數據集不平衡的情況下對響應進行定位,那將更有幫助。
概率建模或多或少地不受不平衡數據“問題”的影響。
@MatthewDrury那是為什麼?在假設情況下,當95%的訓練數據是A類,而只有5%的數據是B類,因此始終輸出A的愚蠢分類器將具有令人印象深刻的0.95準確度,一個總是預測P(A)= 0.95的愚蠢概率預測變量也將具有很好的準確性得分。有什麼大不同?
@chainD:我的觀點是,即使在平衡數據集的情況下,準確性也存在問題。
@StephanKolassa也許有必要在您的答案中強調一點,即與大多數其他答案(著重於不平衡數據集)相比,您的答案準確地討論了“不同”問題。而且,如果這兩個問題之間有聯繫(如Matthew上文所述),那麼絕對值得討論。
@amoeba:假設您的罕見班級是患有某種疾病的人(這種病比5%少得多)。天真的分類者說,每個人都健康,討論結束。天真的概率預測因子說每個人患這種疾病的機會很小。由於它是一個“天真”的預測指標,因此仍然是人口普遍性的指標,但它仍將指出一個事實,即更多的測試或更複雜的模型可能會有用。
@amoeba:好點。我編輯了。
如果您開發了一個神經網絡或類似網絡並使用精度來確定一個突變是好是壞,則趨向於收斂到常數0或常數1(給您0.6或.4精度),並且如果您使用誤差函數,趨於收斂到常數0.5。在這些情況下,即使您沒有極度不平衡的情況,最大化靈敏度和特異性可能是一個更好的選擇。
@StephanKolassa感謝您在帖子中添加澄清說明。一個關於您對變形蟲的評論的回應的快速問題(@amoeba希望您不要介意):我想知道為什麼“每個人都有很小的機會患上這種疾病”這樣的結果可能“指向更多的測試或更複雜的模型”,但像“每個人都健康”這樣的預測不是“指向”任何東西?這聽起來像是分析師的呼籲,如果預測是“每個人都健康”,那麼誰應該對運行其他測試同樣感興趣(如果不是更多的話)?為什麼是“討論結束”?
@chainD:如果您的分類器(請記住,它是“準確性最高”的分類器)說“此樣本中的每個人都是健康的”,那麼哪個醫生或分析家會相信這個故事還有更多呢?我同意,這最終是呼籲分析師做出的,但是“每個人都健康”對分析師的幫助遠不如引起人們關注殘留不確定性(例如95%/ 5%預測)的幫助。
“如果您的分類器(請記住,這是最準確的分類器)說“該樣本中的每個人都是健康的”,那麼,什麼醫生或分析家會相信這個故事還有更多呢?”每個醫生或分析家都值得他們付出一分錢嗎?:)但是,當然,我同意您的其他觀點,即在這種情況下,通常使用兩個指標中的哪一個更有用。
也許應該對那些適當的評分規則說一句話,以便更明確地表明,如果您想將預測概率與具有這種損失函數的實際概率進行比較,則實際上需要這些真實概率。您通常不會擁有它們,因為只有真正的離散類用於記錄,而沒有關於它們屬於那些真正類的概率的信息。
@DavidErnst:不,計分規則不使用真實概率,它們使用*可觀察的結果*,我將添加“可觀察的”以使其更加清楚。依賴於不可觀察變量的損失函數不是很有用。想法是,我們將對多個(最佳:很多)觀察到的結果以及相應的預測班級成員資格所評估的評分規則的平均值作為對評分規則預期的估計。
@StephanKolassa的答案和評論都很棒。有人評論暗示,根據您所隸屬的文化,如何看待它會有所不同。事實並非如此;只是有些領域不願去理解文學而另一些領域則不願意。例如,天氣預報至少從1951年開始就處於最前沿,並使用適當的評分規則來評估預報員的準確性。
-1
用準確性分數作為檢驗統計數據是一個壞主意。參見[本文](https://arxiv.org/abs/1608.08873)受@FrankHarrell的響應啟發。
好答案。我確實同意決策和建模是不同的問題。但是,有時您不能將它們乾淨地分開。例如,要做出的決定可能會強加不同的邊界線,因為靠近它們的建模很重要,而遠離它們的建模則少得多。
-1
現在,該描述比以前容易理解,因為它很容易理解為評分規則,將估計概率$(\ hat {p},1- \ hat {p})$與參考量$(p,1-p)$進行比較,還有概率。現在,它表示將估計的概率與真實的類進行比較。
我想了解一下(嚴格)適當的評分規則的重要性。並指出該答案中隱含的那些“測試用例比例”(準確性,敏感性,特異性等)的不良行為,但恕我直言,應予以明確說明。Accuracy&Co.採用離散值,而正確的評分規則(例如Brier評分=用於分類的MSE)是連續函數:假定給定模型發生了少許變化。Accuracy&Co.將保持不變,除非該變化足夠大以使類邊界移至一個(或多個)測試用例的另一側。...
……然後突然,整個額外的錯誤分類被計算在內。相反,嚴格正確的評分規則將立即對模型中的微小變化做出反應。特別地,用於模型超參數的優化策略通常會假設只有適當或嚴格適當的評分規則才具有目標功能的行為(但仍然會使用不正確的評分規則來使用)。另外,根據我的經驗,例如與這些基於比例的“硬”指標相比,Brier分數的差異要小得多。(對於...,沒有理論上的保證。
...較低的方差:如果[且僅當]該模型恰好只輸出0%或100%的預測類成員時,方差和比例一樣差)
@StephanKolassa 您的答案中提到的前兩個要點屬於風險量化而不是建模的範圍。例如,可以添加一個可靠性函數來捕獲前兩個要點,但這些不能提高模型性能。取而代之的是,我將更多地討論大多數度量如何無法正確捕獲Ensemble模型的性能。
@amoeba,指出的一點是,“大多數常用算法確實會返回概率”確實不是真的。大多數機器學習都是從“分類問題”開始的,自然不會產生概率:例如SVM,樹和隨機森林。[然後,您隨後發表了多篇有關如何從隨機森林中創建概率的論文]
說計分規則只能由生成預測概率的模型使用是正確的嗎?例如,我看不到如何對SVM或隨機森林使用評分規則。
@SiXUlm:是的,是正確的。[有一些可產生預測密度的隨機森林實現](https://stats.stackexchange.com/q/358948/1352),並且此修改在概念上實際上非常簡單。SVM沒有通用的變體可以做到這一點,這是SVM的最大弱點之一。(您也許可以通過每次引導並安裝新的SVM來執行某些操作。)
感謝@StephanKolassa:的參考,這很有趣。對於SVM,我發現了所謂的Platt縮放https://en.wikipedia.org/wiki/Platt_scaling。
計分規則是否可以考慮假陰性和假陽性的成本,例如FP的成本是FN的X倍?
@SiXUlm:我會認為[您的問題]是[類別錯誤](https://stats.stackexchange.com/a/368979/1352)。計分規則評估*預測密度*。FP / FN /等評估[*決定*](https://stats.stackexchange.com/a/312124/1352)。(這是一種非常特殊的決策,可以引導。)決策應考慮預測性分佈(可以通過評分規則進行評估),還要考慮後續不同決策的成本。而且,使用通用指標來評估這兩個指標根本沒有意義。
@StephanKolassa:令人信服,感謝您指出。我花了一些時間研究您在相關帖子中的答案,我發現它們非常有幫助。我認為將準確性(無論是否有其他假設)稱為評分規則是不合適的,因為這種準確性是決策的結果,但預測密度(通過評分規則)不應涉及任何決策。這是對的嗎?
@SiXUlm:是的,完全正確。[我可能已經在這裡寫過這些內容](https://stats.stackexchange.com/a/359936/1352)。
@StephanKolassa:是的,我確實閱讀了它們,並嘗試根據您所寫的內容寫出自己的理解,但是可能我想不通。感謝您確認。
DaL
2017-11-09 13:45:52 UTC
view on stackexchange narkive permalink

使用準確性時,我們將誤報和誤報的費用均等。當該數據集不平衡時-假設它在一類中有99%的實例,而另一類中只有1%的實例-有降低成本的好方法。預測每個實例都屬於多數類,準確度達到99%並儘早回家。

當我們分配給每個錯誤的實際成本不相等時,問題就開始了。如果我們處理的是罕見但致命的疾病,則無法診斷出患病者的疾病的成本要比讓健康人接受更多檢查的成本高得多。

通常,沒有一般的最佳措施。最佳方法來自您的需求。從某種意義上說,這不是機器學習問題,而是業務問題。通常,兩個人會使用相同的數據集,但由於目標不同而會選擇不同的指標。

精度是一個很好的指標。實際上,大多數指標都很出色,我喜歡評估許多指標。但是,有時您需要在使用模型A或模型B之間做出選擇。在那裡,您應該使用最適合您需求的單個指標。

要獲得額外的功勞,請在分析前選擇此指標,這樣您在做決定時就不會分心。

很好的答案-我提出了一些修改,只是為了使機器學習的初學者(針對這個問題的初學者)更清楚地指出這一點。
我不同意這不是機器學習問題。但是解決該問題將涉及對元問題進行機器學習,並使機器除了基本分類信息之外還必須能夠訪問某種數據。
我不認為它僅是數據的函數,因為不同的目標可能適用於不同的成本/模型/性能/指標。我同意,總的來說,成本問題可以用數學的方式解決。但是,諸如治療患者的費用之類的問題依賴於完全不同的信息。元數據所需的此信息通常不適合機器學習方法,因此大部分時間都使用不同的方法來處理。
所謂“誤診患有疾病的人”,您的意思是“誤診某人*誰患有*這種疾病(因為沒有患病)”,對嗎?因為該短語可以用任何一種方式解釋。
你是對的坦納。我更改了測試以使其更加清晰。
可以針對患病率(*先驗*類成員概率)調整準確性-不管手頭的數據是平衡還是不平衡,以及不平衡的數據是否反映給定用例/場景的患病率。正如不應在測試用例的“原始”數量上計算預測值一樣,除非*不同類的頻率正確地反映了手頭應用程序的類普遍性。
您能否解釋一下有關調整的更多信息?
很好的答案,但是為什麼不將精度和召回率作為不平衡情況下的有用指標呢?
我同意它們是有用的。請注意,權衡取捨非常容易(例如,通過置信度閾值),因此您確實可以將它們一起使用或組合使用(例如,Jaccard。f分數)。
mroman
2017-11-09 18:55:07 UTC
view on stackexchange narkive permalink

準確性問題

標準準確性定義為正確分類與完成分類的數量之比。

\開始{align *} 精度:= \ frac {\ text {正確的分類}} {\ text {分類數}} \ end {align *} span>

因此,這是所有課程的總體衡量標準,我們很快就會看到,告訴一個 甲骨文除了實際有用的測試。 oracle是返回隨機猜測的分類函數 對於每個樣品。同樣,我們希望能夠對分類函數的分類性能進行評分。如果我們每個班級有相同數量的樣本,但是如果我們準確性可以是一個有用的度量 樣本集不平衡的準確性根本沒有用。更重要的是,測試可以具有很高的準確性 但實際上要比精度較低的測試更差。

如果我們有一個樣本分佈,使得 $ 90 \%$ span>樣本屬於類 $ \ mathcal {A } $ span>, $ 5 \%$ span>屬於 $ \ mathcal {B} $ span>和另一個 $ 5 \%$ span>屬於 $ \ mathcal {C} $ span>,則以下分類函數將具有準確性的 $ 0.9 $ span>:

\開始{align *} classify(sample):= \ begin {cases} \ mathcal {A} & \ text {if} \ top \\ \ end {cases} \ end {align *} span>

但是,很明顯,因為我們知道 $ classify $ span>的工作原理,它無法告訴類 分開。同樣,我們可以構造一個分類函數

\開始{align *} classify(sample):= \ text {guess} \ begin {cases} \ mathcal {A} & \ text {with p} = 0.96 \\ \ mathcal {B} & \ text {with p} = 0.02 \\ \ mathcal {C} & \ text {with p} = 0.02 \\ \ end {cases} \ end {align *} span>

其準確度為 $ 0.96 \ cdot 0.9 + 0.02 \ cdot 0.05 \ cdot 2 = 0.866 $ span>,並且不會總是預測 $ \ mathcal {A} $ span>,但鑑於我們知道 $ classify $ span>的工作原理,很明顯它不能區分課程。 在這種情況下,準確性僅告訴我們分類函數在猜測方面有多好。這意味著 除了有用的測試之外,準確性不是告訴Oracle的好方法。

每班的準確性

我們僅通過提供分類函數就可以分別計算每個類別的準確性 來自同一個類別的樣本,並記住併計算正確分類和錯誤分類的數量 然後分類計算 $ accuracy:= \ text {正確} /(\ text {正確} + \ text {不正確})$ span>。我們重複一遍 每堂課如果我們具有可以準確識別類別的分類功能 $ \ mathcal {A} $ span>,但將輸出其他類的隨機猜測,然後得出的準確度為 $ 1.00 $ span> $ \ mathcal {A} $ span>,其他類的精度為 $ 0.33 $ span>。這已經為我們提供了一種更好的方法 判斷我們分類功能的表現。一個總是猜測同一個類會產生的神諭 該類別的每個類別的準確性為 $ 1.00 $ span>,而其他類別的準確性為 $ 0.00 $ span>。如果我們的測試有用 每個類的所有精度應為 $ >0.5 $ span>。否則,我們的測試並不比偶然更好。但是,準確性 每個類別均不考慮誤報。即使我們的分類函數具有 $ 100 \%$ span>的準確性 對於類 $ \ mathcal {A} $ span>,對於 $ \ mathcal {A} $ span>也會出現誤報>(例如 $ \ mathcal {B} $ span>錯誤地 分類為 $ \ mathcal {A} $ span>)。

敏感性和特異性

在醫學測試中,靈敏度定義為正確識別出患有疾病的人群之間的比例 以及實際患有這種疾病的人數。特異性定義為正確的人與人之間的比例 確定為健康的人和實際健康的人的數量。實際擁有的人數 該疾病是真實陽性測試結果的數量加上虛假陰性測試結果的數量。的 實際健康的人的數量是真實陰性測試結果的數量加上錯誤陽性的數量 試驗結果。

二進制分類

在二進制分類問題中,有兩個類 $ \ mathcal {P} $ span>和 $ \ mathcal {N} $ span>。 $ T_ {n} $ span>是指數字 正確識別出屬於 $ n $ span>和 $ F_ {n} $ span>類別的樣本樣品數 被錯誤地標識為屬於類 $ n $ span>的對象。在這種情況下,敏感性和特異性是 定義如下:

\開始{align *} 靈敏度:= \ frac {T _ {\ mathcal {P}}} {T _ {\ mathcal {P}} + F _ {\ mathcal {N}}} \\ 特異性:= \ frac {T _ {\ mathcal {N}}} {T _ {\ mathcal {N}} + F _ {\ mathcal {P}}} \ end {align *} span>

$ T _ {\ mathcal {P}} $ span>是真正的肯定 $ F _ {\ mathcal {N}} $ span>是誤報, $ T _ {\ mathcal {N}} $ span> 是真實的否定詞,而 $ F _ {\ mathcal {P}} $ span>是錯誤的肯定詞。但是,用術語思考 陰性和陽性都適合進行醫學檢查,但是為了獲得更好的直覺,我們不應該 從否定和肯定的角度思考,但在通用類 $ \ alpha $ span>和 $ \ beta $ span>中進行思考。那我們可以說 正確識別為屬於 $ \ alpha $ span>的樣本數量為 $ T _ {\ alpha} $ span>和樣品量 實際屬於 $ \ alpha $ span>的是 $ T _ {\ alpha} + F _ {\ beta} $ span> 。正確識別為不合格的樣品數量 屬於 $ \ alpha $ span>的是 $ T _ {\ beta} $ span>和實際上不屬於的樣本量到 $ \ alpha $ span>是 $ T _ {\ beta} + F _ {\ alpha} $ span>。這為我們提供了 $ \ alpha $ span>的敏感性和特異性,但我們也可以應用 與 $ \ beta $ span>類相同。正確識別為屬於 $ \ beta $ span>的樣本數量為 $ T _ {\ beta} $ span>和實際屬於 $ \ beta $ span>的樣本量為 $ T _ {\ beta} + F _ {\ alpha} $ span>。大量的 正確標識為不屬於 $ \ beta $ span>的樣本為 $ T _ {\ alpha} $ span>及其數量實際樣本數 不屬於 $ \ beta $ span>的是 $ T _ {\ alpha} + F _ {\ beta} $ span>。因此,我們得到了每個類別的敏感性和特異性:

\開始{align *} 敏感性_ {\ alpha}:= \ frac {T _ {\ alpha}} {T _ {\ alpha} + F _ {\ beta}} \\ 特異性_ {\ alpha}:= \ frac {T _ {\ beta}} {T _ {\ beta} + F _ {\ alpha}} \\ 敏感性_ {\ beta}:= \ frac {T _ {\ beta}} {T _ {\ beta} + F _ {\ alpha}} \\ 特異性_ {\ beta}:= \ frac {T _ {\ alpha}} {T _ {\ alpha} + F _ {\ beta}} \\ \ end {align *} span>

但是,我們發現 $靈敏度_ {\ alpha} =特異性_ {\ beta} $ span>和 $ specificity _ {\ alpha } =靈敏度_ {\ beta} $ span>。這意味著,如果我們只有兩個類別,則不需要每個類別的敏感性和特異性。

N-Ary分類

如果我們只有兩個類別,則每個類別的靈敏度和特異性都沒有用,但是我們可以將其擴展為 多個類別。敏感性和特異性定義為:

\開始{align *} \ text {靈敏度}:= \ frac {\ text {true肯定}} {\ text {true肯定} + \ text {false否定}} \\ \ text {specificity}:= \ frac {\ text {true negatives}} {\ text {true negatives} + \ text {false-positives}} \\ \ end {align *} span>

真正的肯定是 $ T_ {n} $ span>,錯誤的肯定是 $ \ sum_ {i} (F_ {n,i})$ span>和 誤報只是 $ \ sum_ {i}(F_ {i,n})$ span>。尋找真正的負面因素要困難得多,但是我們可以這樣說 如果我們正確地將某物歸類為與 $ n $ span>不同的類,則它算作真正的否定。 這意味著我們至少有 $ \ sum_ {i}(T_ {i})-T(n)$ span>真陰性。但是,這並非全部都是負面的。 與 $ n $ span>不同的類的所有錯誤分類也都是負數,因為它們正確 未被識別為屬於 $ n $ span>。 $ \ sum_ {i}(\ sum_ {k}(F_ {i,k}))$ span>代表所有錯誤的分類。 從中我們必須減去輸入類為 $ n $ span>的情況,這意味著我們必須減去 $的假陰性n $ span>,它是 $ \ sum_ {i}(F_ {n,i})$ span>,但我們還必須減去 $ n $ span>因為 它們是假陽性而不是假陰性,因此我們還必須減去 $ \ sum_ {i}(F_ {i,n})$ span>最終得出 $ \ sum_ {i}(T_ {i})-T(n)+ \ sum_ {i}(\ sum_ {k}(F_ {n,i}))-\ sum_ {i}(F_ {n,i})-\ sum_ {i}(F_ {i,n})$ span>。作為總結,我們有:

\開始{align *} \ text {真實肯定}:= T_ {n} \\ \ text {真否定}:= \ sum_ {i}(T_ {i})-T(n)+ \ sum_ {i}(\ sum_ {k}(F_ {n,i}))-\ sum_ {i }(F_ {n,i})-\ sum_ {i}(F_ {i,n})\\ \ text {假陽性}:= \ sum_ {i}(F_ {i,n})\\ \ text {假否定}:= \ sum_ {i}(F_ {n,i}) \ end {align *} span>

\開始{align *} 靈敏度(n):= \ frac {T_ {n}} {T_ {n} + \ sum_ {i}(F_ {n,i})} \\ 特異性(n):= \ frac {\ sum_ {i}(T_ {i})-T_ {n} + \ sum_ {i}(\ sum_ {k}(F_ {i,k}))-\ sum_ { i}(F_ {n,i})-\ sum_ {i}(F_ {i,n})} {\ sum_ {i}(T_ {i})-T_ {n} + \ sum_ {i}(\ sum_ {k}(F_ {i,k}))-\ sum_ {i}(F_ {n,i})} \ end {align *} span>

介紹自信

我們定義了一個 $ confidence ^ {\ top} $ span>,它用來衡量我們的自信程度 我們的分類功能的答复實際上是正確的。 $ T_ {n} + \ sum_ {i}(F_ {i,n})$ span>都是案例 其中分類函數用 $ n $ span>答复,但只有其中的 $ T_ {n} $ span>是正確的。因此,我們定義了

\開始{align *} 置信度^ {\ top}(n):= \ frac {T_ {n}} {T_ {n} + \ sum_ {i}(F_ {i,n})} \ end {align *} span>

但是我們還能定義一個 $ confidence ^ {\ bot} $ span>來衡量如果我們的 分類函數使用不同於 $ n $ span>的類來響應,它實際上不是 $ n $ span>嗎?

好吧,我們得到 $ \ sum_ {i}(\ sum_ {k}(F_ {i,k}))-\ sum_ {i}(F_ {i,n })+ \ sum_ {i}(T_ {i})-T_ {n} $ span>除 $ \ sum_ {i}(F_ {n ,i})$ span>。因此,我們定義了

\開始{align *} 置信度^ {\ bot}(n)= \ frac {\ sum_ {i}(\ sum_ {k}(F_ {i,k}))-\ sum_ {i}(F_ {i,n})+ \ sum_ {i}(T_ {i})-T_ {n}-\ sum_ {i}(F_ {n,i})} {\ sum_ {i}(\ sum_ {k}(F_ {i,k}))) -\ sum_ {i}(F_ {i,n})+ \ sum_ {i}(T_ {i})-T_ {n}} \ end {align *} span>

您能否提供使用混淆矩陣計算平均準確度的任何示例。
您可以在此處找到帶有示例的更詳細的描述:https://mroman.ch/guides/sensspec.html
再次通讀它,confidence_false的定義中有錯誤。我很驚訝沒有人發現這一點。我會在接下來的幾天內解決此問題。
Mayou36
2017-11-09 23:34:46 UTC
view on stackexchange narkive permalink

數據集中的不平衡類

簡而言之:想像一下,數據集中有一個類別(例如蘋果)的99%和另一個類別的1%(例如香蕉)。我的超級duper算法對該數據集的準確性達到了驚人的99%,請檢查一下:

返回“是蘋果”

他將在99%的時間內正確,因此獲得了99%的準確性。我可以賣給我我的算法嗎?

解決方案:不要使用絕對度量(準確性),而是使用相對於每個類的度量(那裡有很多東西,例如ROC AUC)

不,AUC也不適用於不平衡的數據集。
您能詳細說明一下@SiXUlm,嗎?
AUC是ROC曲線下的面積。ROC曲線是TPR與FPR的關係圖。現在,在貝葉斯環境中,不平衡是先驗概率的奇數:$ P(D)/ P(D ^ C)$。TPR可以看作$ P(T \ vert D)$,FPR可以看作$ P(F \ vert D ^ C)$。先驗概率與可能性無關。
可以在以下位置找到更清晰的插圖:https://www.quora.com/Why-is-AUC-Area-under-ROC-insensitive-to-class-distribution-changes。看看馬雲的答案。
我仍然不明白你的意思。這不是我(包括Quora)在解決方案中所說的並完全支持我的回答嗎? 關鍵是先驗不應該影響衡量網絡性能的指標。 _is_適當的選擇完全取決於您的問題,例如最好是針對每個可能的削減進行優化。因此,請讓我知道:a)由於先驗不變,但對性能敏感,因此_why_不合適嗎?b)您認為還合適什麼或需要哪些特徵?
嗯,對此感到抱歉,我認為您是正確的。實際上,我犯了一個邏輯錯誤,並且誤解了對演奏不敏感的效果。
我明白了,沒問題!謝謝提問
AUC實際上適合於不平衡的數據集,實際上,它是更好的指標之一。在極端情況下;與精確召回曲線相比,它對正分數中的誤報相對不敏感,但是說它不適用於類別失衡是不正確的。
Benoit Sanchez
2017-11-09 23:40:39 UTC
view on stackexchange narkive permalink

DaL的答案就是這樣。我將通過一個有關出售雞蛋的非常簡單的示例來說明這一點。

您擁有一個雞蛋店,您售出的每個雞蛋都會產生$ 2 $美元的淨收入。每個進入商店的顧客都可以買雞蛋,也可以不買雞蛋就離開。對於某些客戶,您可以決定打折,您只會獲得$ 1 $的收入,但客戶總是會購買。

您插入一個網絡攝像頭,該攝像頭使用諸如“嗅雞蛋”,“拿著一本煎蛋食譜”之類的功能來分析客戶行為,並將其分類為“想以$ 2 $美元購買”(正) “他只想以$ 1 $的價格購買”(負數),然後他就離開了。

如果您的分類器沒有記錯,那麼您將獲得可以預期的最大收益。如果不完美,則:

  • 對於每一個誤報,您都會損失$ 1 $美元,因為客戶離職並且您沒有嘗試進行成功的折扣
  • 對於每個假陰性,您都會損失$ 1 $美元,因為您會進行無用的折扣

然後,分類器的準確度就是您離最大收益的距離。這是完美的措施。

但是現在如果折扣是$ a $美元。費用是:

  • 誤報:$ a $
  • 假陰性:$ 2-a $

然後,您需要使用這些數字加權的精度,以衡量分類器的效率。例如,如果$ a = 0.001 $,則度量完全不同。這種情況可能與數據不平衡有關:很少有客戶願意支付2美元,而大多數客戶願​​意支付0.001美元。您不必擔心會收到很多誤報,也不會再得到一些真實的肯定。您可以據此調整分類器的閾值。

例如,如果分類器要在數據庫中查找相關文檔,則可以將“閱讀無關文檔”所浪費的“時間”與查找相關文檔進行比較。

jeza
2018-09-27 19:27:17 UTC
view on stackexchange narkive permalink

分類準確度是正確預測的數目除以預測的總數。

準確性可能會產生誤導。例如,在存在較大類別不平衡的問題中,模型可以針對所有預測來預測多數類別的值,並獲得較高的分類精度。因此,還需要進一步的性能指標,例如F1得分和Brier得分。

vonjd
2020-04-28 15:06:42 UTC
view on stackexchange narkive permalink

關於此事,我寫了整篇博客文章:
https://blog.ephorie.de/zeror-the-simplest-possible-classifier-or-why-high-accuracy-可能會誤導人

ZeroR,可能是最簡單的分類器,只是將多數類作為預測。使用高度不平衡的數據,您將獲得非常高的準確性,但是如果您的少數派是您感興趣的班級,那麼這將完全沒有用。請在帖子中找到詳細信息和示例。

最重要的是:在處理不平衡數據時,您可以構建過於簡單的分類器,這些分類器具有很高的準確性,卻沒有任何實用價值...

首先,請展開此內容,然後給出僅鏈接的答案。其次,我不同意您的結論,在許多情況下,數據是不平衡的,可能具有很多實用價值,例如如本主題所述:https://stats.stackexchange.com/questions/283170/when-is-unbalanced-data-really-a-problem-in-machine-learning
-1
@Tim:添加了更多詳細信息和帖子的要旨,希望對您有所幫助...謝謝!
@Tim: ...哦,感謝您提供的另一個問題的鏈接,非常有趣!
謝謝,現在更清楚了。
brethvoice
2020-03-28 23:36:30 UTC
view on stackexchange narkive permalink

閱讀完以上所有答案後,這裡介紹了一種常識。最優性是一個靈活的術語,總是需要加以限定。換句話說,說模型或算法是“最優的”是沒有意義的,尤其是在科學意義上。

每當有人說他們正在科學地優化某些東西時,我建議您問一個問題:“您在什麼意義上定義最優性?”這是因為在科學中,除非可以測量,否則無法優化(最大化,最小化等)。

作為示例,OP提出以下要求:

為什麼準確性不是評估分類模型的最佳方法?

以上問題中的“最佳”一詞中有一個關於優化的嵌入式參考。 “最好”在科學上是沒有意義的,因為“善”是無法科學衡量的。

科學上對這個問題的正確回答是,OP需要定義“好”的含義。在現實世界中(在學術練習和Kaggle競賽之外),在使用機器向他人(或代替他人)提出建議或做出決策時,總要考慮成本/收益結構。

對於分類任務,該信息可以嵌入到成本/收益矩陣中,並具有與混淆矩陣相對應的條目。最後,由於成本/收益信息是正在考慮使用機械幫助進行決策的人員的功能,因此它會隨情況而變化,因此,永遠不會有固定的最優度量來衡量即使在一個問題中,它始終可以工作,更不用說涉及分類的所有問題(即“模型”)了。

任何優化分類的方法只要忽略成本,後果自負。如所示,即使ROC AUC也不能保持成本不變。

完全公開:上面鏈接的圖像是我的碩士論文。我對此有一些既得利益...因此,我在透露我的成本/收益結構,以試圖說服您進行檢查!
我最喜歡的一位統計學家(Youden)的名言之一:“實際上,決定這兩種診斷錯誤的權重不是統計問題。”https://acsjournals.onlinelibrary.wiley.com/doi/abs/10.1002/1097-0142%281950%293%3A1%3C32%3A%3AAID-CNCR2820030106%3E3.0.CO%3B2-3的首頁
作為對上面的評論的補充,如果所有正統統計都歸結為“拒絕原假設”或“未能拒絕原假設”的診斷測試(二進制分類),那麼我很樂意得到來自在現實世界中使用這種測試的人做出的決定會影響他人的生活,財富和/或神聖的榮譽。
James
2017-11-09 17:05:46 UTC
view on stackexchange narkive permalink

您可以將準確性視為分類的$ R ^ 2 $:這是最初吸引人的度量標準,可以用來與模型進行比較,但在詳細檢查中卻不夠。

在兩種情況下,過度擬合都是一個主要問題。就像$ R ^ 2 $較高的情況可能意味著您是在對噪聲而不是信號進行建模一樣,高精度可能是一個危險信號,表明您的模型過於嚴格地應用於測試數據集並且沒有通用適用性。當分類類別高度不平衡時,這尤其成問題。最準確的模型可能是瑣碎的模型,該模型將所有數據歸為一個類別(準確度等於最常見類別的比例),但是如果您需要對具有不同真實分佈類別的數據集進行分類,則此準確度會下降很多

正如其他人所指出的那樣,準確性的另一個問題是對失敗代價的內在漠視-即假設所有錯誤分類都是相等的。實際上,它們並非如此,獲得錯誤分類的成本在很大程度上取決於主題,因此您可能更願意將特定類型的錯誤最小化,而不是使準確性最大化。
哼。(1)我假設可以理解評估準確性或任何其他“樣本外”度量標準,因此我並沒有真正看到準確性如何帶來更多“特定的過擬合問題”。(2)如果您將針對A種群訓練的模型應用於*不同* B種群,那麼您正在將蘋果與桔子進行比較,而我再次沒有真正看到這是*準確性方面的特定問題*。
(1)然而,準確性仍然是一個問題,問題在於將準確性用作黃金標準。(2)建立分類器的目的是在橘子上使用它,而不僅僅是蘋果。它應該足夠籠統地捕獲數據中的基本信號(以至於它們存在),而不是成為訓練數據的詭計。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...