大三打卡(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 值,我全面评估了模型的性能。

实验过程中,我体会到交叉验证在避免模型过拟合和欠拟合方面的重要性,以及不同评估指标在反映模型性能方面的差异。这些实践经验不仅加深了我对机器学习模型评估的理解,也为我后续的项目开发提供了宝贵的参考。

posted @   夏季彼岸德  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示