python - 如何修复 Numpy 中的索引错误以用于机器学习模型?
问题描述
我试图预测一个人使用某种药物的概率。重要的预测之一是显示 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
解决方案
假设一切Pred
正常
你Pred
是一个一维数组,试试Pred.shape
,它应该返回一个元组(length, )
。因此你只需要做
Brier = np.mean((Pred-drug2["DUQ290"]**2))
更新:因为你的Pred.shape
is (539, 1)
,它应该是:
Brier = np.mean((Pred[:,0]-drug2["DUQ290"]**2))
因为所有列表索引都从0
.
推荐阅读
- security - 使用 NGINX 屏蔽 http 流量中的目标服务器 IP 地址
- wpf - 如何将多个 DataSet 列值绑定到 GroupStyle TextBlock
- ios - 如何使用 CoreData 实例化 UIHostingController?
- amazon-elb - Splunk AWS ALB 日志未正确解析
- c++ - 如何在不知道维度的情况下在 C++ 中传递二维数组
- java - Jackson 完全忽略 Jaxb XML 相关的注解
- firebase - 在 Snapshot.data.lenght 中定义 Firestore 文档的数量
- c - 为什么危险?
- arm - 使用 OpenOcd 刷新 ELF 文件会导致将 ELF 标头写入 Flash
- c# - 需要加载表中的所有行,而某些行在 EF 中具有空值