逻辑回归算法实现与测试

一、实验目的
深入理解对数几率回归(即逻辑回归的)的算法原理,能够使用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']
posted @ 2025-11-21 10:10  Look_Back  阅读(8)  评论(0)    收藏  举报