逻辑回归算法实现与测试
一、实验目的
深入理解对数几率回归(即逻辑回归的)的算法原理,能够使用Python语言实现对数几率回归的训练与测试,并且使用五折交叉验证算法进行模型训练与评估。
二、实验内容
(1)从scikit-learn库中加载iris数据集或本地读取,进行数据分析:
(2)采用五折交叉验证划分训练集和测试集,使用训练集训练对数几率回归(逻辑回
归)分类算法;
(3)使用五折交叉验证对模型性能(准确度、精度、召回率和F1值)进行测试;
(4)通过对测试结果进行比较分析,评估模型性能:
(5)完成实验报告中实验二的部分。
代码:
def sklearn_logistic_regression(X, y):
"""
使用scikit-learn库实现对数几率回归
"""
print("\n" + "=" * 60)
print("使用scikit-learn实现对数几率回归")
print("=" * 60)
# 创建逻辑回归模型
logistic_model = LogisticRegression(
multi_class='multinomial', # 多分类问题
solver='lbfgs', # 优化算法
max_iter=1000, # 最大迭代次数
random_state=42 # 随机种子
)
# 定义评估指标
scoring = {
'accuracy': 'accuracy',
'precision': 'precision_macro',
'recall': 'recall_macro',
'f1': 'f1_macro'
}
# 五折交叉验证
print("正在进行五折交叉验证...")
cv_results = cross_validate(
estimator=logistic_model,
X=X,
y=y,
cv=5,
scoring=scoring,
return_train_score=False,
return_estimator=True
)
# 提取结果
accuracy_scores = cv_results['test_accuracy']
precision_scores = cv_results['test_precision']
recall_scores = cv_results['test_recall']
f1_scores = cv_results['test_f1']
return accuracy_scores, precision_scores, recall_scores, f1_scores, cv_results['estimator']

浙公网安备 33010602011771号