DecisionTreeClassifier()
是 scikit-learn 库中的决策树分类器,它有几个关键参数,用于控制模型的行为和性能。以下是其中一些重要的参数:
-
criterion :用于划分节点的标准,可以是 'gini'(基尼指数)、'entropy'(信息增益),表示对数据纯度的衡量。默认值是 'gini'。
-
splitter :分割节点的方式,可以选择 'best'(选择最优特征划分)、'random'(随机选取)。 默认值是 'best'。
-
max_depth :树的最大深度,如果为 None 则不限制深度,直到所有叶子都是纯样本,即叶子节点中所有的样本点都属于同一个类别。或者每个叶子节点包含的样本数小于 min_samples_split。默认值是 None。
-
min_samples_split :分裂一个内部节点所需的最小样本数。如果为整数,则min_samples_split就是最少样本数。如果为浮点数(0到1之间),则每次分裂最少样本数为 ceil(min_samples_split * n_samples)。默认值是 2。
-
min_samples_leaf :每个叶节点至少需要的最小样本数。如果为整数,则min_samples_split 就是最少样本数。如果为浮点数(0到1之间),则每个叶子节点最少样本数为 ceil(min_samples_leaf * n_samples)。默认值是 1。
-
max_features :若非 None,限制考虑的特征数。可以选择 'auto'(选择最优数量的特征),'all'(使用所有可用的特征)或一个整数值。如果为整数,每次分裂只考虑 max_features个特征;如果为浮点数(0到1之间),每次切分只考虑 int(max_features * n_features) 个特征。默认值是 None (和 'all' 一样,使用全部特征)。
-
random_state :用于随机化的种子,保证结果的可重复性。默认值是 None。
-
class_weight :处理类别不平衡的选项,如 'default'、'balanced' 或自定义权重列表。默认值是 None (每个类别的权重都为1)。
-
presort :是否先对数据进行排序再进行划分,对于大样本集可能会提高效率。对于大数据集会减慢总体的训练过程。如果class_weight='balanced',则分类的权重与样本中每个类别出现的频率成反比:n_samples / (n_classes * np.bincount(y))。默认值是 False。