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

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")
    
http://www.xdnf.cn/news/15302.html

相关文章:

  • 九、官方人格提示词汇总(中-1)
  • (LeetCode 每日一题) 1290. 二进制链表转整数 (链表+二进制)
  • Kafka 时间轮深度解析:如何O(1)处理定时任务
  • 前端docx库实现将html页面导出word
  • 【第一章编辑器开发基础第二节编辑器布局_3间距控制(4/4)】
  • Java 大视界 -- 基于 Java 的大数据可视化在城市地下管网管理与风险预警中的应用
  • 显示器核心三要素详解:刷新率、分辨率、色深
  • SpringBoot-26-企业云端开发实践之Vue框架状态管理VueX和数据模拟MockJS
  • 从零构建搜索引擎 build demo search engine from scratch
  • MIPI DSI(三) MIPI DSI 物理层和 D-PHY
  • MMpretrain 中的 LinearClsHead 结构与优化
  • C++标准库(std)详解
  • 1.连接MySQL数据库-demo
  • 蜻蜓I即时通讯水银版系统直播功能模块二次开发文档-详细的直播功能模块文档范例-卓伊凡|麻子
  • 第十八篇 数据清洗:Python智能筛选与统计:从海量Excel数据中秒级挖掘,辅助决策!你的数据分析利器!
  • hash表的模拟--开放定址法
  • C++模版编程:类模版与继承
  • 力扣 hot100 Day43
  • 2025.7.13总结
  • 代码部落 20250713 CSP-S复赛 模拟赛
  • 芯片相关必备
  • [附源码+数据库+毕业论文+答辩PPT+部署教程+配套软件]基于SpringBoot+MyBatis+MySQL+Maven+Vue实现的交流互动管理系统
  • 型模块化协作机器人结构设计cad【1张】三维图+设计说明书
  • MCU中的系统控制器(System Controller)是什么?
  • [Rust 基础课程]Hello World
  • CCPD 车牌数据集提取标注,并转为标准 YOLO 格式
  • LAN-401 linux操作系统的移植
  • 【leetcode】字符串,链表的进位加法与乘法
  • Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
  • Linux 系统——管理 MySQL