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

为何打印DecisionTreeClassifier未显示详细参数信息?

问题:打印DecisionTreeClassifier为何不显示详细参数?

我运行以下代码:

import pandas as pd
import numpy as np
from sklearn import tree
fruit_data_set = pd.DataFrame()
# 1代表苹果,0代表橙子
fruit_data_set["fruit"] = np.array([   1,   1,   1,   1,   1,   0,   0,   0,   0,   0])
fruit_data_set["weight"] = np.array([170, 175, 180, 178, 182, 130, 120, 130, 138, 145])
fruit_data_set["smooth"] = np.array([  9,  10,   8,   8,   7,   3,   4,   2,   5,   6])
fruit_classifier = tree.DecisionTreeClassifier()
fruit_classifier.fit(fruit_data_set[["weight", "smooth"]], fruit_data_set["fruit"])

print(fruit_classifier)

得到的输出是:

DecisionTreeClassifier()

但教程中的预期输出是包含所有默认参数的详细格式:

DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
            max_features=None, max_leaf_nodes=None, min_samples_leaf=1,
            min_samples_split=2, min_weight_fraction_leaf=0.0,
            presort=False, random_state=None, splitter='best')

请问为什么打印DecisionTreeClassifier对象时看不到这些详细参数?


解答

这是scikit-learn版本迭代带来的输出格式差异:

  • 旧版本的scikit-learn在打印模型对象时,会列出所有参数(包括默认值),所以教程里会显示完整的参数列表。
  • 新版本的scikit-learn做了优化,打印模型时只会展示非默认参数,如果所有参数都用默认值,就会输出DecisionTreeClassifier()这种简洁格式。

如果需要查看完整的参数信息,可以用以下两种方法:

  • 调用get_params()方法,返回包含所有参数及其值的字典:
    print(fruit_classifier.get_params())
    
  • 使用sklearn的内部打印工具输出格式化的参数列表:
    from sklearn.utils._pprint import _pprint
    
    _pprint(fruit_classifier.get_params(), indent=4)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:40:41