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机器学习》