【Python实例】如何用Python实现机器学习中的决策树?
决策树是机器学习中一个常用的分类算法。决策树算法的核心思想是通过不断地对数据进行切分,将数据划分到不同的类别中。在本文中,我们将学习如何用Python实现决策树算法。
1. 准备数据
在使用决策树算法之前,我们需要准备数据集。本文中我们将使用sklearn自带的数据集iris,其中包括了150个样本,每个样本有4个特征和一个标签,共3个标签。代码如下:
```
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
```
2. 划分训练集与测试集
在我们开始训练模型之前,需要将数据集划分为训练集和测试集。本文将数据集中的70%用于训练,30%用于测试。代码如下:
```
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
3. 训练模型
在准备好数据后,我们需要建立一个决策树模型用于分类。代码如下:
```
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
```
4. 测试模型
训练模型后,我们需要使用测试集进行模型评估。代码如下:
```
from sklearn.metrics import accuracy_score
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
5. 可视化决策树
最后,我们可以使用Graphviz可视化决策树。代码如下:
```
from sklearn.tree import export_graphviz
import graphviz
dot_data = export_graphviz(clf, out_file=None,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
graph = graphviz.Source(dot_data)
graph.render('iris')
```
这段代码将生成一个名为iris的pdf文件,其中包含了决策树的可视化图形。在这个图形中,我们可以看到每个节点的属性,左侧的分支代表该属性大于或等于某个值,右侧的分支代表该属性小于某个值。
总结
本文介绍了如何使用Python实现决策树算法,并通过实例演示了如何使用sklearn库中的DecisionTreeClassifier类对Iris数据集进行分类。同时,我们还演示了如何使用Graphviz对决策树进行可视化,希望本文对大家有所帮助。