Как исправить ошибку индексации в Numpy для использования в модели машинного обучения? - PullRequest
1 голос
/ 27 апреля 2019

Я пытался предсказать вероятность того, что человек употребит определенный наркотик. Одним из важных прогнозов является ошибка IndexError.

Это для прогноза. Я использовал эту структуру без проблем на разных прогнозах без проблем.

import numpy as np
import pandas as pd
import sklearn.ensemble as skle
drug = pd.read_sas('C:/Users/hamee/Downloads/DUQ_I.xpt')
mod = skle.RandomForestClassifier()
fitmod = mod.fit(drug2[["DUQ200", "DUQ240", "DUQ250", "DUQ290", "DUQ330", "DUQ370"]], drug2["DUQ240"])
Pred = fitmod.predict_proba(drug2[["DUQ200", "DUQ240", "DUQ250", "DUQ290", "DUQ330", "DUQ370"]])
Brier = np.mean((Pred[:,1]-drug2["DUQ290"]**2))

Я ожидал вывод десятичного или большого числа. Вывод был:

IndexError                                Traceback (most recent call last)
<ipython-input-19-90c24bde1c32> in <module>
----> 1 Brier = np.mean((Pred[:,1]-drug2["DUQ290"]**2))

IndexError: index 1 is out of bounds for axis 1 with size 1

1 Ответ

1 голос
/ 27 апреля 2019

Предполагая, что все, вплоть до Pred, работает правильно

Ваш Pred является одномерным массивом, попробуйте Pred.shape, он должен вернуть кортеж (length, ).Следовательно, вам нужно только обновить

Brier = np.mean((Pred-drug2["DUQ290"]**2))

: поскольку ваш Pred.shape равен (539, 1), он должен быть:

Brier = np.mean((Pred[:,0]-drug2["DUQ290"]**2))

, так как все индексы списка начинаются с 0.

...