问:
请问以下代码为什么报错:
data_F = [['学生','女',12,'否'],
['学生','男',18,'否'],
['老师','女',26,'是'],
['上班族','男',47,'是'],
['上班族','女',36,'是'],
['老师','男',29,'否'],
['学生','女',21,'是']]
df_data = pd.DataFrame(data_F,columns=['职业','性别','年龄','是否已婚'])
df_data[['职业','性别']].values
df_data[['职业','性别','年龄']].values
X=df_data[['职业','性别','年龄']].values
y=df_data['是否已婚'].str.replace('是','1').replace('否','0')
clf=tree.DecisionTreeClassifier(random_state=10)
clf=clf.fit(X,y)
#引入graphviz模块用来导出图,结果图如下所示
import graphviz
dot_data=tree.export_graphviz(clf,out_file=None,
feature_names=['职业','性别','年龄'],
class_names=['否','是'],
filled=True,rounded=True,
special_characters=True)
os.chdir(r'C:\graphviz-2.38\release\bin')
graph=graphviz.Source(dot_data)
graph.view()
答:
这是因为X中含有字符型数据,需要转化为数值型再导入决策树模型,
可以通过pandas的get_dummy方法和sklearn的one-hot来实现。








暂无数据