
92
5
章 クラス分類:悪い回答を判別する
5.4.4
分類器の評価を行う
とりあえず分類器を作成しましたが、ここで私たちがはっきりさせなければならないことは「何を評
価したいのか?」ということです。最も簡単な評価方法は、テストデータに対して正しく予測した割合
を計算することです。この値は0 から1の間の値をとり、全て正しく予測した場合は1を、全て誤った
予測をした場合は
0
になります。この値はつまるところ正解率(Accuracy)であり、
knn.score()
か
ら求めることができます。
しかし、これまでの章で学んだことですが、ここではテストデータを用いて一度だけ評価を行うよう
なことはせずに、交差検定(cross-validation)を用いることにします。交差検定を行うためには、
sklearn.cross_validation
の
KFold
クラスを用いることができます。交差検定ではデータを分
割して一部をテストデータとして用います。交差検定の各試行
での正解率を平均して最終的な正解率
を計算します。また、標準偏差も計算しそれぞれの正解率のばらつきについても見ることにします。
次に示すコードが以上のことを行います。
from sklearn.cross_validation import KFold
scores = []
cv = KFold(n=len(X), k=10, indices=True)
for train, test in cv:
X_train, y_train = X[train], Y[train] ...