資料測量與相似性分析
這篇文章中主要記錄如何分析樣本間相似性的內容,相似性分析在分類演算法(如K最鄰近分類)和聚類任務中會涉及到。相似性分析基於樣本屬性取值,因此對於樣本屬性型別及其取值的特徵也有必要說明。
1.資料測量及屬性分類
測量某個物件得到資料的過程實質上是描述該物件的屬性(特徵)、並將該屬性對映到某個值上,在這些值上一般可以定義如下幾種操作:
- 相異性 、
- 序
- 加減 、
- 乘除 、
依據測量值能進行的操作型別,可以將屬性分為:標稱型(nominal)、序數型(ordinal)、區間型(interval)和比率型(ratio),不同型別的定義及區別見下表
從屬性取值個數方面,可以將屬性分為:屬性型(binary attribute)、離散型(discrete)、連續型(continuous)。取值為屬性型時,其值只能為兩個,如真/假、是/否、男/女、0/1等,這種取值的屬性稱為二元屬性。 標稱型、序數型資料的含義比較直觀,而對於區間型資料,就以日曆日期為例說明,現有兩個日期值2017(年)、2018(年),二者之間的差值可以理解為間隔一年,但是二者間乘或除得到的值則毫無意義,這就是區間值的特徵。對於比率型資料,以體重為例,100kg的人可以說是50kg的人體重的兩倍,這是有現實直觀意義的。有的資料型別可能兼具多種操作方法(如體重可以加減,也可以除),可能在屬性型別分類上不那麼明顯,但需要強調的是:屬性歸類問題不重要,重要的是明確哪些操作是有意義的。
除了從以上幾個方面對屬性進行分類與定義外,還可以按屬性取值對稱與否來分類。非對稱的屬性其不同取值間權重不一致,例如艾滋病檢驗的結果可為陽性和陰性,但是顯然我們更關注是否為陽性,該值對判斷是否患艾滋病更為關鍵。對稱的屬性其取值權重就一致了,例如某路段一定時間內通過的車輛數。
2.樣本相似性分析
樣本相似性分析常用於分類、聚類任務中。相似性肯定要依據樣本屬性取值來分析的,這其中關鍵就在屬性值的處理、相似性度量標準上。
2.1屬性值的處理
2.1.1 二元化
在一些演算法中(如發現關聯模式的演算法)要求資料的屬性為二元屬性,二元化處理就是將資料的屬性從“多元”轉化為“二元”的過程。二元化的過程為:假設屬性取值有個,則將整數區間 中的每個值唯一的賦予該屬性的每個取值,如果該屬性的取值是有序的,則賦值的過程也必須按順序賦值,然後將這個值用二進位制表示,共需要 (結果向上取整)個二進位制位。
二元化的過程是用多個二元屬性來表示一個多元屬性,例如一個具有5個取值的屬性{awful,poor,ok,good,great}可以用3個二元屬性、、表示
以上的二元化過程可能會導致屬性間關係複雜化,例如上表中屬性和是相關的,因為“good”值需要這兩個屬性來表示。這種情況下可以為每一個取值引入一個二元屬性,比如下表中的方式
當一個屬性取值數量較多時(這裡暫指離散取值的情況),這種做法會引入過多的屬性值,此時可以在二元化之前先離散化屬性的取值。
2.1.2 離散化
離散化一般針對取值為連續的情況,但是當取值為離散序數、取值間隔小且多時也可以考慮離散化。離散化的過程需要考慮兩個問題:分類值個數設定、如何將屬性連續取值對映到這些分類值上。離散化過程可以分為非監督離散化和監督離散化,區別就在於是否使用資料的類資訊(分類、聚類任務中)。
非監督離散化主要有等寬、等頻率和K均值方法,有時候畫圖之後目測也是一種不錯的方法。等寬離散化是將屬性的值域等寬得劃分成有限的區間,區間個數由使用者指定,這種方法可能受離群點(遠離一般取值範圍的資料點,也可以稱為奇異點)影響而導致效能不佳;等頻離散化在指定劃分區間個數時,保證每個區間內資料點個數相同;K均值離散化則是使用了K均值聚類方法的思想來劃分區間。下圖是用以上幾種方法對一組資料進行離散化的結果,區間劃分個數均為4。
監督離散化方法一般要比非監督離散化方法產生的效果要好,因為使用了類資訊,因此能使區間內資料的類更純,所以一種簡單的概念上的方法是“極大化區間內資料類別純度”來確定分割點,在該類方法中,首先要確定一個類別純度的度量指標,然後確定最優區間劃分過程搜尋方案。
2.1.3 變換與規範化
變換是將屬性值域對映到另外一個值域上的過程,例如常見的函式變換 、 等,在統計學中,也通常會通過變換(中心極限定理)構造服從正態分佈的統計量。變換的需求與方式與具體的任務緊密相關,例如資料壓縮時會採用對數變換,將資料量從壓縮為。變換時尤其要注意,不能改變資料的特性,所以說一定要依據具體的任務來確定變換方式。例如在非線性SVM模型中,就用到了這種方式,將輸入空間通過非線性對映到特徵空間。
規範化也可以看做一種變換方式,其目標是使屬性的取值具有特定的性質,主要包括以下幾種方法
標準化:標準化的過程是將樣本均值變為0,標準差變為1。設變數的均值為,標準差為,則可以建立一個新的變數
歸一化:將資料取值範圍處理到[0,1]範圍內(有的場合下也會處理到[-1,1]範圍),方便不同取值範圍屬性間比較。一般的處理方式為
如果取值範圍為[0,],則可以考慮以下形式
具體的規範化方法需要結合實際的應用來,在考慮任務需求及資料特性情況下選擇可行的方法。
2.2 相似性度量標準
與相似性相反的概念稱為相異形,二者描述的是同一種關係,通常會用鄰近度來描述相似或相異性。先介紹幾種度量標準,然後從簡單的單屬性資料間相似性分析著手,一點一點將情況複雜化。
2.2.1 鄰近度度量標準
歐氏距離
歐氏距離是一種比較常見的度量標準,對於包含有n個屬性值的資料 和 ,其歐氏距離定義為
歐氏距離有如下幾個性質是成立的
- 非負性,
- 對稱性,
- 三角不等式,對於資料 、、,有
在使用歐氏距離時,要考慮不同屬性間取值範圍差異的問題,例如年齡與收入,在計算歐氏距離前先要將所有屬性取值進行規範化。
曼哈頓距離
曼哈頓距離在幾何學中指座標系中兩個點各向座標差值絕對值的和,如下圖所示,在二維空間中,紅線即表示曼哈頓距離,綠線表示歐氏距離。
對於具有n個屬性的資料 和 ,曼哈頓距離指其各個屬性值差值的絕對值的和,定義為
餘弦相似度
當屬性為多元屬性時,也有一些情況下不考慮的情況,此時可以使用餘弦相似度,設資料 和 均具有n個多元屬性,則餘弦相似度定義為
,
從幾何角度看,餘弦相似度就是兩個向量間的夾角。
簡單匹配係數
該度量標準常用於具有二元屬性資料間的相似性度量。設資料 和 均具有n個二元屬性,用表示取0且取0的屬性個數,用表示取0且取1的屬性個數,用表示取1且取0的屬性個數,用表示取1且取1的屬性個數,則簡單匹配係數定義為
對於非對稱的二元屬性來說,更關注的是取1的情況,因此有些情況下將納入計算是不合理的情況,例如兩個學生選課問題,1表示選修了某門課程,0表示未選修,而一個學生只需要選修一定數量的課程,還有大部分課程是不需要選修的,因此的情況會比較多,這種情況下考慮就不太合理。
Jaccord係數
係數是簡單匹配係數中不考慮的情況,其定義為
皮爾森相關係數
皮爾森相關係數可以用於具有連續取值屬性物件間的相似性度量,該引數在統計學中一般簡稱為相關係數,設資料 和 均具有n個連續取值屬性,則相關係數定義為
皮爾森相關係數的取值範圍為[-1,1],0表示不相關,1表示正相關,-1表示負相關,該係數上的加、減、乘、除操作均無意義,只有序數操作是有意義的。在討論相似性的條件下,負相關表示的“不相似”程度可能比不相關更嚴重,當然這個還得在實際的任務中去判斷。
2.2.2 單屬性資料相似性分析
當屬性為標稱型別時,如路人甲頭髮顏色為黑色,路人乙頭髮顏色為黃色,僅依據頭髮顏色分析二人之間相似性,給出的結論只能是不相似,假如用區間[0,1]之間的值來表示相似程度,0表示不相似,1表示相似,則這種情況相似度為0,但若路人甲與路人乙頭髮顏色相同,則相似度為1。因此,在屬性為標稱型別情況下,相似度只能取0和1中的一種。
當屬性為序數型別時,則需考慮序數資訊,例如2.1.1節中的例子,屬性的取值為{awful,poor,ok,good,great},一個明顯的結論是,相對於"ok","great"更接近"good",但是在分析相似性時一般需要將其量化,這裡可以量化為 {awful=0,poor=1,ok=2,good=3,great-4}。依據第1節中對序數型別屬性的描述,可知其減法操作是沒有意義的,又或者說“ok”與"good"間的差真的與“good”與"great"間的差相同嗎?但是在實踐中一般手段有限,因此對於這種情況,可以將兩個序數間的相似性定義為
當屬性為區間和比率型別時,一般用差值的絕對值來度量相似性。特別的,對於區間型屬性,若是取值區間有限,則也可以使用
的相似性定義形式。
2.2.3 多屬性資料相似性分析
多屬性的情況,一般的做法是將每個屬性取值按照以上介紹的方法處理之後,再選擇一個度量標準分析相似性,在一些場合下也對不同的屬性進行加權處理,但是也存在一些特殊情況,例如部分屬性為非對稱屬性。
對於部分屬性為非對稱屬性的情況,則可以按照以下公式計算
上式中表示資料、的屬性個數,表示在第個屬性上計算的、相似度(按照2.2.2節中方式計算),定義為:當第個屬性為非對稱屬性,且、在該屬性上取值均為0,或者其中一個屬性值缺失,則=0,否則為1。