欢迎访问宙启技术站
智能推送

使用sklearn.tree进行决策树分类和回归

发布时间:2024-01-04 10:29:19

决策树是一种常用的机器学习算法,可以用于分类和回归任务。在sklearn库中,提供了一个名为DecisionTreeClassifier的类用于决策树分类任务,以及一个名为DecisionTreeRegressor的类用于决策树回归任务。

下面我们将分别介绍如何使用这两个类进行分类和回归,并给出相应的示例代码。

首先是决策树分类任务。假设我们有一个数据集,其中包含了一些样本数据以及它们的类标签。我们需要训练一个决策树模型来根据样本的特征预测它们的类别。

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

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化决策树分类器
clf = DecisionTreeClassifier()

# 训练模型
clf.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = clf.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

以上代码首先加载了一个著名的鸢尾花数据集,然后将数据集划分为训练集和测试集。接着,我们初始化了一个决策树分类器,并使用训练集进行训练。最后,我们将模型应用于测试集并计算预测准确率。

接下来是决策树回归任务。假设我们有一个数据集,其中包含了一些样本数据以及它们的目标值。我们需要训练一个决策树模型来根据样本的特征预测它们的目标值。

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error

# 加载数据集
boston = load_boston()
X, y = boston.data, boston.target

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化决策树回归器
regressor = DecisionTreeRegressor()

# 训练模型
regressor.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = regressor.predict(X_test)

# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

以上代码首先加载了一个波士顿房价数据集,然后将数据集划分为训练集和测试集。接着,我们初始化了一个决策树回归器,并使用训练集进行训练。最后,我们将模型应用于测试集并计算均方误差。

通过以上示例代码,我们可以看到使用sklearn库的决策树分类器和回归器是非常简单的。根据具体的数据集和任务需求,我们可以通过调整模型的参数以及使用不同的评估指标来进行模型优化和选择。