如何找到分類結果的統計顯著性差異?
我正在嘗試比較***“相同數據集”***上的一些指標。因此,我計算了一些性能指標,並得到了每個指標的結果。
我只有一個數據集。我使用 KNN 構建了一個分類模型,但使用 KNN(非參數方法)算法,我使用了 7 個距離度量,例如歐幾里得距離等。
***我的問題是如何知道結果之間是否存在顯著差異。***是否有任何統計檢驗可以幫助找出下表中每一行的統計顯著性差異。做 t 檢驗和方差分析適用於此。
**例如,**在下表中。95.43、95.78、96.66 等其他性能指標(如靈敏度、F1 分數等)的準確度之間是否存在統計學上的顯著差異。我也不熟悉分類結果中的 Kappa 和 Mcnemar 檢驗 p 值。
***注意:***我檢查了其他相關問題,但沒有找到有用的答案。此外,我的問題不僅與準確性有關,還與其他性能指標有關。
我將非常感謝應用程序提供的信息豐富的詳細答案(如果可能,在 R 中)。
我不認為您可以根據單個數據集上的不同距離度量來準確地完成您想要的 KNN模型集,但是您可以嘗試根據不同的距離評估建模方法的相對性能指標。但是,您必須進行兩項調整。
下面的大部分內容都來自本頁的討論。
首先,您應該使用適當的評分規則(例如Brier 評分)而不是準確度、特異性、敏感性和 F1 評分來評估性能。眾所周知,這些是用於比較模型的較差度量,它們對不同類型的分類錯誤之間的成本權衡做出了隱含的假設。* Brier 分數實際上是預測的類成員概率與實際成員概率之間的均方誤差。您將不得不查看您的 KNN 軟件如何提供對類概率的訪問,但這通常可以在此
sklearn
函數中實現。其次,不是簡單地將模型一次擬合到您的數據中,您需要了解建模過程在重複應用到您的數據集時的效果如何。一種方法是使用多個引導樣本,比如幾百到一千個數據。對於作為訓練集的每個 bootstrap 樣本,使用每個距離指標構建 KNN 模型,然後在作為測試集的整個原始數據集上評估它們的性能。然後,每種類型的模型在幾百到一千個引導程序中的 Brier 分數分佈可以表明,在基於不同距離度量的模型之間,就適當的評分規則而言,存在顯著差異。
然而,即使這種方法也有其局限性。請參閱cbeleities的此答案以進行進一步討論。
*使用準確性(正確分配案例的比例)作為模型性能的衡量標準,隱含假設假陰性和假陽性具有相同的重要性。請參閱此頁面以進行進一步討論。在實際應用中,這種假設可能沒有幫助。一個例子是前列腺癌的過度診斷和過度治療;常規診斷測試中的假陽性導致許多不太可能死於這種癌症的男性仍然接受了改變生活的治療,但往往會產生不良副作用。
F1 分數沒有考慮真正的負例/比率,這在某些應用程序中可能很關鍵。靈敏度和特異性值取決於它們之間的特定權衡選擇。有時,這種權衡是由軟件默默進行的,例如將邏輯回歸中的分類截止設置為預測值 $ p>0.5 $ . 所有這些措施背後的明確或隱藏的假設意味著它們可能會受到假設的微小變化的巨大影響。
最普遍有用的方法是生成一個良好的類成員概率模型,然後使用權衡成本的判斷來告知預測類的最終分配(如果需要)。Brier 評分和其他適當的評分規則提供了概率模型質量的連續測量,當模型是真實模型時,這些測量得到優化。