处理模型训练的数据

学习目标

  • 使用 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 算法