用鸢尾花数据集构建随机森林模型

本文通过鸢尾花数据集展示了如何构建随机森林模型。在编码过程中遇到FutureWarning,由于n_estimators参数默认值将在未来版本改变,从当前的10变为100。为消除警告并控制决策树数量,设置了n_estimators=10。通常,超过150个决策树可获得更精确结果,但此处仅以10个为例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码

'''
Created on 2019年3月29日

@author: vincent
'''
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np
iris = load_iris() #载入鸢尾花数据集
df = pd.DataFrame(iris.data,columns=iris.feature_names) #设置行列,每行为样本,每列为数据集属性
df['is_train'] = np.random.uniform(0,1,len(df)) <= .75 #每个样本生成一个随机数,小于0.75作为训练集,否则作为测试样本
df['species'] = iris.target_names[iris.target] #添加子属列
print(df.head(150))

train,test = df[df['is_train']==True],df[df['is_train']==False]

features = df.columns[:4]
clf = RandomForestClassifier(n_estimators=10,n_jobs=2) #构建随机森林 n_jobs为运行的CPU数量
x,y = pd.factorize(train['species']) #解析花属列,取得训练集的花属结果
clf.fit(train[features],x) #添加训练集,train[features]为属性,x为结果
 
preds = iris.target_names[clf.predict(test[features])]
### 使用随机森林算法处理鸢尾花数据集 #### 导入必要的库 为了实现这一目标,首先需要导入一些基本的 Python 库来支持数据分析和建模工作。Pandas 和 NumPy 是用于数据操作的强大工具;而 scikit-learn 则提供了简单有效的接口来进行机器学习。 ```python import pandas as pd from sklearn import datasets from sklearn.model_selection import train_test_split, cross_val_score from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, classification_report ``` #### 加载并探索数据集 接下来加载著名的鸢尾花 (Iris) 数据集,并对其进行初步了解。该数据集中包含了四种不同类型的特征测量值以及对应的类别标签。 ```python # 加载鸢尾花数据集 iris = datasets.load_iris() X = iris.data # 特征变量 y = iris.target # 类别标签 # 将其转换成 DataFrame 方便查看前几条记录 df = pd.DataFrame(X, columns=iris.feature_names) print(df.head()) ``` #### 准备训练与测试样本 将原始的数据划分为训练和测试两部分,以便后续能够有效地评估模型性能。这里采用 `train_test_split` 方法完成此任务,通常会保留一部分作为独立验证用途。 ```python X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=42 ) ``` #### 构建随机森林分类器 创建一个基于随机森林的分类器实例,并设置参数如树的数量 (`n_estimators`) 来调整模型复杂度。之后可以调用 `.fit()` 方法让模型去拟合给定的训练数据。 ```python rf_clf = RandomForestClassifier(n_estimators=100, random_state=42) rf_clf.fit(X_train, y_train) ``` #### 验证模型准确性 最后一步是对之前未见过的新样例执行预测操作,并计算出整体准确率以及其他评价指标,比如精确度、召回率等。这有助于全面理解所建立模型的表现情况。 ```python predictions = rf_clf.predict(X_test) accuracy = accuracy_score(y_test, predictions) report = classification_report(y_test, predictions) print(f'Accuracy: {accuracy * 100:.2f}%') print('Classification Report:') print(report) ``` 上述过程概述了一个完整的流程,在实际应用中还可以进一步优化超参数配置或是尝试其他预处理技术以提高最终的结果质量[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值