信頼性評価分類モデル

1.分類モデルの予測精度率

予測精度#############################分類モデル############## ######################### 
生成ツールを設定する#インポートデータ
sklearn.datasetsからはmake_blobsインポート
#インポートnumpyのの
AS輸入numpyのNPを
導入#描画ツール
インポートmatplotlibのを.pyplot PLTとして
#200は、2つに分類するサンプル数を生成し、データの標準偏差が5セット
、X、Yは= make_blobs(N_SAMPLES = 200、random_state = 1、2 =センター、cluster_std = 5) プロットスキャッタグラム
PLTを.scatter(X- [:, 0]、X - 〔:1]、Y = C、= plt.cm.coolたCMap、にEdgeColor = 'K') 表示画像
plt.show()

#インポートデータセット分割ツール
sklearn.model_selectionインポートtrain_test_splitのから
導入#ベイズモデル
sklearn.naive_bayesインポートGaussianNBから
セットトレーニングセットおよび試験に#データセット分割
X_train、X_test、y_train、y_test = train_test_split(X、Y 、random_state = 68) トレーニングガウスベイズモデル
GNB = GaussianNB()
gnb.fit(X_train、y_train) ベイズガウス確率の分類精度得る
predict_proba = gnb.predict_proba(X_test)
結果#プリントを
印刷(「予報形状精度:. {}「形式(predict_proba.shape ))
フォームの予測精度:(50、2)
精度印刷前#5 
印刷(predict_probaの[5])
[0.98849996 0.01150004] 
 [0.0495985 0.9504015] 
 [0.01648034 0.98351966] 
 [0.8168274 0.1831726] 
 [0.00282471 0.99717529]
#縦断面範囲設定
x_min、x_maxをX- = [:0] .min() - 0.5、X- [:, 0] .MAX()+ 0.5 
y_min、y_maxをX- = [:1]。分() - 0.5、X - 〔:1] .MAX()+ 0.5 

XX、YY = np.meshgrid(np.arange(x_min、x_maxを、0.2)、np.arange(y_min、y_maxを、0.2))
= Z gnb.predict_proba(np.c_ [xx.ravel()、yy.ravelを()]):1] 
Z = Z.reshape(xx.shape) 描画輪郭
plt.contourf(XX、YY 、Z、CMapの= plt.cm.summer、アルファ= 0.8) は、スキャッタグラムのプロット
[:0] plt.scatter(X_train 、X_train [:1]、C = y_train、CMAP = plt.cm.coolを、にEdgeColor = 'K')
plt.scatter(X_test [:0]、X_test [:1]、C = android.permission.FACTOR、CMapの= plt.cm.cool、にEdgeColor = 'K'、アルファ= 0.6) セットクロス長手方向の範囲
plt.xlim(xx.min()、xx.max())
plt.ylim(yy.min()、yy.max()) 縦軸と横部
plt.xticks(())
PLT。 yticks(())表示画像
plt.show()

  • 図ドットは、第1分類領域シアンの代表を試験サンプルデータセットを表し、レッドゾーンは、二つの領域、傾斜部の領域は、この領域のデータの途中で、第2分類を表します「曖昧」のポイントとなる点モデル

2.分類モデルの決意の係数

#インポートSVCモデル
sklearn.svmインポートのSVCから
模型に設定#トレーニング
SVC = SVC(ガンマ= '自動')。フィット(X_train、y_train) は、SVC取得するために係数を決定
dec_func = svc.decision_function(X_test) プリント決定を最初の5枚の係数
プリント(dec_funcの[5])
【0.02082432 0.87852242 1.01696254 -0.30356558 0.95924836]
= Svc.decision_function Z(np.c_ [xx.ravel()、yy.ravel()])
Z = Z.reshape(xx.shape) 描画輪郭
plt.contourf(XX、YY、Z、 CMAP = plt.cm.summer、アルファ= 0.8)は
#プロットスキャッタグラム
plt.scatter(X_train [:0] 、X_train [:1]、C = y_train、CMAP = plt.cm.cool、にEdgeColor = K」 ')
plt.scatter(X_test [:0]、X_test [:1]、C = android.permission.FACTOR、CMapの= plt.cm.cool、にEdgeColor =' K」、アルファ= 0.6) 縦軸と横範囲
PLT。 XLIM(xx.min()、xx.max())
plt.ylim(yy.min()、yy.max())
設定図タイトル
plt.title( 'SVCのdecision_function') 縦軸と横部
PLT .xticks(())
plt.yticks(()) 表示画像
plt.show()

  • カテゴリは、これらの点は、勾配の領域で、逆に属するクラス2、次いで、モデルがデータ点がクラス1に属すると判断し、そのような各データポイントのシアン領域が配置されているより明らかなように、同じシアン及び赤領域で表されモデルはまた、「曖昧」ポイントと感じています。
#在scikit-learn中,使用网格搜索GridSearchCV类时,如果要改变评分方式,只需修改scoring参数即可.
#如对随机森林分类进行评分,可以直接这样修改
#修改scoring参数为roc_auc
grid = GirdSearchCV(RandomForestClassifier(),param_grid = param_grid,scoring = 'roc_auc')

 

总结 : 

  SVC(支持向量机)的decision_function和GaussianNB(朴素贝叶斯)的predict_proba有相似之处,也有很大的差异.两者都可以使用多元分类任务.

  我们使用交叉验证法.网格搜索法,分类模型的可信度评估,这些方法都可以帮助我们对模型进行评估并找到相对较优的参数.

  还有.score方法给模型评分:对于分类模型来说,默认情况下.score给出的评分是模型分类的准确率(accuracy)

                对于回归模型来说,默认情况下.score给出的评分回归分析中的R平方的分数.

  其他对模型评分的方法 : 精度(Precision),召回率(Recall),f1分数(f1-score),ROC(Receiver Operating Characteristic Curve),AUC(Area Under Curve)

 

文章引自 : 《深入浅出python机器学习》

おすすめ

転載: www.cnblogs.com/weijiazheng/p/10966275.html