クロスバリデーション | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

目的

複数回のデータパターンで評価を行い

安定して良い結果を得られるものを選択する

 

今回使用するもの

K分割クロスバリデーション

(データをK個のグループに分割) ⇒ (K - 1個:学習用、1個:評価用) ⇒ (K回繰り返す)

コード

# K分割クロスバリデーション用オブジェクト
kfold_cv = KFold(n_splits=5, shuffle=True)
for(name, algorithm) in allAlgorithms:
    # 各アリゴリズムのオブジェクトを作成
    clf = algorithm()
    # scoreメソッドをもつクラスを対象とする
    if hasattr(clf,"score"):
       
        # クロスバリデーションを行う
        scores = cross_val_score(clf, x, y, cv=kfold_cv)
        print(name,"の正解率=")
        print(scores)
AdaBoostClassifier の正解率=
[0.93333333 0.86666667 0.93333333 1.         0.96666667]
BaggingClassifier の正解率=
[0.93333333 0.96666667 0.96666667 0.96666667 0.96666667]
BernoulliNB の正解率=
[0.26666667 0.3        0.3        0.23333333 0.26666667]
CalibratedClassifierCV の正解率=
[0.96666667 0.9        0.93333333 0.9        0.93333333]
CheckingClassifier の正解率=
[0. 0. 0. 0. 0.]
ClassifierChain の正解率=
[0.73333333 0.7        0.6        0.53333333 0.76666667]
ComplementNB の正解率=
[0.96666667 1.         0.93333333 0.93333333 0.96666667]
DecisionTreeClassifier の正解率=
[0.36666667 0.23333333 0.33333333 0.13333333 0.33333333]
DummyClassifier の正解率=
[0.93333333 0.86666667 1.         0.96666667 0.96666667]
ExtraTreeClassifier の正解率=
[0.96666667 0.93333333 0.96666667 0.9        1.        ]
GaussianNB の正解率=
[1.         0.96666667 0.96666667 1.         0.9       ]
GaussianProcessClassifier の正解率=
[0.93333333 0.96666667 0.93333333 0.93333333 1.        ]
GradientBoostingClassifier の正解率=
[0.96666667 1.         0.96666667 0.86666667 0.96666667]
KNeighborsClassifier の正解率=
[0.96666667 0.93333333 0.93333333 1.         0.96666667]
LabelPropagation の正解率=
[0.96666667 1.         0.9        0.96666667 0.96666667]
LabelSpreading の正解率=
[0.96666667 0.96666667 1.         1.         0.96666667]
LinearDiscriminantAnalysis の正解率=
[0.96666667 0.96666667 0.93333333 0.93333333 0.86666667]
LinearSVC の正解率=
[0.93333333 0.93333333 0.96666667 0.96666667 0.96666667]
LogisticRegression の正解率=
[0.93333333 0.93333333 0.93333333 1.         0.8       ]
LogisticRegressionCV の正解率=
[1.         1.         1.         0.93333333 0.96666667]
MLPClassifier の正解率=
[1.         1.         0.96666667 0.9        0.96666667]
MultinomialNB の正解率=
[0.96666667 0.46666667 0.9        0.73333333 0.6       ]
NearestCentroid の正解率=
[0.93333333 0.96666667 0.86666667 0.96666667 0.9       ]
NuSVC の正解率=
[0.96666667 0.9        1.         1.         0.93333333]
PassiveAggressiveClassifier の正解率=
[0.76666667 0.8        0.86666667 0.76666667 0.93333333]
Perceptron の正解率=
[0.93333333 0.93333333 0.86666667 0.96666667 0.83333333]
QuadraticDiscriminantAnalysis の正解率=
[0.96666667 0.96666667 0.93333333 1.         1.        ]
RadiusNeighborsClassifier の正解率=
[1.         0.9        1.         0.96666667 0.96666667]
RandomForestClassifier の正解率=
[0.96666667 0.93333333 0.96666667 0.96666667 0.93333333]
RidgeClassifier の正解率=
[0.9        0.8        0.83333333 0.76666667 0.83333333]
RidgeClassifierCV の正解率=
[0.93333333 0.76666667 0.8        0.83333333 0.76666667]
SGDClassifier の正解率=
[0.63333333 0.86666667 0.96666667 0.93333333 1.        ]
SVC の正解率=
[1.         1.         0.93333333 0.96666667 0.93333333]