机器学习时出现 could not convert string to float:‘xxx‘解决方法

先放结论:数据未进行One hot code

解决方法:使用这个函数pd.get_dummies()对数据进行处理

案例:

#直接对信息进行归一化、标准化或机器学习

from sklearn.neighbors import KNeighborsClassifier
knn =  KNeighborsClassifier()
#训练数据
knn.fit(x_train,y_train)

 因为:

 

 因为类型不能转换为float等数字类型,不是数字直接进行机器学习是不行的,同理直接进行归一化、标准化同样不行。报错相同。

 加入函数

features = pd.get_dummies(features)

#再进行学习或数据预处理

features_temp = StandardScaler().fit_transform(features)#去均值和方差归一化
knn.fit(x_train,y_train)#训练数据

不报错。

看看One_hot_encode化处理前后的数据:

处理前

 处理后

 

第一次写博客,很混乱,欢迎得到批评和指正

  • 13
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值