我的熊猫数据帧看起来像这样:
0 [0,1,2] [1,2,3] [1,2,3]
1 [0,1] [1,2] [1,2]
2 [0,1,2,3] [1,2,3,4] [1,2,3,4]当我尝试使用以下参数来拟合此模型时:
features=df.iloc[:,:2].values
output= df.iloc[:,2].values
gnb=GaussianNB()
gnb.fit(features,output)我得到的错误是:
setting an array element with a sequence在阅读了一些答案后,我尝试添加0并使所有列表相等,但错误仍然存在。
追加0后的df
0 [0,1,2,0] [1,2,3,0] [1,2,3,0]
1 [0,1,0,0] [1,2,3,0] [1,2,0,0]
2 [0,1,2,3] [1,2,3,4] [1,2,3,4]发布于 2019-12-07 14:56:45
从docs中,GaussianNB fit()方法接受两个参数x,y,其中x应该是[n_samples, n_features]的形状,这意味着一个二维数组,而y应该是[n_samples]的形状,这是一个一维数组。
执行features=df.iloc[:,:2].values操作时,它会返回一个数据类型为object的3D数组,因此您必须首先将它们转换为整数,然后再找到将它们转换为2D数组的方法
在y参数中,您还必须将它们转换为int,然后转换为一维数组,因为GaussianNB对每个训练样本只返回一个值。
文档中的示例是一个很好的参考。
https://stackoverflow.com/questions/59223409
复制相似问题