from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_validate
from sklearn.metrics import make_scorer, accuracy_score, precision_score, recall_score, f1_score, classification_report
# 加载 iris 数据集
iris = load_iris()
X, y = iris.data, iris.target
# 留出 1/3 数据作为测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=1/3, stratify=y, random_state=42)
# 初始化逻辑回归模型
model = LogisticRegression(max_iter=200, random_state=42)
# 使用训练集训练模型
model.fit(X_train, y_train)
print("逻辑回归模型训练完成")
# 定义评分指标
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')
}
# 使用五折交叉验证评估
cv_results = cross_validate(model, X_train, y_train, cv=5, scoring=scoring)
# 打印评估结果
print("五折交叉验证结果:")
for metric, scores in cv_results.items():
if metric.startswith('test_'):
print(f"{metric}: {scores.mean():.4f} ± {scores.std():.4f}")
# 预测测试集
y_pred = model.predict(X_test)
# 打印性能报告
report = classification_report(y_test, y_pred, target_names=iris.target_names)
print("测试集性能报告:")
print(report)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人