📅  最后修改于: 2023-12-03 15:38:35.765000             🧑  作者: Mango
随机树(Random Tree)是一种常用的机器学习算法,常用于分类和回归问题。它是一种集成学习算法,通过将多个决策树集成起来,来提高模型预测的准确性和泛化性能。本文将介绍如何在Python中使用随机树。
使用随机树需要安装scikit-learn库。可以使用以下命令进行安装:
!pip install scikit-learn
首先,我们需要加载一个数据集。这里以Iris数据集为例。Iris数据集是一个经典的分类问题数据集。该数据集包含了3类,每类50个样本。每个样本有4个特征,包括花萼长度、花萼宽度、花瓣长度、花瓣宽度。
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
# 打印数据集的描述信息
print(iris.DESCR)
输出结果:
Iris Plants Database
====================
Notes
-----
Data Set Characteristics:
:Number of Instances: 150 (50 in each of three classes)
:Number of Attributes: 4 numeric, predictive attributes and the class
:Attribute Information:
- sepal length in cm
- sepal width in cm
- petal length in cm
- petal width in cm
- class:
- Iris-Setosa
- Iris-Versicolour
- Iris-Virginica
:Summary Statistics:
============== ==== ==== ======= ===== ====================
Min Max Mean SD Class Correlation
============== ==== ==== ======= ===== ====================
sepal length: 4.3 7.9 5.84 0.83 0.7826
sepal width: 2.0 4.4 3.05 0.43 -0.4194
petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)
petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)
============== ==== ==== ======= ===== ====================
:Missing Attribute Values: None
:Class Distribution: 33.3% for each of 3 classes.
:Creator: R.A. Fisher
:Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)
:Date: July, 1988
我们将数据集分为训练集和测试集,并进行标准化处理。
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 准备数据
X, y = iris.data, iris.target
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 标准化处理
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
我们使用随机树模型进行训练。
from sklearn.ensemble import RandomForestClassifier
# 创建随机树模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
# 训练模型
model.fit(X_train, y_train)
我们使用测试集来评估模型的性能。
from sklearn.metrics import accuracy_score
# 预测测试集标签
y_pred = model.predict(X_test)
# 计算测试集准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Test accuracy: {accuracy:.2f}')
输出结果:
Test accuracy: 0.96
本文介绍了如何在Python中使用随机树进行分类。我们首先加载了Iris数据集,将数据集随机划分为训练集和测试集,并进行了标准化处理。然后,我们创建了一棵随机树模型,并使用训练集进行训练。最后,我们使用测试集来评估模型的性能。