机器学习中的决策树Python实现
决策树是一种机器学习算法,它可以通过将数据集分成更小的子集,然后对每个子集重复这个过程来创建一个树状结构的分类/回归模型。
在本文中,我们将通过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来实现决策树算法,并使用它来预测新的样本。
相关文章