ValueError:在将决策树的功能转换为整数后,无法将字符串转换为浮点值



我使用以下代码将数据集特性转换为整数:

car_df = pd.DataFrame({'Integer Feature': [0,1,2,3,4,5], 
'Categorical Feature': ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety']})

这起到了作用。现在,我正在尝试创建一个决策树,并使用以下代码:

from sklearn.tree import DecisionTreeClassifier 
dtree = DecisionTreeClassifier() 
dtree.fit(car_df, y)

但是,我收到一个错误,它指出:ValueError: could not convert string to float: 'buying'"购买"是数据集中的第一个分类特征。有六个分类特征。

我认为这不会是一个问题,因为我将功能转换为整数。有人知道如何解决这个问题吗?

我刚刚提取了这个汽车数据集,所以我对它的内容有了更好的了解。根据文档,以下是具有可能值的列:

buying       v-high, high, med, low
maint        v-high, high, med, low
doors        2, 3, 4, 5-more
persons      2, 4, more
lug_boot     small, med, big
safety       low, med, high

因此,所有这些列都可以包含字符串,并且在将数据集传递给模型的fit()方法之前,它们都需要转换为数字类型。

根据Pandas关于get_dummies()方法的文件:https://pandas.pydata.org/docs/reference/api/pandas.get_dummies.html:

一旦在数据帧中有了原始数据集(称之为df(,就可以将其传递给.get_dummies()方法,如下所示:

import pandas as pd
df_with_dummies = pd.get_dummies(df)

此代码将把任何具有对象或类别数据类型的列转换为整数伪值,并使用{原始列名}_{原始值}约定为每个新列命名。

最新更新