news 2026/5/23 10:56:06

边走边聊 Python 3.8:Chapter 23:机器学习入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
边走边聊 Python 3.8:Chapter 23:机器学习入门

Chapter 23:机器学习入门

机器学习不是魔法,它是统计学穿上了计算的外衣。本章将带你理解模型训练、特征工程、评估指标等核心概念,并用真实数据完成一次预测任务。你会发现:当你能训练模型,你就能预测未来的一角。


“机器学习不是魔法,它是统计学穿上了计算的外衣。”

大家好,我是 Q。第23篇我们正式进入机器学习领域,用scikit-learn把前面21篇的自动化知识(PyAutoGUI、OOXML报表、Flask网盘、测试打包)再升级一步:用历史记账数据预测下个月支出,实现真正的“智能自动化”!
本篇全部基于Python 3.8.10 + Win7 旗舰版实测通过,零基础也能跑通。
先讲底层原理,再讲Win7 实战坑点,最后给出完整可直接运行的预测代码 + Pipeline + 模型持久化,让你把记账Excel一键变成“未来支出预报”!

1. 底层原理(源码、协议、机制)

scikit-learn(简称 sklearn)是 Python 最轻量的机器学习库,完全基于 NumPy + SciPy + Cython实现:

  • Estimator 接口:所有模型都遵循统一 API(fit()predict()score()),源码核心在sklearn/base.pyBaseEstimator类。
    这就是“即插即用”的秘密——不管是线性回归还是随机森林,调用方式完全一致。

  • 底层加速:Cython 把 Python 代码编译成 C 扩展(.pyd 文件),矩阵运算直接调用 BLAS/LAPACK(NumPy/SciPy 底层),速度远超纯 Python。

  • Pipeline 机制:源码在sklearn/pipeline.py,本质是把多个Transformer+Estimator串成一个对象,内部用fit_transform链式调用,避免数据泄漏。

  • 模型持久化joblib(sklearn 自带)使用pickle+ 内存映射,把模型权重、参数序列化成 .pkl 文件,支持大模型快速加载。

(上图:scikit-learn Pipeline 工作流,一目了然)

2. Win7 特有实战坑点 & 库兼容性(提前避雷)

  1. 版本严格锁定(最重要):
    Win7 + Python 3.8 只支持scikit-learn==1.3.2(1.4+ 已放弃 3.8)。
    同时锁定依赖:

    pipinstallscikit-learn==1.3.2numpy==1.24.4scipy==1.10.1pandas==2.0.3matplotlib==3.7.5joblib==1.3.2

    必须管理员 PowerShell执行,否则 .pyd 文件加载失败。

  2. Wheel 安装失败:Win7 缺少 VC++ 2015-2019 Redistributable。
    先下载安装vc_redist.x64.exe(微软官网),再 pip。

  3. 内存与 CPU:Win7 机器通常 4-8GB 内存,训练大模型(>10万行)会 OOM。本篇使用小数据集 + 简单线性模型,完全无压力。

  4. 中文路径:记账数据 Excel 路径含中文时,用r'D:\记账\data.xlsx'短路径 + UTF-8 编码。

  5. 打包进 exe:结合第21篇 PyInstaller 时,需加--hidden-import=sklearn.neighbors._ball_tree等(后面会给 .spec 示例)。

3. 深度:Pipeline 工作流 + 模型持久化

Pipeline让预处理 + 模型变成“一条龙”:

  • 自动处理缺失值、标准化、特征选择
  • 防止测试集数据泄漏
  • 一键fit/predict

模型持久化:用joblib.dump(model, 'expense_model.pkl')保存,joblib.load加载,速度比 pickle 快 10 倍,完美适配 Win7 离线预测。

4. 完整实战:用历史记账数据预测下个月支出

场景:每月手动记账(Excel),现在让机器学习自动预测下个月总支出!

准备数据(新建D:\AutoOffice\expense_data.csv):

month,food,rent,transport,entertainment,total 2023-0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 10:55:59

终极指南:如何免费实现GitHub下载速度提升100倍

终极指南:如何免费实现GitHub下载速度提升100倍 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾经因为GitHub下…

作者头像 李华
网站建设 2026/5/23 10:55:05

拼多多数据采集神器:5分钟搭建你的电商情报系统

拼多多数据采集神器:5分钟搭建你的电商情报系统 【免费下载链接】scrapy-pinduoduo 拼多多爬虫,抓取拼多多热销商品信息和评论 项目地址: https://gitcode.com/gh_mirrors/sc/scrapy-pinduoduo 还在为拼多多商品数据采集而烦恼吗?面对…

作者头像 李华
网站建设 2026/5/23 10:51:44

HS2-HF_Patch终极指南:如何一键安装Honey Select 2游戏增强补丁

HS2-HF_Patch终极指南:如何一键安装Honey Select 2游戏增强补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是一款专为Honey Selec…

作者头像 李华
网站建设 2026/5/23 10:48:12

ZZULIOJ刷题指南:C语言1000题背后的“仪式感”与学习路径规划

ZZULIOJ刷题指南:C语言1000题背后的“仪式感”与学习路径规划 当你第一次打开ZZULIOJ平台,看到那道编号1000的题目——《从今天开始入坑C语言》时,或许会感到一丝意外。这道只需要输出一行文字就能通过的题目,却蕴含着编程学习中…

作者头像 李华