【发布时间】:2019-09-04 17:58:18
【问题描述】:
我正在为分类器模型和一些重新调整值创建导出。在一位研究该领域的博士生的指导下,他为我提供了创建一个重新缩放字典供我们使用的代码。 相关代码:
PROBA_RESCALING_N_SAMPLES = 100
PROBA_RESCALING_WINDOW_RADIUS = 0.05
y_proba = classifier.predict_proba(x)
y_proba_rescaling = {proba: y[np.abs(y_proba - proba) <= PROBA_RESCALING_WINDOW_RADIUS].mean() for proba in np.linspace(0, 1, PROBA_RESCALING_N_SAMPLES)}
错误发生在最后一行,它说:
IndexError: 数组索引过多
我查看了这里的论坛以获得一些答案,并与朋友坐了一个多小时,但我仍然无法理解为什么会导致该错误。昨天的代码看起来还不错,今天突然就出问题了。
编辑:我错过了一些我忘记提及的重要细节:
1. Y 变量是一个包含 0 和 1 的数组,它代表我的数据集中用于 ML 学习的 Y 轴。
2. 我已将问题缩小到y[np.abs(y_proba - proba) <= PROBA_RESCALING_WINDOW_RADIUS] 部分。单独运行它会产生错误。
【问题讨论】:
-
该行中唯一的索引是
y[...]。为什么你没有告诉我们关于那个数组的任何事情?表达式中的其他数组/变量的信息可能会有所帮助。更好的是,提供一个生成错误的最小示例。 -
感谢您的评论!我已经纠正了我的错误,我希望它会更容易理解。
-
y的shape是什么?np.abs(y_proba - proba) <= PROBA_RESCALING_WINDOW_RADIUS产生什么? (形状,数据类型)?
标签: python python-3.x numpy scikit-learn