常用机器学习算法训练预测模型的常规流程

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

以XGBoost算法为例,主要操作步骤如下:

1. 读取集群目录数据
2. 批量重新命名字段名称
3. 统计各列缺失值个数
4. 对缺失值进行填充(数值型变量采用中位数、分类变量采用众数)
5. 过滤掉异常记录
6. 过滤掉缺失值过多的列
7. 对分类型变量进行编码,将label列转换为0/1类型
8. 批量对分类变量先进行StringIndexer操作,再批量进行OneHotEncoderEstimator操作
9. 使用VectorAssembler拼接字段
10. 创建XGBoost
11. 设置pipeline模式: val pipeline = new Pipeline().setStages(indexers ++ encoders ++ Array(vectorAssembler, xgb))
12. 创建evaluator,采用ROC
13. 创建XGBoost paramater grid
14. 构造cv
15. 切分trainingData、testData,设定seed便于数据复现
16. 训练模型: val xgbModel = cv.fit(trainingData)
17. 测试模型: val results = xgbModel.transform(testData)
18. 保存BestModel: val bestPipelineModel = xgbModel.bestModel.asInstanceOf[PipelineModel]
19. 创建一个测试数据集不含label字段,但是需要包含对应的user_id
20. 读取创建的数据集进行预测


注:在进行特征工程之前需要单独封装一个函数,用于数据预处理,也便于后续进行模型预测,主要是特征工程暂时无法操作的数据预处理步骤。

转载于:https://my.oschina.net/kyo4321/blog/3009751

你可能感兴趣的:(常用机器学习算法训练预测模型的常规流程)