📅  最后修改于: 2023-12-03 15:22:36.529000             🧑  作者: Mango
决策树分类器(Decision Tree Classifier)是一种基于树结构进行分类的算法,其目的是找出一系列规则,把数据集划分成更小的子集,直到所有子集都可以被单独分类。在每一次划分时,决策树分类器会选择最最能够区分不同类别的特征进行划分。
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier()
决策树分类器的模型需要训练数据集,所以我们需要将数据集分为训练集和测试集,并将训练集拟合到分类器中。这可以通过 fit()
方法来完成。下面是一个例子:
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
iris = datasets.load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=0)
dtc.fit(X_train, y_train)
有了训练好的模型,我们可以用它来对测试集进行预测。这可以通过 predict()
方法来完成。下面是一个例子:
y_pred = dtc.predict(X_test)
我们可以使用不同的指标来评估模型的表现。例如,常见的指标包括准确率、查准率、查全率和 F1 值等。下面是一个例子:
from sklearn.metrics import accuracy_score
acc = accuracy_score(y_test, y_pred)
print(f"Accuracy: {acc}")
决策树分类器具有许多可调参数,可以通过其构造函数或属性进行设置。例如:
criterion
:用于衡量特征的质量,可以选择 'gini' 或 'entropy'。默认值为 'gini'。max_depth
:树的最大深度。默认值为 None,表示树可以无限制地增长。min_samples_split
:决定了分裂一个内部节点需要多少个样本。默认值为 2。min_samples_leaf
:叶节点所需的最小样本数。默认值为 1。max_features
:寻找最佳分割时需要考虑的特征数。可以是整数、浮点数、字符串或 None。默认值为 None,表示考虑所有特征。决策树分类器是一种简单而强大的机器学习算法。它具有易于理解、解释和可视化的优点。在实践中,它通常用于小型数据集和非常稳定的问题上。它在处理噪声数据和复杂的高维数据集时往往表现不佳。