書籍の通りには上手くいきませんでした.
『base_estimator を指定しろ』ということでしょうが
そこで、あまり感心できない手を使ってしまいましたが、ほとんどの分類器を比較することが出来ました..
最適なアルゴリズムを見つける
①様々なアルゴリズムを比較する
②様々なパターンのデータに対して安定した結果が得られるか検証する
import sklearn
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import warnings # エラー表示
from sklearn.utils.testing import all_estimators # 全ての推定器(分類器)
# アヤメデータの読み込み
iris_# アヤメデータをラベルと入力データに分離する
y = iris_data["Name"]
x = iris_data.drop("Name", axis=1)data = pd.read_csv("iris4.csv", encoding="utf-8")
# 学習用とテスト用に分離する
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True)
clfs = [clf1, clf2, clf3, clf4, clf5, ・・・]
names = ["AdaBoostClassifier","BaggingClassifier", "BernoulliNB", ・・・]
count = 0
warnings.filterwarnings('ignore')
for clf in clfs:
# 各アリゴリズムのオブジェクトを作成
clf = clf()
warnings.filterwarnings('ignore')
for clf in clfs:
# 各アリゴリズムのオブジェクトを作成
clf = clf()
# 学習して、評価する
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)
print(names[count],"の正解率 = " , accuracy_score(y_test, y_pred))
count = count + 1
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)
print(names[count],"の正解率 = " , accuracy_score(y_test, y_pred))
count = count + 1
AdaBoostClassifier の正解率 = 0.9333333333333333
BaggingClassifier の正解率 = 0.9333333333333333
BernoulliNB の正解率 = 0.23333333333333334
CalibratedClassifierCV の正解率 = 0.9333333333333333
CheckingClassifier の正解率 = 0.3333333333333333
ClassifierChain の正解率 = 0.7666666666666667
ComplementNB の正解率 = 0.9333333333333333
DecisionTreeClassifier の正解率 = 0.5
DummyClassifier の正解率 = 0.8666666666666667
ExtraTreeClassifier の正解率 = 0.9666666666666667
GaussianNB の正解率 = 0.9666666666666667
GaussianProcessClassifier の正解率 = 0.9333333333333333
GradientBoostingClassifier の正解率 = 0.9666666666666667
KNeighborsClassifier の正解率 = 0.9666666666666667
LabelPropagation の正解率 = 0.9666666666666667
LabelSpreading の正解率 = 1.0
LinearDiscriminantAnalysis の正解率 = 0.9666666666666667
LinearSVC の正解率 = 0.9333333333333333
LogisticRegression の正解率 = 0.9666666666666667
LogisticRegressionCV の正解率 = 1.0 MLPClassifier の正解率 = 0.9333333333333333
MultinomialNB の正解率 = 0.9333333333333333
NearestCentroid の正解率 = 0.9666666666666667
NuSVC の正解率 = 1.0
PassiveAggressiveClassifier の正解率 = 0.7
Perceptron の正解率 = 0.9333333333333333
QuadraticDiscriminantAnalysis の正解率 = 0.9666666666666667
RadiusNeighborsClassifier の正解率 = 0.9666666666666667
RandomForestClassifier の正解率 = 0.9666666666666667
RidgeClassifier の正解率 = 0.8666666666666667
RidgeClassifierCV の正解率 = 0.8666666666666667
SGDClassifier の正解率 = 0.7666666666666667
SVC の正解率 = 0.9666666666666667
BaggingClassifier の正解率 = 0.9333333333333333
BernoulliNB の正解率 = 0.23333333333333334
CalibratedClassifierCV の正解率 = 0.9333333333333333
CheckingClassifier の正解率 = 0.3333333333333333
ClassifierChain の正解率 = 0.7666666666666667
ComplementNB の正解率 = 0.9333333333333333
DecisionTreeClassifier の正解率 = 0.5
DummyClassifier の正解率 = 0.8666666666666667
ExtraTreeClassifier の正解率 = 0.9666666666666667
GaussianNB の正解率 = 0.9666666666666667
GaussianProcessClassifier の正解率 = 0.9333333333333333
GradientBoostingClassifier の正解率 = 0.9666666666666667
KNeighborsClassifier の正解率 = 0.9666666666666667
LabelPropagation の正解率 = 0.9666666666666667
LabelSpreading の正解率 = 1.0
LinearDiscriminantAnalysis の正解率 = 0.9666666666666667
LinearSVC の正解率 = 0.9333333333333333
LogisticRegression の正解率 = 0.9666666666666667
LogisticRegressionCV の正解率 = 1.0 MLPClassifier の正解率 = 0.9333333333333333
MultinomialNB の正解率 = 0.9333333333333333
NearestCentroid の正解率 = 0.9666666666666667
NuSVC の正解率 = 1.0
PassiveAggressiveClassifier の正解率 = 0.7
Perceptron の正解率 = 0.9333333333333333
QuadraticDiscriminantAnalysis の正解率 = 0.9666666666666667
RadiusNeighborsClassifier の正解率 = 0.9666666666666667
RandomForestClassifier の正解率 = 0.9666666666666667
RidgeClassifier の正解率 = 0.8666666666666667
RidgeClassifierCV の正解率 = 0.8666666666666667
SGDClassifier の正解率 = 0.7666666666666667
SVC の正解率 = 0.9666666666666667