机器学习算法
以下 sklearn 系算法模板的代码入口在
job-template/job/sklearn/(每个算法一个launcher-xxx.py)。多数算法共用一组入参:train_dataset、val_dataset、feature_columns、label_columns、save_model_dir、inference_dataset、model_params。save_model_dir 写到文件夹级别即可(不用写到 pkl 级别)。
random-forest
随机森林算法模板。
入参(通用六项 + model_params):
- train_dataset:训练数据集路径,如
data/fin_data_train.csv - val_dataset:评估数据集地址,如
data/fin_data_val.csv - feature_columns:特征列,英文逗号分隔
- label_columns:标签列,英文逗号分隔
- save_model_dir:模型保存路径,如
model/,文件夹级别即可 - inference_dataset:测试数据集路径,如
data/fin_data_test.csv - model_params:模型输入参数,如
{"n_estimators": 300},参考 sklearn RandomForestClassifier
lr
逻辑回归算法模板。入参同上六项,外加:
- model_params:如
{"C": 2,"fit_intercept": True},参考 sklearn LogisticRegression
lightgbm
lightgbm 算法模板。入参同上六项,外加:
- model_params:如
{"max_depth": 5,"reg_lambda": 2},参考 LightGBM 文档 “用于控制模型学习过程的参数”部分
knn
knn 算法模板。入参同上六项,外加:
- model_params:如
{"n_neighbors": 200,"algorithm": "ball_tree"},参考 sklearn KNeighborsClassifier
kmean
kmean 算法模板(平台中注册的模板名为 kmeans)。入参同上六项,外加:
- model_params:如
{"n_clusters": 3,"max_iter": 200},参考 sklearn KMeans
gbdt
gbdt 算法模板。入参同上六项,外加:
- model_params:如
{"n_estimators": 150,"learning_rate": 0.1},参考 sklearn GradientBoostingClassifier
decision-tree
决策树算法模板。入参同上六项,外加:
- model_params:如
{"max_depth": 3,"min_samples_split": 5},参考 sklearn DecisionTreeClassifier
bayesian
朴素贝叶斯算法模板。
入参:
- train_dataset:训练数据集路径,如
data/fin_data_train.csv - test_dataset:评估数据集路径,如
data/fin_data_val.csv - save_model_dir:模型保存路径,文件夹级别即可
- inference_dataset:测试数据集路径,如
data/fin_data_test.csv
注:bayesian 模板的评估集参数名为
test_dataset(与其他算法的val_dataset不同),源文档如此,使用前可对照job-template/job/sklearn/launcher-bayesian.py。
xgb
xgb 单机训练模板。
入参:
- train_dataset:训练数据集路径
- val_dataset:评估数据集路径
- feature_columns:特征列,英文逗号分隔
- label_columns:标签列,英文逗号分隔
- model_params:模型输入参数,如:
参考 XGBClassifier 文档{ "booster": "gbtree", "eta": 0.1, "gamma": 0, "max_depth": 6, "objective": "binary:logistic", "eval_metric": "auc" } - save_model_dir:模型保存路径,文件夹级别即可
- inference_dataset:测试数据集路径
adaboost
adaboost 算法模板。入参同通用六项,外加:
- model_params:如
{"n_estimators": 100,"learning_rate": 0.05},参考 sklearn AdaBoostClassifier
hyperparameter-search-ray
超参搜索模板(基于 Ray Tune)。
入参:
- command:运行算法模板的命令,比如
python /mnt/admin/cube-studio/job-template/job/sklearn/launcher-kmeans.py --save_model_dir /mnt/admin/pipeline/kmeans/ --train_dataset /mnt/admin/pipeline/example/feature-process/data-test.csv --label_columns y --feature_columns age,duration,... - params:需要进行超参搜索的超参数,如
{"n_clusters": tune.grid_search([2,3,4]),"max_iter": tune.grid_search([50,100,200])} - outfile:超参搜索评估结果,如
mnt/admin/pipeline/kmeans/val_result.json - metric:模型评估方式,如 silhouette_avg_train(训练集轮廓系数)
- mode:评估参数越大越好还是越小越好,max 越大越好,min 越小越好
- num_samples:超参搜索用的样本数,默认 1
- result_save_path:输出结果地址,如
/mnt/admin/pipeline/ray_hyperparams/hyperparams_r_kmeans.csv
注意:sklearn 系算法的 launcher 实为
job-template/job/sklearn/launcher-<算法>.py(如 kmeans 为launcher-kmeans.py),仓库中并无job/kmeans/目录,上方命令路径已据此修正。此外该超参搜索模板还支持--workdir(命令执行目录)入参(hyperparameter-search-ray/launcher.py:145),上方入参列表未列出,按实际部署的目录结构和模板入参填写即可。
ar
时间序列算法 AR。
入参:
- train_dataset:训练数据集来源
- feature_col:特征列,只能有一个列名
- save_model_dir:模型相关输出文件保存的文件夹,到文件夹层面即可
- time_col:时间列的列名
- start:开始预测的位置
- end:结束预测的位置
- lag:AR 算法参数,窗口大小
arima
时间序列算法 ARIMA。
入参:
- train_dataset:训练数据集来源
- feature_col:特征列,只能有一个列名
- save_model_dir:模型相关输出文件保存的文件夹
- time_col:时间列的列名
- start:开始预测的位置
- end:结束预测的位置
- order:ARIMA 算法参数,阶数大小
rf-regression
随机森林回归模型(平台中注册的模板名为 random-forest-regression)。入参同通用六项,外加:
- model_params:如
{"n_estimators": 300},参考 sklearn RandomForestRegressor