在工程實踐中,我們拿到的數據往往會存在有缺失值、異常值等,因此在應用機器學習算法之前需要進行數據預處理。自動化機器學習平臺有一套標準的數據預處理流程,針對不同的任務和數據集屬性分配不同的策略,包括多種數據集劃分策略、多種缺失值處理策略、多種預處理方法等。
## 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)數學變換