為什么即使在班級均衡的情況下,準確度仍然令人困擾

Accuracy is a go-to metric because it’s highly interpretable and low-cost to evaluate. For this reason, accuracy — perhaps the most simple of machine learning metrics — is (rightfully) commonplace. However, it’s also true that many people are too comfortable with accuracy.

準確性是首選指標,因為它具有很高的解釋性和評估成本。 因此,準確性(也許是機器學習指標中最簡單的一種)(理所應當)是司空見慣的。 然而,這也是事實,很多人都舒服的準確性。

Being aware of the limitations of accuracy is essential.

意識到準確性的局限性是至關重要的。

Everyone knows that accuracy is misused on unbalanced datasets: for instance, in a medical condition dataset, where the majority of people do not have condition x (let’s say 95%) and the remainder do have condition x.

每個人都知道在不平衡的數據集上濫用了準確性:例如,在醫療狀況數據集中,大多數人沒有狀況x (比如說95%),而其他人確實有狀況x

Since machine learning models are always looking for the easy way out, and especially if an L2 penalization is used (a proportionately less penalty on lower errors), the model can comfortably get away with 95% accuracy only guessing all inputs do not have condition x.

由于機器學習模型一直在尋找簡單的出路,尤其是如果使用L2懲罰(對較低錯誤的懲罰成比例地減少),則僅猜測所有輸入都沒有條件x即可使模型輕松達到95%的精度。

The reply to this common issue is to use some sort of metric that takes into account the unbalanced classes and somehow compensates lack of quantity with a boost of importance, like an F1 score or balanced accuracy.

解決此常見問題的方法是使用某種度量標準,該度量標準考慮了不平衡的類別,并以某種重要的方式補償了數量不足的情況,例如F1得分或平衡準確性。

Beyond this common critique, however — which doesn’t address other limitations of accuracy — there are some other problems with using accuracy that go beyond just dealing with balanced classes.

但是,除了這種常見的批評之外(沒有解決準確性的其他限制),使用準確性還有其他一些問題,這些問題不僅僅涉及平衡類。

Everyone agrees that training/testing and deployment of a model should be kept separate. More specifically, the former should be statistical, and the latter should be decision-based. However, there is nothing statistical about turning the outputs of machine learning models — which are (almost) always probabilistic — into decisions, and evaluating its statistical goodness based on this converted output.

每個人都同意將模型的培訓/測試和部署分開放置。 更具體地說,前者應該是統計的,而后者應該是基于決策的。 但是,沒有關于將機器學習模型的輸出(幾乎總是概率)轉化為決策,并基于轉換后的輸出評估其統計優勢的統計信息。

Take a look at the outputs for two machine learning models: should they really be getting the same results? Moreover, even if one tries to remedy accuracy with other decision-based metrics like the commonly prescribed specificity/sensitivity or F1 score, the same problem exists.

看一下兩個機器學習模型的輸出:它們是否真的會得到相同的結果? 此外,即使人們試圖用其他基于決策的指標(如通常規定的特異性/敏感性或F1分數)來糾正準確性,也存在相同的問題。

Image for post
Image created by author
圖片由作者創建

Model 2 is far less confident in its results than Model 1 is, but both receive the same accuracy. Accuracy is not a legitimate scoring rule, and hence it is deceiving in an inherently probabilistic environment.

模型2對結果的信心遠不如模型1可靠,但兩者的準確性相同。 準確性不是一個合理的評分規則,因此它在固有的概率環境中具有欺騙性。

While it can be used in the final presenting of a model, it leaves an empty void of information pertaining to the confidence of the model; whether it actually knew the class for most of the training samples or if it was only lucky in crossing on the right side of the 0.5 threshold.

雖然可以在模型的最終展示中使用它,但它留下了與模型的置信度有關的信息的空白; 無論是實際上對大多數訓練樣本都知道這門課,還是只是幸運地越過了0.5個閾值的右側。

This is also problematic. How can a reliable loss function — the guiding light that shows the model what is right and what is wrong — completely tilt its decision 180 degrees if the output probability shifts 0.01%? If a training sample with label ‘1’ received predictions 0.51 and 0.49 from model 1 and model 2, respectively, is it fair that model 2 is penalized at the full possible value? Thresholds, while necessary for decision-making in a physically deterministic world, are too sensitive and hence inappropriate for training and testing.

這也是有問題的。 如果輸出概率偏移0.01%,可靠的損失函數(顯示模型正確與錯誤的指示燈)如何將其決策完全傾斜180度? 如果帶有標簽“ 1”的訓練樣本分別從模型1和模型2接收到預測0.51和0.49,那么將模型2懲罰為最大可能值是否公平? 閾值雖然在物理確定性世界中進行決策是必需的,但過于敏感,因此不適用于培訓和測試。

