日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python分类模型评估

發布時間:2024/9/27 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python分类模型评估 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Python分類模型評估

1 聲明

本文的數據來自網絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術交流,如有冒犯之處請聯系博主及時處理。

2 分類模型評估簡介

對給給定的分類模型進行質量評估,常見概念見下:

其中TP是true positive(真正的)、TN是true negative (真負的)、FP是false positive,(假負的)、positive(正的)、negative(負的)個數。

混淆矩陣見下:

這里的positive指的是買了電腦的那一類(數據集參考《數據挖掘概念與技術》一書里的購買電腦的數據集),則TP是實際是買了電腦的預測是買了的數量,對應TP,而FP則是實際沒買電腦,但預測買了的數量。FN則實際買了電腦但是預測值確實沒買的個數,TN則是實際沒買,預測的也是沒買的個數。

Receiver operating characteristic curves 簡稱ROC曲線是比較模型的性能評價方法。它主要是反應true positive rate (TPR)真正率與false positive rate(FPR)假負率的權衡。

ROC曲線越接近左上角,說明該分類器的性能越好,這表明這個分類器在假負率很低的同時真正率也很高。

Area Under Curve簡稱為AUC 被定義為ROC曲線下的面積。ROC曲線一般都處于y=x這條直線的上方,所以它的取值范圍為[0.5,1],有了AUC這個數值指標,判別分類器的效果就很直觀,它越大越好。

注:準確率accuracy不適用于分類不平衡問題。

3 分類模型評估代碼示例

# Step1 加載相關包 import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_curve, roc_auc_score from sklearn.model_selection import train_test_split # Step2 加創建特征矩陣和目標向量(y) features, target = make_classification(n_samples=10000,n_features=10,n_classes=2,n_informative=3,random_state=3)# Step3 加利用train_test_split拆分測試集、訓練集(測試占比10%) features_train, features_test, target_train, target_test = train_test_split( features, target, test_size=0.1, random_state=1) # Step4 創建Logistic分類器 logit = LogisticRegression() # Step5 訓練模型 logit.fit(features_train, target_train) # Step6 獲得預測的概率值 target_probabilities = logit.predict_proba(features_test)[:,1] # Step7 通過roc_curve獲得FPR和TPR false_positive_rate, true_positive_rate, threshold = roc_curve(target_test, target_probabilities) # Step8 畫ROC曲線 plt.title("Receiver Operating Characteristic") plt.plot(false_positive_rate, true_positive_rate) plt.plot([0, 1], ls="--") plt.plot([0, 0], [1, 0] , c=".7"), plt.plot([1, 1] , c=".7") plt.ylabel("True Positive Rate") plt.xlabel("False Positive Rate") plt.show() # Step9 計算AUC的值 roc_auc_score(target_test, target_probabilities)

4 總結

總結

以上是生活随笔為你收集整理的Python分类模型评估的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。