您好,登錄后才能下訂單哦!
這篇文章主要講解了“python模型性能ROC和AUC是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python模型性能ROC和AUC是什么”吧!
ROC
分析和曲線下面積 (AUC) 是數據科學中廣泛使用的工具,借鑒了信號處理,用于評估不同參數化下模型的質量,或比較兩個或多個模型的性能。
傳統的性能指標,如準確率和召回率,在很大程度上依賴于正樣本的觀察。因此,ROC 和 AUC 使用真陽性率和假陽性率來評估質量,同時考慮到正面和負面觀察結果。
從分解問題到使用機器學習解決問題的過程有多個步驟。它涉及數據收集、清理和特征工程、構建模型,最后是,評估模型性能。
當您評估模型的質量時,通常會使用精度和召回率等指標,也分別稱為數據挖掘領域的置信度和靈敏度。
這些指標將預測值與通常來自保留集的實際觀察值進行比較,使用混淆矩陣進行可視化。
讓我們首先關注精度,也稱為陽性預測值。使用混淆矩陣,您可以將 Precision 構建為所有真實陽性與所有預測陽性的比率。
召回率,也稱為真陽性率,表示真陽性與觀察到的和預測的所有陽性的比率。
使用混淆矩陣中的不同觀察集來描述 Precision
和 Recall
,您可以開始了解這些指標如何提供模型性能的視圖。
值得注意的是 Precision 和 Recall 只關注正例和預測,而不考慮任何負例。此外,他們不會將模型的性能與中值場景進行比較,中值場景只是隨機猜測。
ROC 作為匯總工具,用于可視化 Precision 和 Recall 之間的權衡。ROC 分析使用 ROC 曲線來確定二進制信號的值有多少被噪聲污染,即隨機性。它為連續預測器提供了一系列操作點的靈敏度和特異性摘要。ROC 曲線是通過繪制 x 軸上的假陽性率與 y 軸上的真陽性率來獲得的。
由于真陽性率是檢測信號的概率,而假陽性率是誤報的概率,因此 ROC 分析也廣泛用于醫學研究,以確定可靠地檢測疾病或其他行為的閾值。
一個完美的模型將具有等于 1 的誤報率和真陽性率,因此它將是 ROC 圖左上角的單個操作點。而最差的可能模型將在 ROC 圖的左下角有一個單一的操作點,其中誤報率等于 1,真陽性率等于 0。
隨機猜測模型有 50% 的機會正確預測結果,因此假陽性率將始終等于真陽性率。這就是為什么圖中有一條對角線,代表檢測信號與噪聲的概率為 50/50。
要全面分析 ROC 曲線并將模型的性能與其他幾個模型進行比較,您實際上需要計算曲線下面積 (AUC),在文獻中也稱為 c 統計量。曲線下面積 (AUC) 的值介于 0 和 1 之間,因為曲線繪制在 1x1 網格上,并且與信號理論平行,它是信號可檢測性的度量。
這是一個非常有用的統計數據,因為它可以讓我們了解模型對真實觀察結果和錯誤觀察結果的排名有多好。它實際上是 Wilcoxon-Mann-Whitney 秩和檢驗的歸一化版本,它檢驗零假設,其中兩個有序測量樣本是從單個分布 中抽取的。
要繪制 ROC 曲線并計算曲線下面積 (AUC),您決定使用 SckitLearn 的 RocCurveDisplay 方法并將多層感知器與隨機森林模型進行比較,以嘗試解決相同的分類任務。
import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score, RocCurveDisplay def plot_roc(model, test_features, test_targets): """ Plotting the ROC curve for a given Model and the ROC curve for a Random Forests Models """ # comparing the given model with a Random Forests model random_forests_model = RandomForestClassifier(random_state=42) random_forests_model.fit(train_features, train_targets) rfc_disp = RocCurveDisplay.from_estimator(random_forests_model, test_features, test_targets) model_disp = RocCurveDisplay.from_estimator(model, test_features, test_targets, ax=rfc_disp.ax_) model_disp.figure_.suptitle("ROC curve: Multilayer Perceptron vs Random Forests") plt.show() # using perceptron model as input plot_roc(ml_percetron_model, test_features, test_targets)
感謝各位的閱讀,以上就是“python模型性能ROC和AUC是什么”的內容了,經過本文的學習后,相信大家對python模型性能ROC和AUC是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。