4. 环境搭建:Python环境配置与核心库安装
在开始特征缺失巡检与PSI监控实战之前,需要搭建一个稳定、可复现的Python开发环境。本节将指导你完成Python解释器安装、虚拟环境创建以及pandas、numpy、scikit-learn、matplotlib等核心数据科学库的配置。正确的环境搭建可以避免后续开发中的依赖冲突和版本兼容性问题。
4.1 Python版本选择与安装
推荐使用Python 3.9~3.11版本,这些版本对数据科学生态支持最成熟,且与scikit-learn 1.2+完全兼容。请从Python官网下载对应操作系统的安装包。
| 操作系统 | 安装方式 | 验证命令 |
|---|---|---|
| Windows | 下载exe安装包,勾选"Add Python to PATH" | python --version |
| macOS | 使用Homebrew:brew install python@3.10 |
python3 --version |
| Linux (Ubuntu/Debian) | sudo apt install python3.10 python3.10-venv |
python3 --version |
版本检查建议:安装完成后,务必在终端执行
python --version 确认版本号。如果系统同时存在多个Python版本,建议使用 python3.10 显式指定。
4.2 虚拟环境创建
虚拟环境可以隔离不同项目的依赖,避免全局包污染。推荐使用Python内置的 venv 模块或 conda 进行管理。
方式一:使用 venv(轻量级)
# 创建虚拟环境
python -m venv mlops_env
# 激活环境(Windows)
mlops_env\Scripts\activate
# 激活环境(macOS/Linux)
source mlops_env/bin/activate
# 退出环境
deactivate
方式二:使用 conda(适合多Python版本管理)
# 创建环境并指定Python版本
conda create -n mlops_env python=3.10
# 激活环境
conda activate mlops_env
# 退出环境
conda deactivate
避坑提醒:不要直接在全局Python环境中安装项目依赖。使用虚拟环境可以确保本教程的依赖版本不会与其他项目冲突。如果后续需要复现环境,可使用
pip freeze > requirements.txt 导出依赖清单。
4.3 核心库安装与版本锁定
本教程涉及特征工程、统计计算、机器学习建模和数据可视化,需要安装以下核心库。建议使用 pip 一次性安装,并锁定版本以保证可复现性。
# 激活虚拟环境后执行
pip install pandas==2.1.4 numpy==1.24.3 scikit-learn==1.3.2 matplotlib==3.8.2
# 可选:安装Jupyter Notebook用于交互式开发
pip install jupyter==1.0.0
| 库名 | 推荐版本 | 在本教程中的核心用途 |
|---|---|---|
| pandas | 2.1.4 | 数据加载、缺失值统计、分组聚合、时间序列处理 |
| numpy | 1.24.3 | 数值计算、数组操作、统计函数(均值、方差) |
| scikit-learn | 1.3.2 | 特征分箱、PSI计算、模型训练与评估 |
| matplotlib | 3.8.2 | 缺失率分布图、PSI趋势图、特征分布对比图 |
版本锁定原则:本教程所有代码均基于上述版本测试。如果使用更新的版本,请注意API变更可能导致的兼容性问题。建议在项目根目录创建
requirements.txt 文件,内容即为上述安装命令中的包名与版本号。
4.4 环境验证脚本
安装完成后,执行以下Python脚本验证环境是否配置正确。该脚本会依次检查各库的版本并输出关键功能测试结果。
import pandas as pd
import numpy as np
import sklearn
import matplotlib
import sys
print(f"Python版本: {sys.version}")
print(f"pandas版本: {pd.__version__}")
print(f"numpy版本: {np.__version__}")
print(f"scikit-learn版本: {sklearn.__version__}")
print(f"matplotlib版本: {matplotlib.__version__}")
# 快速功能验证:创建DataFrame并计算缺失率
df = pd.DataFrame({'A': [1, None, 3], 'B': [None, 5, 6]})
missing_rate = df.isnull().mean()
print("\n缺失率计算测试通过:")
print(missing_rate)
# 快速功能验证:计算PSI(使用scikit-learn的分箱能力)
from sklearn.metrics import mutual_info_score
print("\nscikit-learn导入测试通过")
# 快速功能验证:绘制简单图表
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
print("matplotlib绘图测试通过")
验证结果解读:如果脚本无报错且输出版本号与测试通过信息,说明环境搭建成功。如果出现
ModuleNotFoundError,请检查虚拟环境是否激活,或重新执行安装命令。
4.5 环境架构总览
下图展示了本教程所使用的技术栈层次关系,从底层Python解释器到上层应用库,再到最终的特征巡检与PSI监控应用。
4.6 常见问题与解决方案
- pip安装超时:使用国内镜像源加速,例如
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple - 版本冲突:如果已安装其他版本,先卸载再安装指定版本:
pip uninstall pandas && pip install pandas==2.1.4 - 虚拟环境激活失败:Windows用户请使用PowerShell或CMD,不要使用Git Bash;macOS/Linux用户注意
source命令的路径是否正确 - matplotlib中文乱码:在代码开头添加
plt.rcParams['font.sans-serif'] = ['SimHei']或使用系统支持的中文字体