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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3709閲覧

'LGBMRegressor' object has no attribute 'LGBMRegressor'の意味

kouji_39

総合スコア164

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/05 22:50

1.質問内容
'LGBMRegressor' object has no attribute 'LGBMRegressor'のエラーが
参考コード実行時に現れます。(2.参考コード内の# 最適値による勾配ブースティング回帰の
モデルを作成(エラーが発生するコード)を参照)
どのようの対処したらよいでしょうか。

エラーメッセージは以下のとおりです。

AttributeError Traceback (most recent call last)
<ipython-input-7-74866f059a82> in <module>()
----> 1 lgb = lgb.LGBMRegressor(n_estimators=gscv.best_params_['n_estimators'], max_depth=gscv.best_params_['max_depth'], num_leaves=gscv.best_params_['num_leaves'], learning_rate=gscv.best_params_['learning_rate'],random_state=0)

AttributeError: 'LGBMRegressor' object has no attribute 'LGBMRegressor'

2.参考コード

python

1#lightgbmによる回帰による回帰 2# ライブラリのインポート 3%matplotlib inline 4import matplotlib.pyplot as plt 5import numpy as np 6import lightgbm as lgb 7from sklearn.model_selection import train_test_split 8from sklearn.metrics import mean_squared_error 9from sklearn.metrics import r2_score 10import pandas as pd 11 12#dataset 13from sklearn.datasets import load_boston 14X, y = load_boston(return_X_y=True) 15X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8, random_state=0) 16 17#GSCV 18params = {'n_estimators': [10, 50, 100,1000], 'max_depth': [5, 10, 50], 'num_leaves':[3,6,9], 'learning_rate':[0.05,0.1,0.2]} 19import sklearn 20print(sklearn.__version__) 21from sklearn.model_selection import GridSearchCV 22# 勾配ブースティング回帰のモデルを作成 23lgb = lgb.LGBMRegressor(random_state=0) 24gscv = GridSearchCV(lgb, param_grid=params, verbose=1, 25 cv=3, scoring='neg_mean_squared_error') 26gscv.fit(X_train, y_train) 27print('max_depth: ',gscv.best_params_['max_depth']) 28print('n_estimators: ',gscv.best_params_['n_estimators']) 29print('num_leaves: ',gscv.best_params_['num_leaves']) 30print('learning_rate: ',gscv.best_params_['learning_rate']) 31 32# 最適値による勾配ブースティング回帰のモデルを作成(エラーが発生するコード) 33lgb = lgb.LGBMRegressor(n_estimators=gscv.best_params_['n_estimators'], max_depth=gscv.best_params_['max_depth'], num_leaves=gscv.best_params_['num_leaves'], learning_rate=gscv.best_params_['learning_rate'],random_state=0) 34 35#学習モデル作成とmse計算 36lgb.fit(X_train, y_train) 37y_pred2 = lgb.predict(X_test) 38lgb_mse = mean_squared_error(y_test, y_pred2) 39print('ligtgbm MSE: ', lgb_mse)

3.補足情報(FW/ツールのバージョンなど)
開発環境:Google Colaboratory
プログラム言語:python3
OS:windows10 Home
CPU:Intel(R) Core(TM) i7-7500U CPU@2.70GHz 2.90GHz

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下のところで、変数lgbを書き換えてしまっています。

Python

1# 勾配ブースティング回帰のモデルを作成 2lgb = lgb.LGBMRegressor(random_state=0)

エラー発生の箇所で、書き換えたlgbをもとに再度LGBMRegressorを呼び出しています。よって、AttributeError: 'LGBMRegressor' object has no attribute 'LGBMRegressor'(LGBMRegressorは属性LGBMRegressorを持っていません)というエラーがでます。

代入される変数名は、モジュール別名と同じにしないで、別にしましょう。

投稿2021/04/05 23:15

編集2021/04/05 23:16
toast-uz

総合スコア3266

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

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

kouji_39

2021/04/05 23:46

下記のように、lgbをmodelに置き換えてみたら、うまくいきました。 ありがとうございます。 # 勾配ブースティング回帰のモデルを作成 lgb = lgb.LGBMRegressor(random_state=0) gscv = GridSearchCV(lgb, param_grid=params, verbose=1, cv=3, scoring='neg_mean_squared_error') 修正後) # 勾配ブースティング回帰のモデルを作成 model = lgb.LGBMRegressor(random_state=0) gscv = GridSearchCV(model, param_grid=params, verbose=1, cv=3, scoring='neg_mean_squared_error') # 最適値による勾配ブースティング回帰のモデルを作成(エラーが発生するコード) lgb = lgb.LGBMRegressor(n_estimators=gscv.best_params_['n_estimators'], max_depth=gscv.best_params_['max_depth'], num_leaves=gscv.best_params_['num_leaves'], learning_rate=gscv.best_params_['learning_rate'],random_state=0) 修正後) model = lgb.LGBMRegressor(n_estimators=gscv.best_params_['n_estimators'], max_depth=gscv.best_params_['max_depth'], num_leaves=gscv.best_params_['num_leaves'], learning_rate=gscv.best_params_['learning_rate'],random_state=0) model.fit(X_train, y_train)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問