數據挖掘-認識數據
數據對象與屬性類型
數據集由數據對象組成。一個數據對象代表一個實體。例如銷售數據庫中,對象可以是顧客、商品。屬性是一個數據字段,表示數據對象的一個特征。
屬性類型
標稱屬性(nominal attribute):一些事物的名稱,每個值代表某種類別、編碼或者狀態。不具有有意義的序,不是定量的,其均值和中位數無意義,總數有意義。例如,顏色這個對象的屬性可能有黑色、紅色、白色等,職業可能值有教師、醫生等。
二元屬性(binary attribute):一種標稱屬性,只有兩個類別或狀態:0或1。有對稱和非對稱兩種情況,對稱比如性別男女兩種狀態;非對稱比如HIV檢測中的陽性和陰性,為了方便,通常用1表示最重要的結果(通常是稀有的,另一個用0編碼。
序數屬性(ordinal attribute):值之間具有有意義的序,但是相繼值之間的差未知。其中心趨勢可以用眾數和中位數來表示,但不能定義均值。比如成績有A+、A、A-等。
上面三個都是定性的屬性,即它們描述對象的特征而不給出實際大小或數量,其值只代表編碼,而不是可測量的量。
- 數值屬性(numeric attribute)是定量的,可度量,用整數或實數值表示。
- 區間標度屬性(interval-scaled):允許比較和定量評估值之間的差,但是沒有真正的零點,沒有比率或者倍數關系,可以計算中位數,眾數和均值。例如,攝氏溫度,我們不能說10攝氏度比5攝氏度溫暖2倍。
- 比率標度屬性(ratio-scaled):具有固定零點,可以計算均值、中位數和眾數。例如,工作年限、文章字數等計數屬性。
數據的基本統計描述
我們為了把握數據的全貌,關註數據的中心趨勢度量、數據的散布和圖形顯示。
中心趨勢度量
中心趨勢度量度量數據分布的中部或中心位置,或者說,給定一個屬性,它的值大部分落在何處?
均值 (mean)
最常用最有效的是的算術均值:
\[ \overline{x} = \frac{\sum_{i=1}^N x_i}{N} \]
或者使用加權平均,反映對應值的意義、重要性或者出現頻率。
\[ \overline{x} = \frac{\sum_{i=1}^N w_ix_i}{\sum_{i=1}^N w_i} \]
但是均值對極端值很敏感,對於非對稱數據,數據中心更好的度量是中位數。
中位數 (median)
中位數是有序數據的中間值,將數據分成兩半。
中位數在觀測數量很大時,計算開銷很大。下面給出近似計算公式。假定數據根據值劃分成了區間,並且已知每個區間的頻率(數據值的個數)。令包含中位數頻率的區間為中位數區間。
其中,\(L_1\)是中位數區間下界,\(N\)是整個數據集中值的個數,\(\sum freq\)是低於中位數區間的所有區間的頻率和,\(freq_{median}\)是中位數區間的頻率,\(width\)是中位數區間的寬度。
眾數 (mode)
出現最頻繁的值。具有有一個、兩個、三個眾數的數據集合分別成為單峰的(unimodal)、雙峰的(bimodal)、三峰的(trimodal)。
當數據對稱時,眾數 = 中位數 = 均值。
當次數分布右偏時,即正傾斜時,均值受偏高數值影響較大,其位置必然在眾數之右,中位數在眾數與算術平均數之間,眾數 < 中位數 < 均值。
反之,當次數分布左偏時,即負傾斜時,均值受偏小數值的影響較大,其位置在眾數之左,中位數仍在兩者之間,均值 < 中位數 < 眾數。
中列數(midrange)
最大和最小值的平均值。
數據的散布
極差(range)
最大值和最小值之差。
四分位數(quartile)
把數據劃分成四個基本上大小相等的連貫集合。
$ Q_1 $:有25%的數據在此之下;
$ Q_2 $:有50%的數據在此之下,即中位數;
$ Q_3 $:有75%的數據在此之下。
四分位數極差IQR:給出被數據中間一半所覆蓋的範圍。
\[ IQR = Q_3 - Q_1 \]
對於傾斜分布,單個散步數值度量如IQR都不是很有用,識別可以離群點的通常規則是挑選落在 \(Q_3\) 之上和 \(Q_1\) 之下至少 \(1.5 * IQR\) 處的值。
五數概括:最小值、\(Q_1\)、中位數、\(Q_3\)、最大值。盒圖體現了五數概括。
方差(Variance)和標準差(Standard deviation)
\[ \sigma ^2 = \frac{1}{N} \sum_{i=1}^{N}(x_i - \overline{x})^2 \]
\(\sigma ^2\) 是方差,\(\sigma\)是標準差。
圖形顯示
分位數圖
設 \(x_i\) 是按遞增順序的數據,使得 \(x_1\) 是最小的觀測值,而 \(x_N\) 是最大的,每個觀測值\(x_i\) 與一個百分數\(f_i\)對應,指出大約\(f_i * 100%\)的數據小於值\(x_i\)。
分位數-分位數圖
可以使得用戶觀察從一個分布到另一個分布是否有漂移。
例如兩個部門銷售商品的單價數據的分位數-分位數圖。
比如在\(Q2\),部門1銷售的商品50%低於或等於78美元,而部門21銷售的商品50%低於或等於85美元。中間那條45度實線代表沒有偏移。從總體來看也可以看出部門1銷售的商品單價趨向於比部門2低。
(頻率)直方圖
如果數據是標稱的,一般稱作條形圖,數據是數值的,多使用術語直方圖。
散點圖
散點圖是一種觀察雙變量數據的有用方法。可以通過其看出兩個變量是正相關、負相關還是不相關的。
度量數據的相似性和相異性
相似性和相異行都稱為鄰近性,用於評估對象之間相互比較的相似或不相似的程度。
數據矩陣和相異性矩陣
數據矩陣
n個對象被p個屬性刻畫。
對象-屬性結構,行代表對象,列代表屬性,因此數據矩陣通常被稱為二模矩陣。
\[
\left[
\begin{matrix}
x_{11} & \cdots & x_{1f} & \cdots & x_{1p} \\\ \cdots & \cdots & \cdots & \cdots & \cdots \\\ x_{i1} & \cdots & x_{if} & \cdots & x_{ip} \\\ \cdots & \cdots & \cdots & \cdots & \cdots \\\ x_{n1} & \cdots & x_{nf} & \cdots & x_{np}
\end{matrix}
\right]
\]
相異性矩陣
存放n個對象兩兩之間的鄰近度。
對象-對象結構,只包含一類實體,因此被稱為單模矩陣。
\[
\left[
\begin{matrix}
0 & & & & \\\ d(2,1) & 0 & & & \\\ d(3,1) & d(3,2) & 0 & & \\\ \vdots & \vdots & \vdots & & \\\ d(n,1) & d(n,2) & \cdots & \cdots & 0
\end{matrix}
\right]
\]
該矩陣是對稱的,\(d(i,j)\)是對象i和對象j之間的相異性的度量,其中\(d(i,i) = 0\),即一個對象與自己的差別為0。
下面我們討論對於不同類型數據的鄰近性度量方法。
標稱數據的鄰近性度量
標稱屬性可以取不同的狀態,如顏色有紅、黃等狀態,這些狀態可以用字母、符號或者一組整數來表示。
兩個對象之間的相異性可以根據不匹配率來計算。
\[d(i,j) = \frac{p-m}{p} \]
其中,m是匹配的數目,即i和j取值相同狀態的屬性數,p是屬性總數。
相似性可以根據下式計算:
\[ sim(i,j) = 1 - d(i, j) = \frac{m}{p} \]
標稱屬性可以使用非對稱的二元屬性編碼,如對顏色,可以對所有的顏色狀態分別創建一個二元變量,如果一個對象為黃色,則黃色屬性設置為1,其他設置為0。
二元屬性的鄰近性度量
1 | 0 | |
---|---|---|
1 | q | r |
0 | s | t |
在上表中,q是對象i和j都取1的屬性數,其他類似。
對於對稱的二元屬性:
\[ d(i,j) = \frac{r+s}{q+r+s+t} \]
對於非對稱的二元樹型,一般兩個值都取1被認為比兩個都取0的情況更有意義,負匹配數t通常忽略。
\[ d(i,j) = \frac{r+s}{q+r+s} \]
非對稱的二元相似性被稱為Jaccard系數,在文獻中被廣泛使用。
\[ sim(i,j) = \frac{q}{q+r+s} = 1 - d(i,j) \]
數值屬性的相異性:閔科夫斯基距離
\[
d(i,j) = \sqrt[h]{|x_{i1} - x_{j1}|^h + \cdots + |x_{ip} - x_{jp}|^h}
\]
當h=1時,為曼哈頓距離,$ d(i,j) = |x_{i1} - x_{j1}| + \cdots + |x_{ip} - x_{jp}|$
當h=2時,為歐幾裏得距離,$ d(i,j) = \sqrt[2]{|x_{i1} - x_{j1}|^2 + \cdots + |x_{ip} - x_{jp}|^2} $
當h趨近於無窮時,為上確界距離,即兩個對象的最大屬性值差,$ d(i,j) = \max_{f}^{p}|x_{if}-x_{jf}| $
序數屬性的鄰近性度量
- 假設\(f\)為一個序數屬性,值為\(x_{if}\),其有\(M_f\)個有序的狀態,表示排位,用對應的排位\(r_{if} \in \{1,\dots,M_F\}\)取代\(x_{if}\)
- 由於每個序數屬性都可能有不同的狀態數,所以通常將每個屬性的值域映射到\([0.0,1.0]\)上,用\(z_{if}\)代替\(r_{if}\)來實現數據規格化。
\[ z_{if} = \frac{r_{if}-1}{M_{f}-1} \] - 這時候序數屬性的鄰近性度量就可以轉換為數值屬性的鄰近性度量來求了。
混合屬性的相異性
一個對象可能包含很多不同類型的數據,可能有標稱的、對稱或者非對稱二元的、數值的或者序數的,假設數據集包含$ p $個混合類型的屬性,則:
\[
d(i,j) = \frac{ \sum_{f=1}^{p} \delta_{ij}^{[f]} d_{ij}^{[f]} } { \sum_{f=1}^{p} \delta_{ij}^{[f]} }
\]
其中,如果對象i和對象j沒有屬性f的度量值,或者兩個對象的f的度量值都為0且f是非對稱的二元屬性,則\(\delta_{ij}^{[f]}=0\),否則取1。
至於\(d_{ij}^{[f]}\),
- f是數值的:$ d_{ij}^{[f]} = \frac{|x_{if}-x_{jf}|} {\max_{h} x_{hf}-\min_{h} x_{hf}} $ ,其中,h遍取屬性f的所有非缺失對象。
- f是標稱或二元的:如果\(x_{if} = x{jf}\),則\(d_{ij}^{[f]}=0\),否則取1。
- f是序數的:計算排位\(r_{if}\)和\(z_{if} = \frac{r_{if}-1}{M_f-1}\),然後作為數值屬性處理。
余弦相似性
用來比較文檔,每個文檔都被一個所謂的詞頻向量表示,通常很長,而且稀疏,傳統的距離度量效果並不好。
\[ sim(i,j) = \frac{x \cdot y}{||x|| ||y||} \]
當屬性是二值屬性時,\(x \cdot y\)是\(x\) 和\(y\)共有的屬性數,而\(|x||y|\)是\(x\)具有的屬性數 和\(y\)具有的屬性數的幾何均值,於是\(sim(x,y)\)是公共屬性相對擁有的一種度量,余弦相似性一個簡單變種如下:
\[
sim(x,y) = \frac{x \cdot y}{x \cdot x + y \cdot y - x \cdot y}
\]
稱為Tanimoto距離,常用在信息檢索和生物學分類中。
數據挖掘-認識數據