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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

2回答

2256閲覧

Python3での勾配ブースティングによるモデル構築のエラーに関する質問

KoheiMurakami

総合スコア13

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2018/10/03 01:26

※当方、機械学習によるモデル構築に取り組んではいますが、プログラミングや統計に関しては
初心者レベルですので、初歩から教えていただければ幸甚です。

jupyter notebook上で、勾配ブースティングによる予測モデルの構築を行っていまして、
モデル精度検証にあたって検証用データを投入した際、以下のようなエラーコードが出ます。
「NotFittedError: This GradientBoostingClassifier instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.」

♯利用したアルゴリズム:勾配ブースティング
♯パラメータチューニング:GridSearchCV

GradientBoostingClassifierに関しては、以下の通り学習を行っています。
「from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import GridSearchCV

GBC = GradientBoostingClassifier()

param_grid = {'n_estimators':[10,50,100,300],
'max_depth':[3,5,10]}

grid_search = GridSearchCV(GBC, param_grid)

grid_search.fit(train_x, train_y)」

上記エラーについて、考えうる原因について教えていただけると幸いです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ちゃんと質問文のコードの通り実行できていれば、そのエラーは出ないはずです。

(データの読み込みと検証データを投入している部分が書かれていないので、確信は持てませんが。全体を掲載してください・・・)

jupyter環境ということなので、うっかり変な順番で実行してしまったのではないでしょうか。ノート全体を先頭から実行してみると良いと思います。

参考:
Jupyter Notebookの入力と実行 — Pythonオンライン学習サービス PyQドキュメント

投稿2018/10/03 07:53

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

質問欄のコードブロックは ``` で囲んでください。


iris データセットによるサンプル例

python

1from sklearn import datasets 2from sklearn.ensemble import GradientBoostingClassifier 3from sklearn.model_selection import GridSearchCV, train_test_split 4import numpy as np 5 6# IRIS データを用意する。 7iris = datasets.load_iris() 8x_train, x_test, y_train, y_test = train_test_split( 9 iris.data, iris.target, test_size=0.2) 10 11# 分類器を作成する。 12params = {'n_estimators': [10, 50, 100, 300], 13 'max_depth': [3, 5, 10]} 14clf = GridSearchCV(GradientBoostingClassifier(), params) 15clf.fit(x_train, y_train)
# 結果を表示する。 best_clf = clf.best_estimator_ print('best parameters: n_estimators={}, max_depth={}'.format( best_clf.n_estimators, best_clf.max_depth)) print('accuracy: {:.0%}'.format(clf.score(x_test, y_test))) # best parameters: n_estimators=50, max_depth=5 # accuracy: 100% print ("Expected: ", y_test) print ("Predict: ", clf.predict(x_test)) # Expected: [2 0 0 1 0 2 1 1 2 2 0 1 0 1 0 0 2 1 2 2 0 0 1 1 0 2 1 2 0 2] # Predict: [2 0 0 1 0 2 1 1 2 2 0 1 0 1 0 0 2 1 2 2 0 0 1 1 0 2 1 2 0 2]

投稿2018/10/03 04:37

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問