from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载 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, random_state=42)
from sklearn.linear_model import LogisticRegression
# 创建逻辑回归模型实例
logistic = LogisticRegression(max_iter=200)
# 训练模型
logistic.fit(X_train, y_train)
from sklearn.model_selection import cross_val_score
from sklearn.metrics import classification_report
# 使用五折交叉验证评估模型
scores = cross_val_score(logistic, X_train, y_train, cv=5, scoring='accuracy')
# 训练模型并预测
y_pred = logistic.predict(X_train)
# 输出模型性能报告
print("五折交叉验证准确度:", scores.mean())
print("分类报告:")
print(classification_report(y_train, y_pred))
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 使用测试集进行预测
y_test_pred = logistic.predict(X_test)
# 计算性能指标
accuracy = accuracy_score(y_test, y_test_pred)
precision = precision_score(y_test, y_test_pred, average='macro')
recall = recall_score(y_test, y_test_pred, average='macro')
f1 = f1_score(y_test, y_test_pred, average='macro')
# 输出性能指标
print(f"测试集准确度: {accuracy}")
print(f"测试集精度: {precision}")
print(f"测试集召回率: {recall}")
print(f"测试集F1值: {f1}")
浙公网安备 33010602011771号