Как исправить IndexError: неверный индекс скалярной переменнойPython

Программы на Python
Anonymous
Как исправить IndexError: неверный индекс скалярной переменной

Сообщение Anonymous »

Этот код генерирует ошибку:

IndexError: invalid index to scalar variable.


в строке: results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y в 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]


Подробнее здесь: https://stackoverflow.com/questions/329 ... r-variable

Вернуться в «Python»