Machine learning 我当时正在使用GridSearchCV训练一个Ann机器学习模型,结果被GridSearchCV中的一个索引器卡住了

Machine learning 我当时正在使用GridSearchCV训练一个Ann机器学习模型,结果被GridSearchCV中的一个索引器卡住了,machine-learning,keras,scikit-learn,neural-network,Machine Learning,Keras,Scikit Learn,Neural Network,我的模型开始训练,执行了一段时间后出现了一个错误:- 索引器:索引37超出大小为37的轴0的界限 它对我的模型正确执行,而不使用带有固定参数的gridsearchCV 这是我的密码 来自keras.wrappers.scikit\u了解导入KerasClassifier 从sklearn.model_选择导入GridSearchCV 从keras.models导入顺序 从keras.layers导入稠密 def构建分类器(优化器、nb_层、单位): 分类器=顺序() add(密集(单位=单位,

我的模型开始训练,执行了一段时间后出现了一个错误:- 索引器:索引37超出大小为37的轴0的界限

它对我的模型正确执行,而不使用带有固定参数的gridsearchCV

这是我的密码

来自keras.wrappers.scikit\u了解导入KerasClassifier
从sklearn.model_选择导入GridSearchCV
从keras.models导入顺序
从keras.layers导入稠密
def构建分类器(优化器、nb_层、单位):
分类器=顺序()
add(密集(单位=单位,内核\初始值设定项='uniform',激活='relu',输入\尺寸=14))
i=1

而i错误
索引器错误:索引37超出大小为37的轴0的界限
意味着对象中没有索引为37的元素

在python中,如果有一个类似于数组或列表的对象,它的元素以数字形式索引,如果它有
n
元素,索引将从
0
变为
n-1
(这是一般情况,在数据帧中重新索引除外)


因此,如果您有37个元素,则只能从0-36中检索元素。

这是一个具有大量类(38个类)的多类分类器。这似乎不是通过分层抽样来分割数据集,可能是因为您没有足够的数据和/或您的数据集不是类平衡的

根据报告:

对于整数/无输入,如果估计器是分类器,y是 使用二元或多类分层折叠。在所有其他方面 在案例中,使用KFold

通过使用分类交叉熵,将目标(类向量(整数))转换为二进制类矩阵。由于有38个类,每个目标将被转换为一个维度为38的二进制向量(索引从0到37)


我猜在某些拆分中,验证集没有来自所有38个类的样本,因此目标被转换为维度<38的向量,但由于GridSearchCV与来自所有38个类的样本相匹配,它需要维度=38的向量,这会导致此错误。

查看y_序列的形状。它必须是某种形状(,37)

欢迎光临;请将错误消息以文本形式复制并粘贴到帖子中-查看原因。