2. 环境准备:Python环境搭建与核心库安装
在开始贷后风控特征筛选之前,需要搭建一个稳定、可复现的Python开发环境。本节将指导你完成从Python解释器安装到LightGBM等核心库配置的全流程,确保后续实操环节零障碍运行。
💡 版本建议:推荐使用Python 3.8–3.11版本(LightGBM对3.12+的兼容性仍在完善中)。以下所有库均通过pip安装,建议在虚拟环境中操作,避免与系统全局Python冲突。
2.1 环境搭建三步走
- 安装Python解释器:从
python.org下载安装包,安装时勾选“Add Python to PATH”。 - 创建虚拟环境(推荐):
python -m venv loan_risk_env,然后激活。 - 安装核心库:使用pip批量安装。
# 激活虚拟环境(Windows)
loan_risk_env\Scripts\activate
# 激活虚拟环境(macOS/Linux)
source loan_risk_env/bin/activate
# 批量安装核心库
pip install lightgbm pandas numpy scikit-learn matplotlib
📌 验证安装:在Python交互环境中逐条执行以下命令,若均无报错且能打印版本号,则环境准备完成。
import lightgbm as lgb
import pandas as pd
import numpy as np
import sklearn
import matplotlib
print("LightGBM version:", lgb.__version__)
print("Pandas version:", pd.__version__)
print("NumPy version:", np.__version__)
print("Scikit-learn version:", sklearn.__version__)
print("Matplotlib version:", matplotlib.__version__)
2.2 核心库功能速览
| 库名称 | 版本(示例) | 在贷后风控中的核心作用 |
|---|---|---|
| LightGBM | ≥4.0.0 | 梯度提升树模型训练、特征重要性排序、特征筛选 |
| Pandas | ≥2.0.0 | 数据加载、缺失值处理、特征衍生、样本划分 |
| NumPy | ≥1.24.0 | 数值计算、数组操作、统计指标计算 |
| Scikit-learn | ≥1.3.0 | 数据预处理、评估指标、交叉验证、特征选择工具 |
| Matplotlib | ≥3.7.0 | 特征分布可视化、重要性柱状图、相关性热力图 |
2.3 环境依赖关系与数据流
下图展示了贷后风控特征筛选过程中各库之间的协作关系:NumPy提供底层数组运算,Pandas负责表格化数据处理,Scikit-learn完成预处理与评估,LightGBM执行核心建模与特征重要性计算,Matplotlib将结果可视化。
2.4 常见安装问题与避坑
- LightGBM安装失败(Windows):尝试安装预编译wheel包
pip install lightgbm --only-binary :all:,或安装Visual C++ Redistributable。 - 虚拟环境激活后pip仍指向全局:检查
which pip(Linux/macOS)或where pip(Windows),确保路径在虚拟环境目录下。 - Matplotlib中文乱码:在代码中设置
plt.rcParams['font.sans-serif'] = ['SimHei']或下载中文字体。 - 版本冲突:使用
pip list检查已安装版本,必要时用pip install 库名==指定版本降级/升级。
⚠️ 生产环境注意:在服务器或Docker容器中部署时,建议使用
requirements.txt 锁定所有依赖版本,确保环境完全一致。生成方式:pip freeze > requirements.txt。
2.5 快速验证脚本
将以下代码保存为 check_env.py,运行后若输出“环境准备通过!”则表示所有库安装正确。
# check_env.py
import sys
import lightgbm as lgb
import pandas as pd
import numpy as np
import sklearn
import matplotlib
required = {
'lightgbm': lgb.__version__,
'pandas': pd.__version__,
'numpy': np.__version__,
'sklearn': sklearn.__version__,
'matplotlib': matplotlib.__version__
}
print("=" * 40)
print("贷后风控环境检查报告")
print("=" * 40)
for lib, ver in required.items():
print(f" {lib:15s} : {ver}")
print("=" * 40)
print("环境准备通过!")