前提・実現したいこと
ランダムフォレスト回帰を使って機械学習を試みている。
分析コンペなので、訓練データを訓練データとテストデータに分けて学習モデルを作成した。現在は、作ったモデルで、与えられたテストデータの目的変数を予測しようとしている。
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- IndexingError Traceback (most recent call last) <ipython-input-62-686d210ba347> in <module>() 1 # 作ったモデルをテスト用データに適用してみる ----> 2 Pred = forest.predict(test.loc[:, ["OverallQual", "YearBuilt", "YearRemodAdd", "1stFlrSF", "GrLivArea", "FullBath", "GarageCars"]].values.reshape(-1,)) ~\Anaconda3\lib\site-packages\pandas\core\indexing.py in __getitem__(self, key) 1470 except (KeyError, IndexError): 1471 pass -> 1472 return self._getitem_tuple(key) 1473 else: 1474 # we by definition only have the 0th axis ~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_tuple(self, tup) 873 874 # no multi-index, so validate all of the indexers --> 875 self._has_valid_tuple(tup) 876 877 # ugly hack for GH #836 ~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _has_valid_tuple(self, key) 218 for i, k in enumerate(key): 219 if i >= self.obj.ndim: --> 220 raise IndexingError('Too many indexers') 221 try: 222 self._validate_key(k, i) IndexingError: Too many indexers
該当のソースコード
Python
1# X,yにデータを代入 2X = train.loc[:, ["OverallQual", "YearBuilt", "YearRemodAdd", "1stFlrSF", "GrLivArea", "FullBath", "GarageCars"]].values 3y = train["SalePrice"].values 4X_train, X_test, y_train, y_test = train_test_split(X,y, test_size= 0.4, random_state=1) 5 6from sklearn.ensemble import RandomForestRegressor 7 8# ランダムフォレスト回帰のクラスをインスタンス化 9forest = RandomForestRegressor(n_estimators=100, criterion="mse", random_state=1, n_jobs=-1) 10 11forest.fit(X_train, y_train) 12y_train_pred = forest.predict(X_train) 13y_test_pred = forest.predict(X_test) 14 15# 作ったモデルをテスト用データに適用してみる 16Pred = forest.predict(test.loc[:, ["OverallQual", "YearBuilt", "YearRemodAdd", "1stFlrSF", "GrLivArea", "FullBath", "GarageCars"]].values) 17
試したこと
訓練データを学習させる際に、
forest.fit(X_train, y_train.reshape(-1,))
としてみたが改善されず。
補足情報(FW/ツールのバージョンなど)
Pythonもライブラリも最新のはずです。
訓練データのデータフレームは
Id MSSubClass MSZoning LotFrontage LotArea Street Alley LotShape LandContour Utilities ... PoolArea PoolQC Fence MiscFeature MiscVal MoSold YrSold SaleType SaleCondition SalePrice 0 1 60 RL 65.0 8450 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 2 2008 WD Normal 208500 1 2 20 RL 80.0 9600 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2007 WD Normal 181500 2 3 60 RL 68.0 11250 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 9 2008 WD Normal 223500 3 4 70 RL 60.0 9550 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 2 2006 WD Abnorml 140000 4 5 60 RL 84.0 14260 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 12 2008 WD Normal 250000 5 rows × 81 columns
となっていて、訓練データ、テストデータ共に、モデルに使用する説明変数の欠損値は0個の状態になってます。
回答1件
あなたの回答
tips
プレビュー