在使用scikit-learn的SVM分类器时出现 ValueError: setting an array element with a sequence.

在使用scikit-learn的SVM分类器时出现 ValueError: setting an array element with a sequence.


网上不少人都写到这种错误,但是这种错误的发生环境不一样,原因也完全不一样,这种分类器使用时发生的这种错误之前我也找了很久都没有找到。解决了之后索性记录一下,也希望能帮大家节省时间。

原因

主要就是因为传入分类器的训练数据要求都是float或者int,而你的训练数据中包含其他类型的数据,比如pandas的object或者是bool甚至是NaN。如果你的数据里面所有元素都是可以进行运算的数字(float或者int),那不会出现这种问题。

解决方案

  1. 先找出传入数据的数据类型不是int或者float的元素。
  2. 想办法把那些元素的数据类型改成int或float,NaN就填充,实在不行就直接删,然后填充一个float或int数据进去。总之一定要保证你的数据里面所有元素都是可以进行运算的数字。

实例

省去前面数据创建的过程,之后数据的样子会给出来
在这里插入图片描述
出现以下错误
在这里插入图片描述

看一下数据啥样子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值