机器学习中的决策树Python实现

2023-04-11 00:00:00 学习 机器 决策树

决策树是一种机器学习算法,它可以通过将数据集分成更小的子集,然后对每个子集重复这个过程来创建一个树状结构的分类/回归模型。

在本文中,我们将通过Python代码来实现一个简单的决策树。我们将使用一个示例数据集,其中包含了两个特征和四个类别。

首先,我们将加载示例数据集。

from sklearn.datasets import load_iris
iris = load_iris()

X = iris.data
y = iris.target

我们将使用scikit-learn中的DecisionTreeClassifier类实现决策树算法。首先,我们需要将训练数据拆分成训练集和测试集。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

然后,我们可以创建一个DecisionTreeClassifier对象,设置一些超参数,并拟合我们的训练数据。

from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)
clf.fit(X_train, y_train)

我们可以使用score方法来检查模型在测试数据上的表现。

score = clf.score(X_test, y_test)
print("Accuracy:", score)

现在,我们已经训练了一个决策树,并使用测试数据评估了它的性能。接下来,我们将使用决策树来预测新的样本。

new_samples = [[5, 3.6, 1.3, 0.25], [6.7, 3, 5.2, 2.3], [7.2, 3.2, 6, 1.8]]
predictions = clf.predict(new_samples)
print(predictions)

我们可以看到,对于我们给出的三个新样本,决策树预测它们应属于哪个类别。

完整的代码如下:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

# load the iris dataset
iris = load_iris()

# divide the dataset into training and testing data
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# create and train the decision tree classifier
clf = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)
clf.fit(X_train, y_train)

# evaluate the performance of the model on the test set
score = clf.score(X_test, y_test)
print("Accuracy:", score)

# use the model to predict new samples
new_samples = [[5, 3.6, 1.3, 0.25], [6.7, 3, 5.2, 2.3], [7.2, 3.2, 6, 1.8]]
predictions = clf.predict(new_samples)
print(predictions)

这个示例代码展示了如何使用Python和scikit-learn来实现决策树算法,并使用它来预测新的样本。

相关文章