Speaking of thresholds — consider this. You are creating a machine learning model to decide if a patient should receive a very invasive and painful surgery treatment. Where do you decide the threshold to give the recommendation? Instinctively, most likely not at a default 0.5, but at some higher probability: the patient is subjected to this treatment if, and only if, the model is absolutely sure. On the other hand, if the treatment is something less serious like an aspirin, it is less so.

說到閾值,請考慮一下。 您正在創建一個機器學習模型,以決定患者是否應該接受侵入性和痛苦性極高的手術治療。 您在哪里確定提出建議的門檻? 本能地,最有可能不是默認值0.5,而是更高的概率:當且僅當模型是絕對確定的,患者才接受這種治療。 另一方面,如果像阿斯匹林這樣的不那么嚴重的治療方法,那么情況就不那么嚴重了。

The results of the decision dictate the thresholds for forming it. This idea, hard-coding morality and human feeling into a machine learning model, is difficult to think about. One may be inclined to argue that over time and under the right balanced circumstances, the model will automatically shift its output probability distributions to a 0.5 threshold and manually adding a threshold is tampering with the model’s learning.

決策的結果決定了形成決策的閾值。 將道德和人類感覺硬編碼到機器學習模型中的想法很難考慮。 有人可能會爭辯說,隨著時間的流逝,在正確的平衡情況下,該模型將自動將其輸出概率分布更改為0.5閾值,而手動添加閾值會篡改該模型的學習。

The rebuttal would be to not use decision-based scoring functions in the first place, not hard-coding any number, including a 0.5 threshold, at all. This way, the model learns not to cheat and take the easy way out through artificially constructed continuous-to-discrete conversions but to maximize its probability of correct answers.

反對是首先不使用基于決策的評分功能,根本不硬編碼任何數字,包括0.5閾值。 這樣,該模型將學會通過人工構造的連續到離散轉換而不是欺騙和采取簡單的方法,而是最大程度地提高其正確答案的可能性。

Whenever a threshold is introduced in the naturally probabilistic and fluid nature of machine learning algorithms, it causes more problems than it fixes.

每當在機器學習算法的自然概率和流動性中引入閾值時,它都會引起更多的問題,而不是要解決的問題。

Loss functions that treat probability on the continuous scale it is instead of as discrete buckets are the way to go.

損失函數在連續尺度上處理概率,而不是像離散的桶那樣走。

What are some better, probability-based, and more informative metrics to use for honestly evaluating a model’s performance?

有什么更好的,基于概率的,更多信息的指標可用于誠實地評估模型的性能?

  • Brier score

    刺分數
  • Log score

    日志分數
  • Cross-entropy

    交叉熵

In the end, accuracy is an important and permanent part of the metrics family. But for those who decide to use it: understand that accuracy’s interpretability and simplicity comes at a heavy cost.

最后,準確性是指標系列的重要且永久的組成部分。 但是對于那些決定使用它的人:請理解準確性的可解釋性和簡單性要付出沉重的代價。

翻譯自: https://towardsdatascience.com/why-accuracy-is-troublesome-even-with-balanced-classes-590b405f5a06

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392342.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

filebeat向kafka傳輸數據,無數據現象

通過netstat 能夠看到filebeat確實是有向kafka傳輸數據, filebeat 日志顯示 那就需要修改 /etc/hosts文件 將kafka主機的名字和ip寫入filebeat主機的hosts文件中。 轉載于:https://www.cnblogs.com/liuYGoo/p/11226272.html

如何使用Elasticsearch,Logstash和Kibana實時可視化Python中的日志

by Ritvik KhannaRitvik Khanna著 如何使用Elasticsearch,Logstash和Kibana實時可視化Python中的日志 (How to use Elasticsearch, Logstash and Kibana to visualise logs in Python in realtime) 什么是日志記錄? (What is logging?) Let’s say you…

感想篇:4)越來越精簡的機械設計

本章目的:述說機械設計方向的發展。 kiss原則需要后期追加。 作者在寫電機選用章節時想到了機構的問題,機械發展的前半生對機構來說無疑有會輝煌的成就,各種各樣的機構能取得難以置信的成效,最終甚至可以說上升到了藝術的階段。如…

php api json,PHP API接口必備之輸出json格式數據實例詳解

這篇文章主要給大家介紹了關于PHP API接口必備之輸出json格式數據的相關資料文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。前言我們在日常的開發工作中免不了要寫接口,json格式文本的輸出是制…

leetcode 228. 匯總區間

給定一個無重復元素的有序整數數組 nums 。 返回 恰好覆蓋數組中所有數字 的 最小有序 區間范圍列表。也就是說,nums 的每個元素都恰好被某個區間范圍所覆蓋,并且不存在屬于某個范圍但不屬于 nums 的數字 x 。 列表中的每個區間范圍 [a,b] 應該按如下格…

接受拒絕算法_通過算法拒絕大學學位

