在分類及預測任務中對高維類別(category)變數的預處理方法
引言
眾所周知,資料探勘中大約有80%的時間被用來做資料預處理。其中高維類別資料是資料探勘演算法(比如神經網路、線性or邏輯迴歸、SVM)最具挑戰性的資料型別。事實上,在一些像決策樹或者一些規則歸納的學習演算法中,對類別資料並不需要額外的處理。但是一些迴歸演算法卻需要將每一個輸入特徵都轉變成數值型別的特徵。而且在現實生活中,我們需要解決的分類或者預測問題的資料集中,充滿了類別屬性,比如:ZIP碼,SIC,IP,區號,域名等等。這就需要有種系統的方法能夠將高維類別資料對映到可供迴歸任務學習的準連續標量屬性上。我讀了篇SIGKDD上的解決上述問題的文章:A Preprocessing Scheme for High-Cardinality Categorical
Attributes in Classification and Prediction Problems
文章方法綜述
該論文提出了一種將高維類別屬性的資料對映到可供迴歸任務學習的準連續標量屬性上。轉換的關鍵之處在於將高維類別屬性的每個值對映成基於目標屬性的概率估計。
- 在分類場景下,被對映成,給定類別屬性值的條件下,目標屬性的後驗概率。
- 在預測場景下,被對映成,給定類別屬性值的條件下,目標的期望值。
該方法聽起來是統計相關的,而且可以應用於分類與迴歸的任務場景中,它還優雅地處理了類別屬性是缺失值的情況。這種方法聽起來是不是牛掰爆了,大家會擔心,這種方法是不是很難呀。在這裡我要說的是:很簡單~。論文的組織結構如下:第二節講述了處理類別屬性的最通用的方法;第三節講述了本文要重點分析的方法;第四節描述了該方法在層次化資料上的應用拓展;第五節就總結了文章。接下來,本文也會按照論文的組織結構,給大家分析下這篇論文的。
處理類別屬性的通用方法
這裡處理類別屬性的通用方法有兩大類,這兩大類按照資料的維度劃分。因此可以分為低維類別資料及高維類別資料。
低維類別資料預處理方法
對於低維度的類別資料最普遍的做法就是二值化。我們簡單舉個例子:
ID | Gender | Color of cloth |
---|---|---|
1 | male | blue |
2 | female | white |
3 | male | red |
上面的表格中存放了我們構造的三個樣本資料,其中屬性欄,有三個屬性,ID,Gender,Color of cloth,其中很明顯,Gender與Color of cloth是類別屬性。我們將其二值化,從而將二值化後的新表格如下圖所示:
ID | male | female | blue | white | red |
---|---|---|---|---|---|
1 | 1 | 0 | 1 | 0 | 0 |
2 | 0 | 1 | 0 | 1 | 0 |
3 | 1 | 0 | 0 | 0 | 1 |
二值化編碼的核心思想就是將第i個組成標記為1,其餘標記為0。這是一種1到N的對映關係,當面對高維類別資料即N很大的時候,這種方法就不太適用(矩陣很稀疏)。那麼為了解決高維類別屬性,又該採用何種方法呢?
高維類別資料
現如今,處理高維類別資料的最常用方法就是聚類。核心思想就是將1到N的對映問題降維到1到K的對映問題上來(
因此該方法的工作流程就是:
*先採用諸如層次聚類的聚類演算法,有效地將N個原始資料聚類成K個簇
*再將K個簇二值化
然後論文就說了下這些通用方法的缺點啊,不足啊,又吹捧了下自己提出的方法。
使用目標統計方法來對類別屬性進行編碼
終於來到正文了,首先說下,接下來提到的方法,就如我們章節標題所寫,是個典型的統計學方法,而且歷史悠久,應用領域頗多,但是,在類似這些分類預測任務中作為預處理方法的應用,其他文獻沒有提到過,所以文章還是有一定創新性的。
這一章節將按照目標變數的型別分成三個小節:二值型變數、連續型變數、多類別變數
二值型變數
當目標屬性
有了這個對映關係,接下來就需要來算出這個“概率估計”了。這裡我們假設訓練集有
假如訓練樣本足夠大,那麼概率估計直接可以用下面的公式計算:
其中
但是在實際場景中,
其中
當
其中可以給權重因子指定一個函式,例如:
很顯然,該函式是個sigmoid函式變種。當n=k時,函式大小為0.5,此處為S型曲線的拐點。引數
公式(3)在統計與精算學中有著很長的一段歷史。事實上公式(3)是貝葉斯概率的分支之一被稱作經驗貝葉斯(Empirical Bayesian)。
公式如下:
其中