質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.81%

[kaggle写経] BaggingClassifierでValueError

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 757

Yukiya025

score 80

kaggleのTitanic課題kernelを写経しています。
写経対象: A Data Science Framework: To Achieve 99% Accuracy
今度はBaggingClassifierで困っています。

 開発環境

  • Python3.6.5
  • Jupyter notebook
  • Windows7

 躓いた箇所とエラー文

grid_param内の書き方がよくないのだと推測しています。もともとのTitanic課題kernelにはclassifier__ はついていなかったのですが、stackoverflowを見てclassifier__をつけることにしました。
classifier__削除済

削除はしたものの、ExtraTreesClassifierでエラーが出ています。

#WARNING: Running is very computational intensive and time expensive.
grid_n_estimator = [10, 50, 100, 300]
grid_ratio = [.1, .25, .5, .75, 1.0]
grid_learn = [.01, .03, .05, .1, .25]
grid_max_depth = [2, 4, 6, 8, 10, None]
grid_min_samples = [5, 10, .03, .05, .10]
grid_criterion = ['gini', 'entropy']
grid_bool = [True, False]
grid_seed = [0]

grid_param = [
                [{
                    'n_estimators': grid_n_estimator,
                    'learning_rate': grid_learn,
                    'random_state': grid_seed
                }],

                [{
                    'n_estimators': grid_n_estimator,
                    'max_samples': grid_ratio,
                    'random_state': grid_seed
                }],

                [{
                    'n_estimators': grid_n_estimator,
                    'criterion': grid_criterion,
                    'max_depth': grid_max_depth,
                    'random state': grid_seed
                }],

                [{
                    'learning_rate': [.05],
                    'n_estimators': [300],
                    'max_depth': grid_max_depth,
                    'random_state': grid_seed
                }],

                [{
                    'n_estimators': grid_n_estimator,
                    'criterion': grid_criterion,
                    'max_depth': grid_max_depth,
                    'oob_score': [True],
                    'random_state': grid_seed
                }],

                [{
                    'max_iter_predict': grid_n_estimator,
                    'random_state': grid_seed
                }],

                [{
                    'fit_intercept': grid_bool,
                    'solver': ['newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'],
                    'random_state': grid_seed
                }],

                [{
                    'alpha': grid_ratio,
                }],

                [{}],

                [{
                    'n_neighbors': [1,2,3,4,5,6,7],
                    'weights': ['uniform', 'distance'],
                    'algorithm': ['auto', 'ball_tree', 'kd_tree', 'brute']
                }],

                [{
                    'C': [1,2,3,4,5],
                    'gamma': grid_ratio,
                    'decision_function_shape': ['ovo', 'ovr'],
                    'probability': [True],
                    'random_state': grid_seed
                }],

                [{
                    'learning_rate': grid_learn,
                    'max_depth': [1,2,4,6,8,10],
                    'n_estimators': grid_n_estimator,
                    'seed': grid_seed
                }]
]


start_total = time.perf_counter()
for clf, param in zip (vote_est, grid_param):
    start = time.perf_counter()
    best_search = model_selection.GridSearchCV(estimator = clf[1], param_grid = param, cv = cv_split, scoring = 'roc_auc')
    best_search.fit(data1[data1_x_bin], data1[Target])
    run = time.perf_counter() - start

    best_param = best_search.best_params_
    print('The best parameter for {} is {}  with a runtime of {:.2f} seconds'.format(clf[1].__class__.__name__, best_param, run))
    clf[1].set_params(**best_param)

run_total = time.perf_counter() - start_total
print('Total optimization time was {:.2f} minutes.'.format(run_total/60))

print('-' *10)

classifier__削除後のエラー文

ValueError: Invalid parameter random state for estimator ExtraTreesClassifier(bootstrap=False, class_weight=None, criterion='gini',
           max_depth=2, max_features='auto', max_leaf_nodes=None,
           min_impurity_decrease=0.0, min_impurity_split=None,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,
           oob_score=False, random_state=None, verbose=0, warm_start=False). Check the list of available parameters with `estimator.get_params().keys()`.

 kaggleのTitanic課題提出まで漕ぎ着けました!

hayataka2049 さまのおかげです(*≧∀≦)
Titanic Submit

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

classifier__をつける必要があるのはPipelineを使う際のみ(で、かつPipelinestepsの各タプルで分類器の名前をclassifierにしたとき……)です。

今回は必要ないので外してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/11 19:05

    hayataka2049さま、ありがとうございます(*≧∀≦) 早速classifier__を消したのですが、今度はExtraTreesClassifierでエラーが出るようになりましたorz 今度は何がだめなのかわかりません(>_<)

    質問文にclassifier__を消したコードと新しく出たエラー文を追記しました。

    キャンセル

  • 2018/09/11 19:09

    random stateじゃなくてrandom_stateですね

    キャンセル

  • 2018/09/12 08:36

    うわ気づかなかったの恥ずかしい(○´・ω・`)でも できましたー!(*≧∀≦) ありがとうございます<3!!!

    キャンセル

  • 2018/09/12 12:39

    おかげでkaggle課題提出までこぎつけました! 質問文に追記したので見てやってください(*≧∀≦)

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.81%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る