处理模型训练的数据
学习目标
使用 SAP HANA 数据框架进行数据处理,并可视化员工流失数据集的属性。
准备用于员工流失预测的数据
面向 SAP HANA 的 Python 机器学习客户端 (hana-ml) 提供了一个界面,用于利用 Python 中的预测分析库 (PAL) 和自动预测库 (APL) 函数。它支持在 SAP HANA 数据框架上无缝执行机器学习和预测分析工作流,允许直接在 SAP HANA 环境中训练、评估和部署模型。
本课重点介绍通过对数据进行分区和结构化以进行分类,为模型训练准备员工流失数据集。这可确保优化数据集,以便使用 PAL 分类算法训练可靠的预测模型。
对输入数据进行分区
准备数据集后,下一步是将数据划分为训练和测试子集,以确保有效的机器学习模型评估。现在,我们来详细了解分区流程。
为了有效地构建和评估预测模型,输入数据集被随机划分为两个不相交的子集:训练和测试。如果未显式指定 'ID' 列,则假定数据框架的第一列包含 'ID'。有关详细信息,请参阅 [1]。
对于上述子集,不存在普遍最佳分区百分比。分区的选择应与预测项目的特定目标保持一致。
公用分区百分比包括:
培训:80%/测试:20%
培训:70%/测试:30%
培训:60%/测试:40%
在这种情况下,目标是最大化可用于训练的数据,同时确保保留足够的数据点以进行强大的模型评估。因此,已选择以下数据拆分:
培训:85%/测试:15%
此外,还通过将员工分为两组来进一步汇总培训子集:
过去 12 个月内离职的员工。
在同一期间内离职的员工。
'FLIGHT_RISK' 列用作标识,标记员工在过去 12 个月内是否已离开公司。"N"列表示每个类别中的员工人数。
# Split the station classification dataframe into a training and test subset
df_train, df_test, df_val = train_test_val_split(data=hdf_employeechurn, id_column='EMPLOYEE_ID',
random_seed=1234,
partition_method='stratified', stratified_column='FLIGHT_RISK',
training_percentage=0.85,
testing_percentage=0.15,
validation_percentage=0.00)
#df_train.describe().collect()
df_train.agg([('count', 'EMPLOYEE_ID', 'N')], group_by='FLIGHT_RISK').collect()
ITEM_NUMBER |
FLIGHT_RISK |
N |
|---|---|---|
0 |
否 |
14463 |
1 |
是 |
1785 |
参考
[1]SAP hana_ml.algorithms.pal.partition - train_test_val_split 算法