接受拒絕算法數據科學 (Data Science) Nina was close to tears when she accused Nick Gibb of ruining her life. Nina is an 18 year old about to leave school and go on to higher education; Gibb is the UK government’s schools minister.妮娜(Nina)指責尼克吉布(Nic…

淺談傳統企業網絡運營那些事兒

網絡的變革、更新推動的速度很快,小到出門購物全方位在原基礎的微信/支付寶等第三方支付等,隨著微信公眾號/微信小程序等"輕"級傳播推廣渠道的發展,以及客觀的傳統企業在互聯網的沖擊下,同樣的價格比服務?比…

2019cvpr cv_如何編寫軟件工程簡歷(CV):權威指南(于2019年更新)

2019cvpr cvby the onset從發病開始 如何編寫軟件工程簡歷(CV):權威指南(于2019年更新) (How to write a Software Engineering resume (CV): the definitive guide (Updated for 2019)) While the debate still continues regarding the long term future of the …

leetcode 1202. 交換字符串中的元素(并查集)

給你一個字符串 s,以及該字符串中的一些「索引對」數組 pairs,其中 pairs[i] [a, b] 表示字符串中的兩個索引(編號從 0 開始)。 你可以 任意多次交換 在 pairs 中任意一對索引處的字符。 返回在經過若干次交換后,s …

vim 下web開發html css js插件

Vim下的Web開發之html,CSS,javascript插件HTML 下載HTML.zip 解壓HTML.zip,然后將里面的所有文件copy到C:\Program Files\Vim\vimfiles目錄下首先,你應該把“ filetype plugin on ”寫入你的vimrc。重啟vim。新建一個test.html文件。用gvim打開按 "…

為什么用scrum_為什么Scrum糟糕于數據科學

為什么用scrumScrum is a popular methodology for PM in software engineering and recently the trend has carried over to data science. While the utility of Scrum in standard software engineering may remain up for debate, here I will detail why it has unquesti…

Android_Event Bus 的基本用法

1 //事件總線分發2 public class MainActivity extends ActionBarActivity {3 Button button;4 TextView text;5 6 Override7 protected void onCreate(Bundle savedInstanceState) {8 super.onCreate(savedInstanceState);9 setContentView(R…

leetcode 1203. 項目管理(拓撲排序)

公司共有 n 個項目和 m 個小組,每個項目要不無人接手,要不就由 m 個小組之一負責。 group[i] 表示第 i 個項目所屬的小組,如果這個項目目前無人接手,那么 group[i] 就等于 -1。(項目和小組都是從零開始編號的&#xf…

谷歌cloud_通過使用Google Cloud ML大規模提供機器學習模型,我們學到了什么

谷歌cloudby Daitan通過大潭 通過使用Google Cloud ML大規模提供機器學習模型,我們學到了什么 (What we learned by serving machine learning models at scale using Google Cloud ML) By Bruno Schionato, Diego Domingos, Fernando Moraes, Gustavo Rozato, Isa…

php企業黃頁源碼,PHPCMS 企業黃頁模塊 v9 GBK 正式版

PHPCMS V9采用OOP(面向對象)方式進行基礎運行框架搭建。模塊化開發方式做為功能開發形式。框架易于功能擴展,代碼維護,優秀的二次開發能力,可滿足所有網站的應用需求。PHPCMS V9企業黃頁主要特色1、模型自定義,支持模型添加、修改…

跨域配置

SpringBoot跨域配置 我們的后端使用Spring Boot。Spring Boot跨域非常簡單,只需書寫以下代碼即可。 Configuration public class CustomCORSConfiguration {private CorsConfiguration buildConfig() {CorsConfiguration corsConfiguration new CorsConfiguration(…

fromEvent

fromEvent(selector,Event) 實際效果圖 這個功能和cad 3dmax里面的鼠標定位功能一致吧,是不是有點小成就? 轉載于:https://www.cnblogs.com/xiongwei2017/p/7074180.html

java開發第一天上班_從第一天開始,如何成為一名優秀的團隊合作伙伴,成為初級開發人員

java開發第一天上班One of the many things you might be asking yourself when starting your software development career is:在開始軟件開發職業時,您可能會問自己很多事情之一: “How do I REALLY contribute to my new team?”“我如何真正為我的…

java虛擬機編譯文件,理解Java虛擬機(1)之一個.java文件編譯成.class文件發生了什么...

理解Java虛擬機(1)之一個.java文件編譯成.class文件發生了什么最近在看《深入理解Java虛擬機》弄明白了很多java的底層知識,決定分幾部分總結下,從.java文件編譯,到類加載機制,內存分配垃圾回收機制,線程并發&#xff…

leetcode 684. 冗余連接()

在本問題中, 樹指的是一個連通且無環的無向圖。 輸入一個圖,該圖由一個有著N個節點 (節點值不重復1, 2, …, N) 的樹及一條附加的邊構成。附加的邊的兩個頂點包含在1到N中間,這條附加的邊不屬于樹中已存在的邊。 結果圖是一個以邊組成的二維數組。每一…