2. 环境准备:Python环境搭建与核心库安装

在开始贷后风控特征筛选之前,需要搭建一个稳定、可复现的Python开发环境。本节将指导你完成从Python解释器安装到LightGBM等核心库配置的全流程,确保后续实操环节零障碍运行。

💡 版本建议:推荐使用Python 3.8–3.11版本(LightGBM对3.12+的兼容性仍在完善中)。以下所有库均通过pip安装,建议在虚拟环境中操作,避免与系统全局Python冲突。

2.1 环境搭建三步走

  1. 安装Python解释器:从 python.org 下载安装包,安装时勾选“Add Python to PATH”。
  2. 创建虚拟环境(推荐):python -m venv loan_risk_env,然后激活。
  3. 安装核心库:使用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将结果可视化。

贷后风控环境依赖关系图 贷后风控特征筛选 — 环境依赖与数据流 原始数据(CSV/DB) Pandas 数据清洗与衍生 NumPy 数值计算 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("环境准备通过!")