2. 环境搭建与工具准备:Python环境、XGBoost库安装、Jupyter Notebook配置、数据集获取

本章是实战课程的基石。在构建行情坏账率哨兵模型之前,必须确保开发环境干净、工具链完整、数据源可访问。我们将按照“基础环境 → 核心库 → 交互工具 → 数据准备”的顺序逐步搭建,避免版本冲突和路径混乱。

2.1 环境全景概览

下图展示了本章搭建的完整技术栈层次关系,从底层操作系统到顶层数据接口,每个组件都将在后续章节中被直接调用。

环境搭建技术栈全景图 操作系统层:Windows / macOS / Linux Python 3.8+ 基础环境(Anaconda / Miniconda) 核心计算库:NumPy / Pandas / Scikit-learn / XGBoost 交互与可视化:Jupyter Notebook / Matplotlib 数据源:行情历史数据 / 坏账标签 CSV

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!")