📜  决策树分类器 sklearn (1)

📅  最后修改于: 2023-12-03 15:22:36.529000             🧑  作者: Mango

决策树分类器 sklearn

简介

决策树分类器(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,表示考虑所有特征。
总结

决策树分类器是一种简单而强大的机器学习算法。它具有易于理解、解释和可视化的优点。在实践中,它通常用于小型数据集和非常稳定的问题上。它在处理噪声数据和复杂的高维数据集时往往表现不佳。