Python 如何修复Numpy中的索引错误以用于机器学习模型?

Python 如何修复Numpy中的索引错误以用于机器学习模型?,python,numpy,machine-learning,probability,Python,Numpy,Machine Learning,Probability,我试图预测一个人使用某种药物的可能性。一个重要的预测是显示一个索引器 这是一个预测。我在不同的预测中使用了这种结构,没有问题 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[

我试图预测一个人使用某种药物的可能性。一个重要的预测是显示一个索引器

这是一个预测。我在不同的预测中使用了这种结构,没有问题

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))
我希望输出一个十进制或一个大数字,输出是:
索引器错误回溯(最近一次调用)
在里面
---->1 Brier=np.平均值((前药[:,1]-药物2[“DUQ290”]**2))
索引器:索引1超出大小为1的轴1的界限

假设您的
Pred
的所有功能都正常工作

您的
Pred
是一个一维数组,请尝试
Pred.shape
,它应该返回
(长度,)
的元组。因此,您只需要

Brier = np.mean((Pred-drug2["DUQ290"]**2))
更新:由于您的
Pred.shape
(539,1)
,因此它应该是:

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

由于所有列表索引都从该行(
Brier=…
)前面的
0
开始,所以打印
Pred.shape
。结果如何?Druge2[“DUQ290”]的形状是什么??请尝试
Pred[:,0]-…
Pred.shape=(539,1)我刚刚尝试了“Pred[:,0],效果很好。感谢您的帮助数据不是一维数组,这是此更改后的输出:---------------------------------------------------------------------------------------------------------------异常回溯(最近一次调用)在---->1 Brier=np.mean((Pred-drug2[“DUQ290”]**2))~\Anaconda3\Exception:数据必须是一维的,也是什么是
Pred.shape
?Pred.shape=(539,1)解决这个问题的正确方法是:
Pred[:,0]
Brier = np.mean((Pred[:,0]-drug2["DUQ290"]**2))