2024.11.25

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)
posted @   我也不想的  阅读(4)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示