You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用sklearn的export_graphviz报错DecisionTreeClassifier不是评估器实例如何解决

问题原因解析
  • 你对第一个报错的根因排查完全错误:第一个字符串拼接类型错误,根源不是model变量的类型问题,而是tree.export_graphviz的class_names参数要求传入字符串列表,你传入的是浮点型的年份列表,方法内部拼接字符串时触发了类型不匹配报错。
  • 第二个报错的直接原因:tree.export_graphviz的第一个参数要求传入已训练的决策树估计器实例,你错误地将模型转成了字符串modelstr传入,不符合参数要求直接报错。
修复方案

按以下两步修改代码即可解决所有报错:

  1. 删除多余的模型转字符串代码,tree.export_graphviz第一个参数直接传入训练好的model实例
  2. 将class_names传入的年份值统一转成字符串,满足参数类型要求
修正后完整代码
import pandas as pd
import sklearn
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier  


f = pd.read_csv("vgsales.csv")
f = f.round(0)    

X = f.drop(columns = ['Rank','Name', 'Platform', 'Year', 'Genre','Publisher','JP_Sales','Other_Sales', 'NA_Sales'])[:11]
y = f['Year'][:11]

model = DecisionTreeClassifier()   
model.fit(X, y)

# 直接传model实例,不要转字符串
tree.export_graphviz(model, out_file = 'FirstModel.dot', 
                     feature_names = ['EU_Sales', 'Global_Sales'], 
                     # 把年份转成字符串,解决第一个类型错误
                     class_names = [str(year) for year in sorted(y.unique())], 
                     label = 'all',
                     rounded = True,
                     filled = True)

内容的提问来源于stack exchange,提问作者sikee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:48:04