2. 环境搭建与工具准备:Python环境、XGBoost库安装、Jupyter Notebook配置、数据集获取
本章是实战课程的基石。在构建行情坏账率哨兵模型之前,必须确保开发环境干净、工具链完整、数据源可访问。我们将按照“基础环境 → 核心库 → 交互工具 → 数据准备”的顺序逐步搭建,避免版本冲突和路径混乱。
2.1 环境全景概览
下图展示了本章搭建的完整技术栈层次关系,从底层操作系统到顶层数据接口,每个组件都将在后续章节中被直接调用。
2.2 Python 环境安装与验证
推荐使用 Anaconda 发行版(Python 3.9+),它预装了数据科学常用库,能大幅减少依赖冲突。如果磁盘空间有限,可选择 Miniconda 按需安装。
| 安装方式 | 适用场景 | 磁盘占用 | 推荐指数 |
|---|---|---|---|
| Anaconda 图形安装器 | 新手、全栈数据科学 | ~3 GB | ★★★★★ |
| Miniconda + 按需安装 | 磁盘紧张、熟练用户 | ~500 MB | ★★★★☆ |
| 系统原生 Python + pip | 已有 Python 环境 | ~200 MB | ★★★☆☆ |
验证命令: 打开终端(或 Anaconda Prompt),执行
python --version 应返回 Python 3.9.x 或更高版本;执行 conda --version 确认 conda 已就绪。
2.3 XGBoost 库安装
XGBoost 是本次哨兵模型的核心算法库。安装时需注意 CPU/GPU 版本 的选择,以及 与 Python 版本的兼容性。
2.3.1 安装命令
# 方式一:conda 安装(推荐,自动处理依赖)
conda install -c conda-forge xgboost
# 方式二:pip 安装(通用)
pip install xgboost
# 方式三:GPU 加速版(需 CUDA 支持)
pip install xgboost-gpu # 或 conda install -c conda-forge xgboost=1.7.0 cudatoolkit=11.8
2.3.2 安装验证
# 在 Python 交互环境或脚本中执行
import xgboost as xgb
print(xgb.__version__) # 应输出 1.7.x 或 2.x 版本号
# 检查是否支持 GPU(可选)
print(xgb.__version__) # GPU 版本会显示 cuda 字样
常见踩坑: Windows 用户如果遇到
DLL load failed 错误,请安装 Microsoft Visual C++ Redistributable(2015-2022 版本)。macOS 用户建议使用 conda 安装以避免 OpenMP 链接问题。
2.4 Jupyter Notebook 配置
Jupyter Notebook 提供交互式编程环境,非常适合数据探索和模型调参。我们将配置 自动补全、代码折叠 和 主题美化 三个实用功能。
2.4.1 安装与启动
# 安装 Jupyter(如使用 Anaconda 则已预装)
conda install jupyter notebook
# 或使用 pip
pip install notebook
# 启动服务
jupyter notebook
2.4.2 扩展插件配置
安装 jupyter_contrib_nbextensions 以启用代码折叠、目录生成等功能:
# 安装扩展包
conda install -c conda-forge jupyter_contrib_nbextensions
# 启用扩展
jupyter contrib nbextension install --user
# 重启 Jupyter,在 Nbextensions 标签页勾选:
# - Table of Contents (2)
# - Codefolding
# - Hinterland (自动补全)
| 插件名称 | 功能说明 | 推荐等级 |
|---|---|---|
| Table of Contents | 自动生成 Markdown 标题目录,方便长文档导航 | 必装 |
| Codefolding | 折叠/展开代码块,减少滚动 | 推荐 |
| Hinterland | 输入时自动弹出代码补全提示 | 推荐 |
| ExecuteTime | 显示每个单元格的执行耗时 | 可选 |
2.5 数据集获取与结构说明
本课程使用模拟的 行情坏账历史数据,包含 10,000 条样本,每条样本包含 15 个特征和 1 个坏账标签。数据集可从课程配套资源中下载,或通过以下脚本生成模拟数据用于练习。
2.5.1 数据字段清单
| 字段名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
trade_date |
datetime | 交易日期 | 2024-01-15 |
asset_code |
string | 资产代码 | BTC/USDT |
open_price |
float | 开盘价 | 42500.50 |
high_price |
float | 最高价 | 43120.00 |
low_price |
float | 最低价 | 41890.30 |
close_price |
float | 收盘价 | 42800.75 |
volume |
float | 成交量 | 12500.00 |
volatility_5d |
float | 5日波动率 | 0.0235 |
rsi_14 |
float | 14日相对强弱指标 | 62.30 |
macd_diff |
float | MACD 差值 | 15.20 |
bb_upper |
float | 布林带上轨 | 43500.00 |
bb_lower |
float | 布林带下轨 | 41500.00 |
funding_rate |
float | 资金费率 | 0.0001 |
open_interest |
float | 未平仓合约量 | 850000.00 |
label |
int | 坏账标签(0=正常,1=坏账) | 0 |
2.5.2 数据加载示例
import pandas as pd
# 从 CSV 文件加载数据
df = pd.read_csv('market_bad_debt_data.csv', parse_dates=['trade_date'])
# 查看数据基本信息
print(f"数据集形状: {df.shape}")
print(f"特征列数: {len(df.columns) - 1}") # 减去 label 列
print(f"坏账样本占比: {df['label'].mean():.2%}")
# 查看前 5 行
df.head()
2.6 环境完整性检查清单
完成上述步骤后,请逐项核对以下清单,确保所有组件就绪:
- Python 版本:
python --version→ 3.8+ - XGBoost 安装:
import xgboost无报错 - Jupyter 启动:浏览器打开
http://localhost:8888正常显示 - 扩展插件:Nbextensions 标签页可见,Table of Contents 已勾选
- 数据文件:
market_bad_debt_data.csv位于工作目录下 - 依赖库:
numpy、pandas、scikit-learn、matplotlib均可导入
✅ 环境就绪标志: 在 Jupyter Notebook 中执行以下代码,若输出
All components ready! 则说明环境搭建成功。import numpy as np, pandas as pd, xgboost as xgb, sklearn, matplotlib
print("All components ready!")