在机器学习领域,寻找最适合给定数据集的高效算法是开发优秀模型的关键。决策树算法就是这样一种适用于分类和回归问题的算法。它模拟人类的决策过程,因此易于理解。决策树的逻辑结构类似于流程图,使得信息的可视化和提取变得简单。
本文旨在介绍决策树分类算法、如何从头构建决策树、相关术语、随机森林与决策树的区别以及决策树的Python代码实现。
决策树是一种监督学习算法,用于分类和回归任务。它由节点组成,分支依赖于多个因素,直到达到阈值。决策树包括根节点、子节点和叶节点。
每个决策树由以下元素组成:
构建决策树时,关键是从数据集的特征列表中选择最佳属性作为根节点和子节点。这一选择通过属性选择度量(ASM)技术实现。ASM帮助为决策树的相应节点选择最佳特征。ASM有两种技术:
任何决策树算法的基本思想如下:
随机森林和决策树都是机器学习中使用的树方法。决策树通过逐一处理数据集中的每个特征来做出预测。而随机森林则是一组决策树的集合,它们一起训练,使用数据集中特征的随机顺序。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
raw_data = pd.read_csv('kyphosis.csv')
print(raw_data.columns)
raw_data.info()
sns.pairplot(raw_data, hue = 'Kyphosis')
from sklearn.model_selection import train_test_split
x = raw_data.drop('Kyphosis', axis = 1)
y = raw_data['Kyphosis']
x_training_data, x_test_data, y_training_data, y_test_data = train_test_split(x, y, test_size = 0.3)
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(x_training_data, y_training_data)
predictions = model.predict(x_test_data)
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
print(classification_report(y_test_data, predictions))
print(confusion_matrix(y_test_data, predictions))