使用Pipeline训练后可视化决策树报错:'DecisionTreeClassifier'不可下标访问
问题解决:Pipeline中决策树可视化的TypeError错误
错误原因:你试图用clf['classifier']获取Pipeline里的决策树模型,但scikit-learn的Pipeline对象本身不支持下标访问(即不能像字典那样通过键取值),因此触发'DecisionTreeClassifier' object is not subscriptable错误。
解决方法:使用Pipeline的named_steps属性来获取指定名称的步骤,这是scikit-learn官方推荐的访问Pipeline内部组件的方式。
修正后的可视化代码行:
tree.plot_tree(clf.named_steps['classifier'])
完整的修正后关键代码片段:
clf.fit(X_train, y_train) model = clf.score(X_test, y_test) print(f"Model score: {model}") # accuracy # 修正后获取决策树模型并可视化 tree.plot_tree(clf.named_steps['classifier'])
补充说明:named_steps是Pipeline的一个属性,返回一个字典,键是你定义Pipeline时给每个步骤起的名称(比如这里的'preprocessor'和'classifier'),值是对应的步骤实例。通过这个字典你可以方便地访问Pipeline中的任何组件。
内容的提问来源于stack exchange,提问作者Jake Smith
相关产品推荐
相关产品推荐

