What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?如果您想預測週五 100 名員工中有多少人會在辦公室吃甜甜圈,該怎麼辦?聯合管理計劃是一個極為強大的統計發現工具,擅長創建各種統計模型。 但是,如果要全面評估預測二元分類模型的閾值,則需要多個平台和多個步驟。 A 2018 年探索高峰會演講將探討評估和選擇分類模型閾值的挑戰。 我加入了團隊@凱倫C和@米亞史蒂芬斯創建一個外掛程式以促進模型理解和閾值選擇。
這模型分類瀏覽器插件提供統一的儀表板來同時視覺化模型截止和錯誤權衡。 您可以交互地更改模型閾值,並立即查看效能度量、混淆矩陣和 ROC 曲線中傳播的結果。 此加載項還實現了自訂紅色三角形選項來查看提升曲線、累積增益曲線,並根據分類成本計算最佳閾值。
讓我們看一下帶有附加資料表的範例。 今天是辦公室的周五甜甜圈日,您想要預測 100 名員工中有多少人會吃甜甜圈。 您收集有關每個人是否食用甜甜圈的數據以及一些預測變量,並擬合一個模型來估計食用機率。 現在您想要探索與每個模型截止點相關的權衡。 我們的想法是選擇一個截止點,以最大限度地減少未來星期五的甜甜圈浪費。 共有三列:
- Prob[Donut] 是個人食用甜甜圈的機率。
- 消費是某人是否吃了甜甜圈的實際結果。
- 我們有一個可選的驗證列
Input DataInput DataInput DataInput Data輸入資料
數據
下載並安裝該加載項後,開啟 Donuts Blog Example.jmp 資料表。 資料的格式如下:有一個數字連續列對目標結果的機率進行建模,在本例中是我們的 Prob[Donut] 列。 可以透過使用「儲存機率公式」來保存二元結果的擬合模型來在 JMP 中建立此列。另一個必需的欄位是作為特徵和名義的實際結果狀態,在我們的例子中是消耗列。 您可以選擇新增驗證列,該列將根據驗證類別在平台中新增其他輸出。 如果你使用JMP專業版,您可以透過分析 -> 預測建模 -> 新增驗證列輕鬆完成此操作。 驗證列可以有兩個或三個類別,並且需要由數值組成。
Column CastingColumn CastingColumn CastingColumn Casting柱鑄造
發射
步驟1:將機率 [甜甜圈] 投射到 X,將消耗投射到 Y。 這兩列是必需的。
第2步:將目標等級設為“甜甜圈”,因為這就是模型預測的等級。
步驟3:設定統計分析的 alpha 水平,預設為 0.05。
步驟4:您可以在右上角選擇基於給定應用領域的效能術語,這是不同度量標籤的純視覺選項。 在這種情況下,我們將其保留為“常規”。
第5步:視覺輔助功能複選框是一項功能,可以更改圖形輸出,以便能夠解釋結果,而無需區分圖形上的顏色,我們現在將其保留。
第6步:設定完所有這些初始參數後,按一下「確定」啟動平台。 根據資料集的大小以及是否使用驗證列,這可能需要幾秒鐘的時間才能啟動。
結果 – 產生的資料表
除了該平台之外,還將推出新的數據表。 此資料表採用 Prob[Donut] 和 Conspiration 列,對於每個人吃甜甜圈的機率,它通過循環所有人員並比較當前的值來創建真陽性、真陰性、假陽性和假陰性的計數。一個人的實際消費情況以及對其他人的消費機率。
根據這些計數,創建靈敏度或真陽性率列,這是模型正確識別實際食用甜甜圈的人的能力。 特異性或真陰性率是模型正確識別未食用甜甜圈的個體的能力。
錯誤分類率是該行中觀察總數的誤報 + 漏報總和。
如果您使用驗證列,則會在背景為每個驗證類別開啟一個單獨的表,以及一個將所有子集連接在一起的表。
Generated Data TableGenerated Data TableGenerated Data TableGenerated Data Table產生的數據表
結果 – 報告視窗
回到平台。 我們看到的第一張圖是標準 ROC 曲線,繪製了 1 - 特異性的靈敏度以及曲線下面積(具有 95% Wald 置信區間)。 右側,我們有一個聚類圖,直觀地顯示二元分類結果的分佈。 y 軸顯示建模類別,x 軸是模型分數。 垂直滑桿位於目前閾值。 紅點是模型錯誤預測甜甜圈消耗量的點,而藍點是正確預測的點。
Interactivity of the PlatformInteractivity of the PlatformInteractivity of the PlatformInteractivity of the Platform平台互動性在第二行中,我們進行了數值分析。 績效指標表提供了七種不同指標的估計值和信賴區間。 流行率是指實際吃過甜甜圈的員工比例。 真陽性率/敏感性和真陰性率/特異性已在前面討論過,也包含在此。 陽性預測值 (PPV) 被解釋為陽性甜甜圈結果預測實際甜甜圈消費量的程度。 NPV 則相反,負的甜甜圈結果可以很好地預測甜甜圈消費的實際缺乏。 陽性似然比 (LR+) 是指當測試結果顯示甜甜圈消費呈陽性時,甜甜圈消費的幾率會增加多少。 LR- 則相反,即當測試返回非消耗時,甜甜圈消耗的幾率會降低多少。 在效能指標的右側,我們可以看到 2x2 混淆矩陣,顯示 TP、TN、FP 和 FN 的比率和計數。 旁邊顯示的是錯誤分類率和馬修斯相關係數 (MCC) 。 MCC 是二元分類品質的另一種衡量標準,值為1 表示每個被預測吃甜甜圈的人實際上吃了一個,0 表示模型相當於隨機分類,-1 表示完全錯誤分類,其中每個預測的甜甜圈食者一個也沒吃。 底行的錯誤權衡曲線顯示假陽性和假陰性錯誤計數的折線圖,並使用自訂紅色三角形選項將 Y 軸更改為比率而不是計數。
Visual Accessibility Turned OnVisual Accessibility Turned OnVisual Accessibility Turned OnVisual Accessibility Turned On視覺輔助使用已開啟
這些表格和圖表本身就很棒,但真正的價值來自於互動方面。 分類模型的效能測量是基於閾值或截止值。 當您變更閾值時,效能指標也會發生變化。 在狀態與分數和誤差權衡曲線上,水平線上有指示模型閾值的拖曳標記。 抓住並移動這些線中的任何一條來更改閾值並更新效能指標。
或者,使用混淆矩陣上方輪廓框「設定機率閾值」下的滑桿或可編輯數字框來變更閾值。 這些拖曳標記和滑桿都是同步的,當您移動其中一個時,其他滑桿也會隨之移動。 這些滑桿所做的是設定新的機率閾值,該閾值決定模型是否預測您會吃甜甜圈的二元分類。 增加截止值將為模型預測甜甜圈消耗量設定更嚴格的閾值,反之亦然。 例如,如果將閾值設為 0.8,則表示模型要預測您會吃甜甜圈,則 Prob[Donut] > 0.8 必須是,否則它將預測您不會吃甜甜圈。
附加功能
「最小化錯誤分類」按鈕設定最佳截止值,最大限度地減少誤報和漏報的總和。 反過來,它也最大化了 MCC。
Minimizing MisclassificationMinimizing MisclassificationMinimizing MisclassificationMinimizing Misclassification最大限度地減少錯誤分類
在頂部的自訂「閾值/截止分析」紅色三角形中,您可以在輸出底部顯示提升曲線以及累積增益曲線(如果您是專業用戶)。 使用「驗證」列時,這些選項也可用於效能測量紅色小三角下的每個驗證類別。
Expanding with Further AnalysisExpanding with Further AnalysisExpanding with Further AnalysisExpanding with Further Analysis透過進一步分析進行擴展
您還將看到菜單選項“基於成本的閾值”,它會打開一個新窗口,根據分類成本計算最佳閾值。 例如,假設甜甜圈消費率為 0.5,TP 和 TN 分類成本為 0,FP 成本為 1,FN 成本為 3。 在這個例子中,對甜甜圈進行誤報分類的成本是誤報的三倍,人們可能會因甜甜圈短缺而不是過剩而感到不安三倍。 考慮到這些成本,最佳閾值是 0.25,您可以手動將其輸入到數位編輯框中。
Cost Based ThresholdingCost Based ThresholdingCost Based ThresholdingCost Based Thresholding基於成本的閾值最後,您可以選擇將新的分類列儲存到原始資料表中,這將根據當前的截止值建立新的消耗列。
Saving a New Classification ColumnSaving a New Classification ColumnSaving a New Classification ColumnSaving a New Classification Column儲存新的分類列
結論
這個插件是一個極其強大的工具,可以評估任何分類模型中的截止值,無論是預測甜甜圈的消耗量還是製造中的缺陷率。 透過將所有圖形和表格集中在一個高度互動的平台中,資料視覺化和模型閾值設定變得非常簡單。
您正在使用此插件評估什麼類型的模型? 如果您有任何建議,請在下面的評論中告訴我!
因此,一旦我找到了理想的分界點,我該如何回答最初的問題“要訂購多少個甜甜圈”盡量減少未來週五的甜甜圈浪費「?
當我啟動這個非常有價值的插件時,我沒有透過循環所有的人並將當前人的實際消費和消費機率與其他個人。
我在“設定機率閾值”部分也沒有找到“最小化錯誤分類”按鈕。
最後,不計算 MCC(馬修斯相關係數)。
有人知道 F1 分數是否自動計算嗎?
也許,同時有更新版本?
我在 10 月的 JMP 會議上看到了這一點。現在我終於用我的真實數據來嘗試。我從我的資料檔案中抽取了 n=1000 個樣本,大約是 n=10,000。無論如何,我的 Y,反應變數是典型的 0/1 二項式。當我單擊將其輸入“Y,Response”框中時,我收到“JMP 警報”訊息--> 存取或評估“分配”中的下標範圍,newCol[i] = /*###* /「否「/*###*/」。它仍然允許我輸入變量,然後將我的機率列插入“S,預測值”。當我點擊“運行”時,我收到訊息-->名稱未解析:目標選擇在訪問或評估“目標選擇”,目標選擇/*###*/。並且沒有任何輸出。有任何想法嗎?
應用程式團隊的註釋:如果您有大量資料集,請耐心等待。 該腳本將運行。
對於預測建模者來說,這看起來是一個非常好的解決方案,可以解決一個重要的挑戰。