ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

《模型不玄学》第4章 环境与工具:先把能跑起来的东西备齐

2026/9/4 17:51:56 拓冰建站 浏览量
《模型不玄学》第4章 环境与工具:先把能跑起来的东西备齐 小白一句话动手写模型之前先把 Python 3.10、一个干净的虚拟环境、以及要用的几个库pandas / scikit-learn / matplotlib装好。这一步只做一次后面每一章的代码才能直接跑。为什么是 Python为什么是这一套库本项目是 Python 写的而且巧的是第2章那两个模型——行为聚类K-Means和活跃预测GBDT——在同一个库scikit-learn里都能找到。再加上pandas处理第3章那种特征表、matplotlib画图基本就齐了。第15章做模型选型对比时还要跑一次神经网络用的也是这个库里自带的MLPClassifier所以到这儿就不再往里加东西了。聚类、树模型、神经网络、概率校准 →scikit-learn读 CSV、拼特征表、切时间窗口 →pandas画分布和趋势 →matplotlib本书用 Python 3.10 编写并逐章验证3.11 / 3.12 及更高版本也能跑配套脚本在 3.13 上同样验证过遇到库不兼容时再锁版本也不迟。另外提一句3.10 在 2026 年 10 月就停止官方维护了如果你的机器上没有历史包袱直接装更新的版本更好。第 1 步 装 Python 3.10挑一种你顺手的方式方式一pyenv推荐不影响系统自带 Python# 装 pyenvmacOS 用 brew其他系统看 pyenv 文档brewinstallpyenv# 装 3.10 的最新小版本pyenvinstall3.10.14# 设成当前目录默认版本可选pyenvlocal3.10.14方式二官网安装包去 python.org 下载 3.10 的 installer一路下一步。装完命令行里会有python3.10。方式三HomebrewmacOSbrewinstallpython3.10装完一定验一下确认版本对python3.10--version# 期望输出Python 3.10.14 小版本号可能不同只要是 3.10.x 就行如果命令行里python3指向的已经是 3.10后面直接用python3也行拿不准就用python3.10明确指定省得装到别的版本里。第 2 步 建一个虚拟环境虚拟环境virtualenv相当于给这个项目单独隔出一个 Python 小房间装进去的库只在这个房间里生效不会和你机器上别的项目打架。# 在项目目录里建环境名字叫 .venvpython3.10-mvenv .venv# 激活macOS / Linuxsource.venv/bin/activate# 激活Windows PowerShell.venv\Scripts\Activate.ps1激活成功后命令行最前面会出现(.venv)字样说明你进到这个小房间了。以后装库、跑脚本都在这个状态下进行。# 确认用的是环境里的 Pythonwhichpython# macOS/Linux 应指向 .../项目路径/.venv/bin/python不用的时候deactivate退出下次进来再source .venv/bin/activate即可。第 3 步 装依赖手册配套了一份依赖清单附件/00_公共/requirements.txt内容就是上面说的那几个库pandas2.0 numpy1.24 scikit-learn1.4 scipy1.11 matplotlib3.8安装# 先升级 pip 自身避免老 pip 装新包报错pipinstall--upgradepip# 按清单装pipinstall-r附件/00_公共/requirements.txt跑完会看到一堆Successfully installed ...。各库是干嘛的对应关系在第 1 节已经讲过这里不重复。如果网络慢或者想完全锁死版本把改成具体版本号比如scikit-learn1.4.2就行只是别锁得太死导致以后不好升级。第 4 步 验环境确认真能用光装完不算完跑两段确认一下。(a) 库能不能 importpython-cimport pandas, numpy, sklearn, matplotlib; print(pandas, pandas.__version__, | sklearn, sklearn.__version__)# 期望输出类似pandas 2.1.4 | sklearn 1.4.2没报错、版本号正常说明核心库到位了。(b) 手册自带脚本能不能跑python 附件/00_公共/generate_sample.py# 期望输出总记录数: 1643 / 用户数: 58 / 日期范围 ... / 各任务类型记录数 ...这个脚本只用 Python 自带功能不依赖刚装的库能跑通说明 Python 本身没问题。© 用 pandas 复现第3章的训练表证明环境已能支撑后面章节新建一个文件附件/00_公共/verify_env.py贴下面这段importpandasaspd dfpd.read_csv(附件/00_公共/每日领取明细_示例.csv)df[claim_date]pd.to_datetime(df[claim_date])# 以 2026-07-23 为评分日只取之前的数据算特征as_ofpd.Timestamp(2026-07-23)predf[df[claim_date]as_of]# 每人近 7 天07-17~07-23活跃了几天recent7pre[pre[claim_date]as_of-pd.Timedelta(days7)]\.groupby(uid)[claim_date].nunique()print(近 7 天活跃天数前 5 人)print(recent7.head())python 附件/00_公共/verify_env.py能正常打印出近 7 天活跃天数那几行就说明 pandas 读数据、切时间窗口都没问题——第3章那张表就是用这类操作拼出来的后面特征工程章节直接接着用。项目的代码大概长什么样对照你眼前的目录手册的代码就在附件/里和你看到的一致附件/ ├── 00_公共/ # 全书共用示例数据 生成/质检脚本 requirements.txt ├── 03_特征与标签篇/ # 每章的配套脚本如 activity_aux_label.py ├── 04_行为聚类篇/ # behavior_cluster_*.py聚类脚本 产物图/名单 ├── 05_活跃度预测篇/ # activity_*.py训练表、GBDT、校准、流水线…… ├── 06_评估篇/ # 评估与审计脚本 ├── 07_双目标模型升级篇/ # activity_dual_*.py └── 08_上线篇/ # 监控、序列化、影子部署、总流水线组织约定就三条按篇章分目录哪章的脚本进哪章的目录每个脚本单文件自包含python 附件/xx_篇/脚本名.py直接跑不依赖别的章先跑通共享的东西集中放——数据、依赖清单在 00_公共脚本产出的 csv/png 和脚本同目录。脚本名的前缀activity_/behavior_对应两个模型扫一眼就知道归属。真实工程里不会长这样。数据量上去、链路变长之后这些脚本会收敛成一个包 一个总入口run.py跟子命令“处理数据”“训练”“评估”“每日打分”那是第 29 章每日评分是可运维流程的工程形态。本书用单脚本是为了让你每一步都能打开文件亲眼看。动手照着装一遍打个勾python3.10 --version或python3 --version显示 3.10 或更高版本建好.venv并激活命令行出现(.venv)pip install -r 附件/00_公共/requirements.txt成功python -c import sklearn不报错python 附件/00_公共/generate_sample.py输出 1643 条记录python 附件/00_公共/verify_env.py能打出近 7 天活跃天数六步全过环境就齐了。小结环境这一站就是装对 Python 隔离环境 装齐库 验一遍。做完这章你有了一个随时能跑的 Python 房间和一份能复现的示例数据。下一章第5章不急着建模先带你把数据本身看明白——四列各自什么意思、哪些脏数据要在底座阶段拦掉。附件代码https://download.csdn.net/download/gyh19870723/93372150