ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
在工程实践中,我们拿到的数据往往会存在有缺失值、异常值等,因此在应用机器学习算法之前需要进行数据预处理。自动化机器学习平台有一套标准的数据预处理流程,针对不同的任务和数据集属性分配不同的策略,包括多种数据集划分策略、多种缺失值处理策略、多种预处理方法等。 ## 1. 数据切分 (1)固定比例切分 固定比例切分是常用的一种切分方式,用户只需要指定好切分的训练集比例、验证集比例、测试集比例即可。 (2)K 折切分 K 折切分 是交叉验证的一种方式,为了充分利用数据集对算法效果进行测试,将数据集随机切分为 K 个部分,每次将其中的 `K-1` 个部分作为训练集进行训练,而将剩下的那一部分作为测试集去验证模型效果。 (3)留P法切分 留P法切分 也是交叉验证的一种方式,假定数据集中有 N 个样本,设定一个 P 值,每次将 P 个样本作为测试样本,其他 `N-P`个样本作为训练样本。 (4)固定比例的时序切分 固定比例时序切分是针对时间序列数据的切分方式,相对于非时间序列数据的切分,用户需要指定一个时间字段。然后平台会自动根据切分比例计算出训练集、验证集、测试集的起止时间,并将起止时间内的一段数据作为当前集合。 (5)固定日期的时序切分 固定日期时序切分也是针对时间序列数据的切分方式,相对于固定比例的时序切分方式,这种方式需要用户指定训练集、验证集和测试集的起止时间。 (6)序列切分 序列切分是针对序列数据的切分方式,这种方式需要用户指定训练集、验证集和测试集的起止索引。 (7)指定索引切分 指定索引切分方式是平台出于业务需求而设置的切分方式,主要用于集成训练中,指定一段集合中元素的索引列表,供 `sub model` 使用。 ## 2. 缺失值处理 (1)删除缺失值样本 如果训练数据中含有缺失值,会对训练模型造成很大的干扰,因此在训练之前,有必要对缺失值数据进行处理。如果某条样本缺失值比例较大,那么可以选择直接删除该条样本。 (2)填充缺失值 对于含有少量缺失值的样本,可以选择某种策略对缺失值进行填充,平台提供了四种填充缺失值的方法。 (3)默认值填充 这种方式下由用户指定一个默认的填充值,然后平台会自动地用这个默认值对含有缺失值的列进行填充。 (4)平均值填充 这种方式下平台会自动对含有缺失值的列进行填充,填充值就是该列所有数值的平均值。 (5)中位数填充 这种方式下平台会自动对含有缺失值的列进行填充,填充值就是该列所有数值的中位数。 (6)众数填充 这种方式下平台会自动对含有缺失值的列进行填充,填充值就是该列所有数值的众数,所谓众数就是出现次数最频繁的那个数值。 ## 3. 异常值处理 异常值是数据集中存在的不合理的值,又称离群点,这些异常值将会影响模型的训练效果,带来噪声特征,因此有必要在训练前对这些异常值进行处理。平台提供了两种方法进行处理:`TYPE\_DROP\_ROW` 和 `TYPE\_COL\_EXTREME` 。 (1)TYPE\_DROP\_ROW 计算出合理特征值的上下界,对于特征值小于 `lower` 或者特征值大于 `upper` 的行进行删除。 (2)TYPE\_COL\_EXTREME 同样是先计算出特征数据的合理特征值的上下界,并对上下界外的数据用相应的值做替换。 ## 4. 特征变换 平台支持若干特征变换方式,名称如下: (1)特征二值化 (2)特征标准化 (3)区间缩放 (4)特征编码 (5)平滑处理 (6)数学变换