10.29

实验一:数据准备与模型评估

 

一、实验目的

熟悉 Python 的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力;

加深对训练集、测试集、N 折交叉验证、模型评估标准的理解。

 

二、实验内容

1)利用 pandas 库从本地读取 iris 数据集;

2)从 scikit-learn 库中直接加载 iris 数据集;

3)实现折交叉验证进行模型训练;

4)计算并输出模型的准确度、精度、召回率和 F1 值。

 

三、算法步骤、代码、及结果

   1. 算法伪代码

 

   2. 算法主要代码

1)完整源代码

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from sklearn.model_selection import cross_val_predict

from shujv import X, y
from xunlian import rf_classifier, kf

# 使用交叉验证预测
y_pred = cross_val_predict(rf_classifier, X, y, cv=kf)

# 计算各项指标
accuracy = accuracy_score(y, y_pred)
precision = precision_score(y, y_pred, average='macro')
recall = recall_score(y, y_pred, average='macro')
f1 = f1_score(y, y_pred, average='macro')

print(f"Accuracy: {accuracy:.2f}")
print(f"Precision: {precision:.2f}")
print(f"Recall: {recall:.2f}")
print(f"F1 Score: {f1:.2f}")

from sklearn.model_selection import KFold, cross_val_score
from sklearn.ensemble import RandomForestClassifier

from shujv import X, y

# 初始化随机森林分类器
rf_classifier = RandomForestClassifier(n_estimators=100)

# 初始化 KFold 交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)

# 进行交叉验证
scores = cross_val_score(rf_classifier, X, y, cv=kf)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

3. 结果截图(包括:准确率;精度、召回率、F1

1)准确率:0.96

 

 

2)精度:0.96,召回率:096F10.96

 

 

posted @ 2024-12-03 16:42  奶油冰激凌  阅读(34)  评论(0)    收藏  举报