✅ 今日目标
- 使用 Scikit-learn 构建简历筛选的第一个分类模型
- 理解模型训练流程:拟合、预测、评估
- 学会使用分类任务常用的性能指标(准确率、精确率、召回率、F1、AUC)
📘 一、所用模型简介
我们从最基础的模型 —— 逻辑回归(Logistic Regression) 开始。它适合二分类问题,解释性强,易于调试与上线。
🛠 二、完整建模流程
- 读取预处理后的数据(来自
prepare_features.py
输出) - 使用
LogisticRegression
拟合训练数据 - 预测测试集并输出预测概率
- 使用
classification_report
,confusion_matrix
,roc_auc_score
等评估模型效果 - 使用
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