Skip to content

CLI 与流水线

本章目标

  1. 掌握 CLI 四种命令的用法和执行流程。
  2. 了解全部 20 条流水线的配置速览。

1. CLI 入口

入口文件main.py

1.1 命令一览

bash
# 列出所有可用流水线
python main.py list

# 运行单个流水线
python main.py run <pipelineId>
python main.py run regression.linear_regression
python main.py run classification.svc
python main.py run probabilistic.hmm

# 运行一组流水线(按 domain 前缀筛选)
python main.py suite <groupName>
python main.py suite all              # 全部 20 条
python main.py suite classification   # 分类(6 条)
python main.py suite regression       # 回归(4 条)
python main.py suite ensemble         # 集成(4 条)
python main.py suite clustering       # 聚类(2 条)
python main.py suite dimensionality   # 降维(2 条)
python main.py suite probabilistic    # 概率模型(2 条)

# 仅做数据探索——加载数据并打印统计报告,不训练
python main.py analyze <pipelineId>

1.2 执行流程

main()
  ├─ list    → _printPipelineList()
  │             遍历 PIPELINE_REGISTRY → 按 ID 排序 → 逐条打印摘要

  ├─ run     → _runPipeline(id)
  │             PIPELINE_REGISTRY.get(id)  → PipelineSpec
  │             DATASET_REGISTRY.get(datasetId) → DatasetSpec
  │             ensureOptionalDependencies()    → 检查可选依赖
  │             executePipeline(spec, ds)       → 分发到 Runner

  ├─ suite   → _runSuite(group)
  │             按 domain 前缀筛选 pipelineId 列表
  │             逐个 _runPipeline() → 打印 [OK] / [FAIL] / [SKIP]

  └─ analyze → _analyzePipeline(id)
               加载数据 → 构建探索报告 → 终端打印

1.3 可选依赖处理

部分流水线依赖可选第三方库:

依赖涉及的流水线
hmmlearnprobabilistic.hmm
xgboostensemble.xgboost
lightgbmensemble.lightgbm

当可选依赖未安装时:

  • CLI 打印 [SKIP] <pipelineId>: 缺少可选依赖 而非崩溃。
  • suite 模式下其他流水线继续正常执行。

2. 全部流水线速览

2.1 分类(Classification)— 6 条

流水线 ID模型预处理数据特点独有可视化
classification.logistic_regressionLogisticRegression(max_iter=1000)standardScaler线性可分二分类决策边界、ROC
classification.decision_treeDecisionTreeClassifier(max_depth=6)Noneblob 多分类决策边界、树结构
classification.svcSVC(rbf, probability=True)standardScaler同心圆二分类决策边界、ROC
classification.naive_bayesGaussianNBstandardScalerIris 真实数据决策边界
classification.knnKNeighborsClassifier(5)standardScaler双月牙二分类决策边界
classification.random_forestRandomForestClassifier(100)None高维多分类特征重要性、决策边界

2.2 回归(Regression)— 4 条

流水线 ID模型预处理数据特点独有可视化
regression.linear_regressionLinearRegressionNone合成线性房价(200 × 3)学习曲线、系数对照
regression.svrSVR(rbf, C=10, ε=0.1)standardScalerFriedman1 非线性(200 × 10)学习曲线、支持向量数
regression.decision_treeDecisionTreeRegressor(max_depth=6)NoneCalifornia Housing(20640 × 8)学习曲线、树结构
regression.regularizationLasso / Ridge / ElasticNetstandardScalerdiabetes + 共线 + 噪声(442 × 21)多模型对比、近零系数

2.3 聚类(Clustering)— 2 条

流水线 ID模型预处理数据特点独有可视化
clustering.kmeansKMeansstandardScaler球形多簇K 值扫描(惯性曲线)
clustering.dbscanDBSCANstandardScaler双月牙非线性ε 扫描、k-距离图

2.4 降维(Dimensionality)— 2 条

流水线 ID模型预处理数据特点独有可视化
dimensionality.pcaPCAstandardScaler高维低秩合成累计解释方差训练曲线
dimensionality.ldaLDAstandardScalerWine 真实数据(13 维 → 2 维)分类评估(混淆矩阵 + ROC)

2.5 集成学习(Ensemble)— 4 条

流水线 ID模型预处理数据特点独有可视化
ensemble.baggingBaggingClassifier(DT, n=30)standardScaler高噪声双月牙二分类决策边界
ensemble.gbdtGradientBoostingClassifierstandardScaler中等难度多分类特征重要性
ensemble.xgboostXGBRegressor(n=300, lr=0.05)None回归数据特征重要性
ensemble.lightgbmLGBMClassifier(n=80)standardScaler高维四分类特征重要性

2.6 概率模型(Probabilistic)— 2 条

流水线 ID模型预处理数据特点独有可视化
probabilistic.emGaussianMixturestandardScalerGMM 混合数据分量数扫描(BIC/AIC)
probabilistic.hmmCategoricalHMMNone离散序列无图形化输出(仅终端日志)

3. 回归流水线对比矩阵

四条回归流水线展示了四种典型的配置组合:

配置维度线性回归SVR决策树回归正则化回归
标准化
学习曲线
特征重要性有(coef_)无(RBF 核)
树结构
多模型有(3 个)
训练函数行数32~5~10