大三打卡(10.9)
实验一:数据准备与模型评估
一、实验目的
熟悉 Python 的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力; 加深对训练集、测试集、N 折交叉验证、模型评估标准的理解。
二、实验内容
(1)利用 pandas 库从本地读取 iris 数据集; (2)从 scikit-learn 库中直接加载 iris 数据集; (3)实现五折交叉验证进行模型训练; (4)计算并输出模型的准确度、精度、召回率和 F1 值。
三、算法步骤、代码、及结果
1. 算法伪代码
BEGIN
# 使用 sklearn 加载数据集
X, y = load_data_sklearn()
# 执行五折交叉验证
cv_results = cross_validation(X, y)
PRINT "五折交叉验证结果:", cv_results
# 评估模型性能
evaluate_model(X, y)
END
2. 算法主要代码
(1)完整源代码
【自己写的算法代码,没有调已有的该算法的库】
(2)调用库方法
import numpy as np
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score, precision_score, recall_score,
f1_score, classification_report
# 加载 iris 数据集
iris = load_iris()
X = iris.data
y = iris.target
# 将标签转换为字符串形式,以便进行分类报告
target_names = iris.target_names
y_str = np.array([target_names[x] for x in y])
# 初始化逻辑回归模型
model = LogisticRegression(max_iter=200)
# 实现五折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 存储每折的评估结果
results = []
for fold, (train_index, test_index) in enumerate(kf.split(X)):
# 分割数据
X_train, X_test = X[train_index],
X[test_index]
y_train, y_test = y_str[train_index],
y_str[test_index]
# 训练模型
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 计算性能指标
accuracy = accuracy_score(y_test,
y_pred)
precision = precision_score(y_test,
y_pred, average='macro')
recall = recall_score(y_test, y_pred,
average='macro')
f1 = f1_score(y_test, y_pred,
average='macro')
results.append((accuracy, precision,
recall, f1))
# 输出平均性能指标
print("平均准确度:", np.mean([result[0] for result in
results]))
print("平均精度:", np.mean([result[1] for result in
results]))
print("平均召回率:", np.mean([result[2] for result in
results]))
print("平均F1分数:",
np.mean([result[3] for result in results]))
3. 结果截图(包括:准确率;精度、召回率、F1)
(1)准确率:***
(2)精度:***,召回率:***,F1:***
【后边实验都按照这个格式写】
四、心得体会
通过这次实验,我深入了解了如何使用 pandas 库读取本地数据文件,并掌握了从 scikit-learn 库直接加载常用数据集的方法。同时,我实践了五折交叉验证这一重要的机器学习模型评估技术,确保模型在不同子集上的稳定性和可靠性。通过计算模型的准确度、精度、召回率和 F1 值,我全面评估了模型的性能。
实验过程中,我体会到交叉验证在避免模型过拟合和欠拟合方面的重要性,以及不同评估指标在反映模型性能方面的差异。这些实践经验不仅加深了我对机器学习模型评估的理解,也为我后续的项目开发提供了宝贵的参考。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律