当前位置: 首页 > news >正文

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

✅ 今日目标

  • 使用 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   support0       0.79      0.79      0.79        191       0.81      0.81      0.81        21accuracy                           0.80        40macro avg       0.80      0.80      0.80        40
    weighted avg       0.80      0.80      0.80        40AUC: 0.8872
    ✅ 模型训练完成,已保存为 logistic_model.pkl
    
http://www.dtcms.com/a/279975.html

相关文章:

  • 通过explain查看MySQL索引是否正确引用
  • VNC和Socket
  • 我对muduo的梳理以及AI的更改
  • elementPlus中的el-table实现合并单元格
  • 从0到1实现Shell!Linux进程程序替换详解
  • 九、官方人格提示词汇总(中-3)
  • Linux基础指令及权限
  • 融合竞争学习与高斯扰动的多目标加权平均算法(MOWAA)求解多无人机协同路径规划(多起点多终点,起始点、无人机数、障碍物可自定义),提供完整MATLAB代码
  • 【地理探测器】解释
  • pip install torch各种版本的命令及地址
  • Java学习——使用jpackage把jar文件打包为可执行的exe文件
  • SnapKit介绍与使用
  • OneCode 3.0: 注解驱动的Spring生态增强方案
  • windows系统中双击.py文件可以直接运行
  • 第 2 章 数据类型及其运算
  • JSCPC 2025 江苏省赛
  • VictoriaMetrics 架构
  • 位置编码类型彩色图解
  • 考虑频率耦合的构网型(GFM)VSG变流器(电压电流双闭环控制结构)的二维序阻抗与降维SISO序阻抗建模详细推导及扫频对比验证
  • 【人工智能99问】什么是深度学习?(2/99)
  • Kimi K2智能体能力的技术突破:大规模数据合成 + 通用强化学习
  • 名片管理系统IV
  • 螺旋模型:风险分析驱动的渐进式开发
  • cuda优化之softmax
  • 组件化思想
  • Brooks 低温泵On-Board Cryopump 安装和维护手法Installation and Maintenance Manual
  • aspnetcore Mvc配置选项中的ModelBindingMessageProvider
  • 第二章 基于新版Onenet搭建云服务(stm32物联网)
  • PyTorch中torch.topk()详解:快速获取最大值索引
  • @Resource 注解的空值处理(默认行为与容器实现)