首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sklearn naive bayes模型中拟合时使用序列设置数组元素

在sklearn naive bayes模型中拟合时使用序列设置数组元素
EN

Stack Overflow用户
提问于 2019-12-07 13:54:18
回答 1查看 79关注 0票数 0

我的熊猫数据帧看起来像这样:

代码语言:javascript
复制
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]

当我尝试使用以下参数来拟合此模型时:

代码语言:javascript
复制
features=df.iloc[:,:2].values
output= df.iloc[:,2].values
gnb=GaussianNB()
gnb.fit(features,output)

我得到的错误是:

代码语言:javascript
复制
setting an array element with a sequence

在阅读了一些答案后,我尝试添加0并使所有列表相等,但错误仍然存在。

追加0后的df

代码语言:javascript
复制
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]
EN

回答 1

Stack Overflow用户

发布于 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对每个训练样本只返回一个值。

文档中的示例是一个很好的参考。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59223409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档