[解決済み] IndexError: スカラー変数への無効なインデックスを修正する方法
2022-03-03 21:33:29
質問
このコードはエラーを発生させます。
IndexError: invalid index to scalar variable.
をラインアップしています。
results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y in y_test]))
どうすれば直るのか?
import pandas as pd
import numpy as np
from sklearn import ensemble
from sklearn import cross_validation
def ToWeight(y):
w = np.zeros(y.shape, dtype=float)
ind = y != 0
w[ind] = 1./(y[ind]**2)
return w
def RMSPE(y, yhat):
w = ToWeight(y)
rmspe = np.sqrt(np.mean( w * (y - yhat)**2 ))
return rmspe
forest = ensemble.RandomForestRegressor(n_estimators=10, min_samples_split=2, n_jobs=-1)
print ("Cross validations")
cv = cross_validation.KFold(len(train), n_folds=5)
results = []
for traincv, testcv in cv:
y_test = np.expm1(forest.fit(X_train[traincv], y_train[traincv]).predict(X_train[testcv]))
results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y in y_test]))
testcv
です。
[False False False ..., True True True]
どのように解決するのですか?
スカラー値(反復不可能な値)へのインデックスを作成しようとしている。
[y[1] for y in y_test]
# ^ this is the problem
を呼び出すと
[y for y in test]
ではすでに値に対して繰り返し処理を行なっているので
y
.
あなたのコードは、次のようにしようとしているのと同じです。
y_test = [1, 2, 3]
y = y_test[0] # y = 1
print(y[0]) # this line will fail
結果の配列に何を入れようとしているのかよくわかりませんが、とりあえずは
[y[1] for y in y_test]
.
y_testの各yをresultsに追加したい場合は、リスト内包をさらに拡張して以下のようにします。
[results.append(..., y) for y in y_test]
あるいは、forループを使うだけです。
for y in y_test:
results.append(..., y)
関連
-
Pythonによるjieba分割ライブラリ
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] 変数を参照渡しする方法を教えてください。
-
[解決済み] 環境変数の値にアクセスする方法
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] テキストファイルを文字列変数に読み込んで、改行を除去するには?
-
[解決済み] 変数が存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] 変数の値からpandas DataFrameを構築すると、「ValueError: すべてのスカラー値を使用する場合は、インデックスを渡す必要があります。"
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
python implement mysql add delete check change サンプルコード
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】Flaskのテンプレートが見つからない【重複あり