Python 数据建模与分析项目实战预备 Day5 - 模型训练与评估

发布于:2025-07-15 ⋅ 阅读:(18) ⋅ 点赞:(0)

✅ 今日目标

  • 使用 Scikit-learn 构建简历筛选的第一个分类模型
  • 理解模型训练流程:拟合、预测、评估
  • 学会使用分类任务常用的性能指标(准确率、精确率、召回率、F1、AUC)

📘 一、所用模型简介

我们从最基础的模型 —— 逻辑回归(Logistic Regression) 开始。它适合二分类问题,解释性强,易于调试与上线。


🛠 二、完整建模流程

  1. 读取预处理后的数据(来自 prepare_features.py 输出)
  2. 使用 LogisticRegression 拟合训练数据
  3. 预测测试集并输出预测概率
  4. 使用 classification_report, confusion_matrix, roc_auc_score 等评估模型效果
  5. 使用 joblib 保存训练好的模型为 .pkl 文件

🔧 所需工具库

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score
from sklearn.model_selection import cross_val_score
import joblib

🧪 今日练习任务

编写脚本 train_logistic_model.py

  • 载入训练数据(processed_X_train.csv 等)

  • 拟合逻辑回归模型

  • 输出预测评估报告

  • 保存模型文件为 logistic_model.pkl

    # train_logistic_model.py - 使用逻辑回归训练简历筛选模型
    
    import pandas as pd
    from sklearn.linear_model import LogisticRegression
    from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score
    import joblib
    
    # 读取数据
    X_train = pd.read_csv("../data/stage4/processed_X_train.csv")
    X_test = pd.read_csv("../data/stage4/processed_X_test.csv")
    y_train = pd.read_csv("../data/stage4/processed_y_train.csv").values.ravel()
    y_test = pd.read_csv("../data/stage4/processed_y_test.csv").values.ravel()
    
    # 初始化模型
    model = LogisticRegression(max_iter=1000, random_state=42)
    model.fit(X_train, y_train)
    
    # 预测与评估
    y_pred = model.predict(X_test)
    y_prob = model.predict_proba(X_test)[:, 1]
    
    print("=== 混淆矩阵 ===")
    print(confusion_matrix(y_test, y_pred))
    
    print("\\n=== 分类报告 ===")
    print(classification_report(y_test, y_pred))
    
    auc = roc_auc_score(y_test, y_prob)
    print(f"\\nAUC: {auc:.4f}")
    
    # 保存模型
    joblib.dump(model, "logistic_model.pkl")
    print("✅ 模型训练完成,已保存为 logistic_model.pkl")
    

    运行输出:

    === 混淆矩阵 ===
    [[15  4]
     [ 4 17]]
    \n=== 分类报告 ===
                  precision    recall  f1-score   support
    
               0       0.79      0.79      0.79        19
               1       0.81      0.81      0.81        21
    
        accuracy                           0.80        40
       macro avg       0.80      0.80      0.80        40
    weighted avg       0.80      0.80      0.80        40
    
    AUC: 0.8872
    ✅ 模型训练完成,已保存为 logistic_model.pkl
    

网站公告

今日签到

点亮在社区的每一天
去签到