引言
在進行數據挖掘的時候,我們拿到都是從現實社會中得到的原始數據,它是充滿噪聲的,維度也可能很高,也可能重複,因此在正式的進行數據挖掘之前我們需要對數據進行預處理。
數據預處理大概包括這幾個方面:
- 數據清洗
- 數據集成
- 數據變換
- 數據規約
數據清洗
數據清洗處理處理這幾個問題
- 數據空缺
- 噪聲處理
- 不一致數據
數值空缺
- 清楚空缺值記錄(尤其是類別空缺的時候)
- 取平均值(最好去同類別的平均值)
- 設定一個全局變量unknown,將空缺值設爲這個
- 通過迴歸等方法對空缺值進行預測
噪聲處理
- 分箱: 參考相鄰值平滑
- 平滑
- 均值替換
- 中值替換
- 邊界值(最大/小值)替換
- 分箱方法
- 等深分箱:排序後,每個箱子裝相同數量的數據
- 等寬分箱:排序後,每個箱子的數據的寬度相同
- 平滑
- 聚類:排除異常值
- 計算機與人工檢測結合:計算機檢測出來後再人工進行識別
- 迴歸
不一致的數據
解決方法:
- 人工更正
- 知識工作工具
- 數據字典
數據集成
數據集成:將多文件或者多數據庫中的異構數據進行合併,然後存放在一個一致的數據存儲中。
考慮的問題:
- 模式匹配
- 數據冗餘
- 數據值衝突
數據變換
數據變換包括這幾個方面
- 平滑
- 聚集
- 數據概化
- 規範化
數據規範化
最大-最小規範化
z−score 規範化(零均值規範化)
小數定標規範化
數據規約
數據歸約:目的是爲了獲得比原始數據小的多的,但不破壞數據完整性的挖掘數據集,該數據集可以得到與原始數據相同的挖掘結果。(提高數據挖掘的效率)
方法:
- 數據立方體聚集:把聚集的方法用於數據立方體。
- 維歸約:檢測並刪除不相關、弱相關或冗餘屬性。
- 數據壓縮:選擇正確的編碼壓縮數據集。
- 數值壓縮:用較小的數據表示數據,或採用較短的數據單位,或者用數據模型代表數據。
離散化和概念分層生成:使連續的數據離散化,用確定的有限個區段值代替原始值;概念分層是指用較高層次的概念替換低層次的概念,以此來減少取值個數。
屬性子集選擇的基本方法包括以下幾種(啓發式算法):- 逐步向前選擇
- 逐步向後刪除
- 向前選擇和向後刪除結合
- 判定樹歸納
- 基於統計分析的歸約