第3章分類
EDITORIAL
参考書
「 - Scikit-学び、TensorFlowベースのマシンでは実用的な学習します」
ツール
python3.5.1、Jupyterノートブック、Pycharm
問題解決
MNIST与えられたデータ:[WinError 10060]の接続が正しく、一定期間後に応答するか、接続されたホストが応答しないことができませんので、接続の試みは失敗します。
参考リンク:fetch_mldataはMNISTデータセットの問題解決策をダウンロードすることはできません使用するscikit-を学びます
StratifiedKFold
- cross_val_score()あなたには、いくつかのより多くを制御することができますクロスバリデーション機能、このタイプに比べて、あなたが自分でクロスバリデーションを実装することができます。
cross_val_predict
- 評価スコアが返されますが、それぞれの予測値は、折り畳まれていません
- その結果、一次元配列、あなたが思う、ああ、マルチ倍の各サンプルは、唯一無二の検証セットも、そうなります後に元のサンプルの数と一致し、ラベルを予測しています
confusion_matrix
- 混同マトリックス
- 行列の混乱の行は、実際のカテゴリ列が予測カテゴリを表す表します。
decision_function()
この方法は、各インスタンスのスコアを返し、その後、これらの画分は任意の閾値を用いて予測することができます。
トレーニングセットスコアのすべてのインスタンスを取得するためにcross_val_predict()関数を使用します
y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3, method="decision_function")
これらのスコアを使用すると、すべての可能な閾値を計算するprecision_recall_curve()精度とリコール機能を使用することができます
precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)
def plot_precision_recall_vs_threshold(precisions, recalls, thresholds): plt.plot(thresholds, precisions[:-1], "b--", label="Precision") plt.plot(thresholds, recalls[:-1], "g-", label="Recall") plt.xlabel("threshold") plt.legend(loc = "upper left") plt.ylim([0, 1]) plot_precision_recall_vs_threshold(precisions, recalls, thresholds) plt.show()
roc_curve()
受信者動作特性曲線
from sklearn.metrics import roc_curve fpr, tpr, thresholds = roc_curve(y_train_5, y_scores) def plot_roc_curve(fpr, tpr, label=None): plt.plot(fpr, tpr, linewidth=2, label=label) plt.plot([0, 1], [0, 1], 'k--') plt.axis([0, 1, 0, 1]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plot_roc_curve(fpr, tpr) plt.show()
roc_auc_score()
- コンパレータ分類器は、曲線下面積(AUC)を測定することであるがあります
- ROC AUC完全分類は1に等しく、そして0.5に等しい純粋にランダムな分類子のROC AUCです。
- sklearn.metrics輸入roc_auc_scoreから
ROC曲線とPRを選択
- ROC曲線と精度/リコール(PRカーブ)ので、非常によく似ているので、あなたはどのプロファイルを使用することを決定する方法を尋ねるかもしれません。
- 親指のルールは、存在しているポジ型は非常に稀で偽陽性であるか、あなたはクラスではなく、偽陰性クラスの詳細心配している場合、あなたがPRカーブを選択する必要があるとき、逆にそれがROC曲線です。右上隅にできる限り近いPRカーブ。
マルチクラス分類
sklearnあなたはマルチクラス分類タスクのためのバイナリ分類アルゴリズムを使用しようと検出することができ、それが自動的にOVRを実行します(SVM分類器を除いて、それはOVOを使用します)。
あなたはsklearnの使用つまたは複数の戦略を強制したい場合は、またはOneVsRestClassifierクラスをOneVsOneClassifier使用することができます。
from sklearn.multiclass import OneVsOneClassifier ovo_clf = OneVsOneClassifier(SGDClassifier(random_state=42)) ovo_clf.fit(X_train, y_train) ovo_clf.predict([some_digit]) len(ovo_clf.estimators_)
エラー解析
- cross_val_predict()+ confusion_matrix()
マイCSDN:https://blog.csdn.net/qq_21579045
私のブログの庭:https://www.cnblogs.com/lyjun/
私のGithub:https://github.com/TinyHandsome
紙はZhongjueを来るこの練習は不可欠です知っている〜
OBを来てようこそ〜
李Yingjunの子どもたちによって