首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有tips数据集的KNN

具有tips数据集的KNN
EN

Stack Overflow用户
提问于 2019-12-15 18:58:06
回答 2查看 65关注 0票数 2

我尝试将KNN应用于tips dataset,并按如下方式映射对象:

代码语言:javascript
复制
f.Male=df.Gender.map({'Female':0,'Male':1})
df.Smokes = df.Smoker.map({'No': 0, 'Yes': 1})
df.Dinner = df.Time.map({'Lunch': 0, 'Dinner': 1})
df.Day_w = df.Day.map({'Sun': 0, 'Mon': 1, 'Tue' : 2, 'Wed' : 3, 'Thu' : 4, 'Fri': 5, 'Sat': 6 })

我的输入和输出是,

代码语言:javascript
复制
inputs = df[['Bill', 'Party', 'Gender', 'Time']]
outputs = df['Tip']

knn = nei.KNeighborsClassifier(n_neighbors=4)

工作,但当我调用

代码语言:javascript
复制
knn.fit(inputs, outputs)

我得到了

代码语言:javascript
复制
   ValueError: could not convert string to float: 'Female'

欢迎任何建议

EN

回答 2

Stack Overflow用户

发布于 2019-12-15 19:13:00

值错误表明,输入值包含字符串"female“(如果值真的都是数字,请检查您的数据框)。

我希望您的列"Gender“列映射不起作用。在您分配用于将"Gender“列映射到"Male”列(而不是"Gender“列)的代码中,尝试将代码的第一行更改为:

代码语言:javascript
复制
df.Gender=df.Gender.map({'Female':0,'Male':1})

并检查变量“input”和“output”中的值是否都是数值。

票数 1
EN

Stack Overflow用户

发布于 2019-12-15 19:14:51

在准备过程中,将“时间”列的数据映射到“晚餐”,将“性别”映射到“男性”。在选择输入时,不使用新创建的列,而使用原始列。试着改变这一点!

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

https://stackoverflow.com/questions/59343199

复制
相关文章

相似问题

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