第1章:模型开发环境搭建

说实话,很多做风控的同学,模型调得再好,一到部署就翻车。为啥?环境没搭对。

我见过太多案例了——本地跑得飞起,上了服务器就报错。说白了,就是环境不一致。所以今天咱们先把地基打牢。

1.1 Python环境配置

Python版本怎么选?我个人习惯用3.8或3.9。为什么?

  • 3.8以下,很多新库不支持了
  • 3.10以上,有些风控老库还没适配
  • 3.8/3.9,生态最稳

我在项目中遇到过,团队有人用3.11,结果某个xgboost版本死活装不上。嗯,后来统一降级到3.9,问题秒解。

避坑指南: 我曾经因为Python版本不一致,导致线上模型推理结果和本地差了几个百分点。排查了两天才发现是浮点运算精度差异。所以,版本统一是底线。

1.2 Anaconda使用

Anaconda这东西,说白了就是个环境管家。你想想看,一个项目要pandas 1.3,另一个要1.5,没有conda你怎么办?

我常用的几个命令:

# 创建环境
conda create -n risk_model python=3.9

# 激活环境
conda activate risk_model

# 安装包
conda install pandas numpy scikit-learn

# 导出环境(这个在部署时特别有用)
conda env export > environment.yml

# 从文件重建环境
conda env create -f environment.yml
小技巧: 我习惯给每个风控项目单独建一个环境。名字就叫 project_xxx_risk,这样切换项目时不会乱。

1.3 Jupyter Notebook设置

Jupyter Notebook,做风控模型开发的标配。但默认配置其实挺难用的。我一般会做这几件事:

  1. 改默认端口——避免和同事冲突
  2. 设置密码——安全第一
  3. 配置远程访问——方便在服务器上跑

生成配置文件的命令:

jupyter notebook --generate-config

然后修改 ~/.jupyter/jupyter_notebook_config.py

c.NotebookApp.ip = '0.0.0.0'      # 允许远程访问
c.NotebookApp.port = 8888          # 端口
c.NotebookApp.password = ''        # 密码(用jupyter notebook password设置)
c.NotebookApp.open_browser = False # 不自动打开浏览器
重点: 在风控场景下,数据安全是红线。Jupyter的密码一定要设,而且别用弱密码。我曾经见过有人把包含客户数据的Notebook直接暴露在公网上...后果很严重。

1.4 常用库安装

风控模型开发,这几个库是标配:

库名 用途 安装命令
pandas 数据处理 conda install pandas
numpy 数值计算 conda install numpy
scikit-learn 传统模型 conda install scikit-learn
xgboost 梯度提升树 conda install -c conda-forge xgboost
flask 模型部署 conda install flask
lightgbm 另一个GBDT conda install -c conda-forge lightgbm
joblib 模型序列化 conda install joblib

安装时有个顺序问题。我建议:先装pandas和numpy,再装sklearn,最后装xgboost。为什么?因为xgboost依赖底层C++库,如果先装它,有时候会和numpy版本冲突。

经验之谈: 用conda安装比pip更稳。特别是在Windows上,pip装xgboost经常报错。conda会帮你处理依赖关系。

1.5 验证环境

装完之后,跑个简单的测试脚本:

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
import xgboost as xgb
import flask

print("pandas version:", pd.__version__)
print("numpy version:", np.__version__)
print("sklearn version:", sklearn.__version__)
print("xgboost version:", xgb.__version__)
print("flask version:", flask.__version__)

# 简单测试
X = np.random.rand(100, 5)
y = np.random.randint(0, 2, 100)
model = RandomForestClassifier()
model.fit(X, y)
print("模型训练成功!")

如果没报错,恭喜你,环境搭好了。

1.6 本章知识体系

下面这张图,帮你理清整个环境搭建的逻辑:

风控模型开发环境搭建 Python 3.8/3.9 Anaconda Jupyter Notebook 常用库:pandas | numpy | sklearn | xgboost | lightgbm | flask | joblib 环境验证:测试脚本 模型部署(后续章节)

这张图展示了从Python基础环境到最终模型部署的完整链路。每一步都环环相扣,缺一不可。

核心要点:
  • Python版本统一用3.8或3.9
  • 每个项目独立conda环境
  • Jupyter配置好远程访问和密码
  • 库的安装顺序:pandas → sklearn → xgboost
  • 装完一定要跑测试脚本验证

环境搭好了,后面的事情就顺了。下一章咱们开始讲数据预处理,那才是真正考验功底的地方。


公众号:蓝海资料掘金营,微信deep3321