实验一:数据准备与模型评估
一、实验目的
熟悉 Python 的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力;
加深对训练集、测试集、N 折交叉验证、模型评估标准的理解。
二、实验内容
(1)利用 pandas 库从本地读取 iris 数据集;
(2)从 scikit-learn 库中直接加载 iris 数据集;
(3)实现五折交叉验证进行模型训练;
(4)计算并输出模型的准确度、精度、召回率和 F1 值。
三、算法步骤、代码、及结果
1. 算法伪代码
导入 NumPy 库
导入 sklearn.datasets 库
导入 pandas 库
导入 sklearn.model_selection 库
导入 sklearn.ensemble 库
导入 sklearn.metrics 库
加载 iris 数据集
将特征数据存储在 X 中
将目标变量存储在 y 中
将数据转换为 DataFrame
创建 DataFrame 对象 iris_df
打印 iris_df 的前几行
初始化随机森林分类器
创建 RandomForestClassifier 对象 rf_classifier
设置五折交叉验证
创建 KFold 对象 kf
定义多个评分函数
创建字典 scoring 包含多个评分指标
进行多指标交叉验证
对 rf_classifier 进行交叉验证
传入 X, y, kf 和 scoring
输出每个指标的平均值
遍历交叉验证结果
对于每个以 'test_' 开头的指标
打印指标名称和平均值
2. 算法主要代码
(1)完整源代码
import numpy as np
from sklearn.datasets import load_iris
# 加载iris数据集
iris = load_iris()
X, y = iris.data, iris.target
import pandas as pd
# 将数据转换为DataFrame,便于查看
iris_df = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
columns= iris['feature_names'] + ['target'])
print(iris_df.head())
from sklearn.model_selection import cross_val_score, cross_validate, KFold
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import make_scorer, accuracy_score, precision_score, recall_score, f1_score
# 初始化随机森林分类器
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
# 设置五折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 定义多个评分函数
scoring = {
'accuracy': make_scorer(accuracy_score),
'precision': make_scorer(precision_score, average='weighted'),
'recall': make_scorer(recall_score, average='weighted'),
'f1': make_scorer(f1_score, average='weighted')
}
# 进行多指标交叉验证
results = cross_validate(rf_classifier, X, y, cv=kf, scoring=scoring)
# 输出每个指标的平均值
for metric, values in results.items():
if metric.startswith('test_'):
print(f'{metric[5:]}: {values.mean():.4f}')
(2)调用库方法
pandas
用途:用于数据处理和分析。它提供了数据结构(如 DataFrame)和数据操作工具,使得数据处理更加方便和高效。
主要功能:
读取和写入不同格式的数据文件(如 CSV、Excel、SQL 数据库等)。
数据清洗和预处理。
数据筛选、排序、分组等操作。
数据可视化(结合 matplotlib 等库)。
numpy
用途:用于数值计算。它提供了多维数组对象(ndarray)和其他数学运算工具,是许多科学计算库的基础。
主要功能:
数组操作(如创建、重塑、切片等)。
数学和逻辑运算。
线性代数和傅里叶变换等高级数学运算。
scikit-learn
用途:用于机器学习。它是一个强大的机器学习库,提供了大量的机器学习算法和工具,包括数据预处理、模型选择、评估等。
主要功能:
机器学习算法(如分类、回归、聚类等)。
数据预处理(如标准化、编码等)。
模型选择和评估(如交叉验证、网格搜索等)。
特征选择和降维。
- 结果截图(包括:准确率;精度、召回率、F1)
(1)准确率:0.9600
(2)精度:0.9638,召回率:0.9600,F1:0.9599
标签:iris,验证,模型,交叉,score,准备,数据,评估,sklearn From: https://www.cnblogs.com/0608lin/p/18560716