スタッキング | python3Xのブログ

python3Xのブログ

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

ただスタックすれば良いわけではないでしょうが

下記はその結果が微小ですが改良されていることが分かります

各々の分類器のyテスト、予測確率、平均

各学習器で予測結果を出し、多数決で決定(hard)

各学習器で予測確率を出し、平均をとって最も高いクラスを出力(soft)

(stacking)

 

    svm =SVC(C=5, gamma=0.001, probability=True) # support vector machine:教師あり学習の分類や回帰に適用できる
    lr = LogisticRegression()                                 # ロジスティック回帰:答えが2つの時に使う
    knn = KNN(n_jobs=-1)                                    # k近傍法:パターン認識、回帰分析などに使う
    nb = GNB()                                                  # naive bayes:決定境界線を決めるときに使う
    rfc = RFC(n_estimators=500, n_jobs=-1)            # ランダムフォレスト:分類
    bgg = BaggingClassifier(n_estimators=300, n_jobs=-1)   # 分類
    mlp = MLPClassifier(hidden_layer_sizes=(40, 20), max_iter=1000) # 分類

結果のみ

===================================================================================

svm
p:0.8876 r:0.8861 f1:0.8844
lr
p:0.7347 r:0.7394 f1:0.7355
knn
p:0.8470 r:0.8369 f1:0.8309
nb
p:0.8543 r:0.8505 f1:0.8508
rfc
p:0.8506 r:0.8503 f1:0.8476
bgg
p:0.7900 r:0.7865 f1:0.7805
mlp
p:0.6842 r:0.6835 f1:0.6822

hard voting
p:0.
8763 r:0.8777 f1:0.8761

soft voting
p:0.
8715 r:0.8712 f1:0.8707
stacking
p:0.
8961 r:0.8943 f1:0.8941