《Data Mining》第2章翻譯 數據預處理

2 數據預處理

“凡事預則立,不預則廢。”——孔子

2.1 簡介

真實數據的原始格式通常變化很大。許多值可能會丟失,不同數據源之間不一致,並且是錯誤的。對於分析人員來說,這會在有效使用數據方面帶來諸多挑戰。例如,考慮在社交媒體網站上評估消費者對其活動的興趣的情況。分析人員可能首先需要確定對挖掘過程有價值的活動類型。該活動可以對應於用戶輸入的興趣,用戶輸入的評論以及用戶伴隨興趣而產生的朋友圈。所有這些信息都是多樣的,需要從社交媒體網站的不同數據庫中收集。此外,某些形式的數據(如原始日誌)通常由於其非結構性而不能直接使用。換句話說,需要從這些數據源中提取有用的特徵。因此,需要數據預處理階段

數據預處理階段是一個多階段過程,包含幾個單獨的步驟,其中一些或全部可用於給定的應用程序。這些步驟如下所示:

  1. 特徵提取和可移植性:原始數據通常是不適合處理的形式。例子包括原始日誌、文檔、半結構化數據以及可能的其他形式的異構數據。在這種情況下,可能需要從數據中獲得有意義的特徵。一般而言,具有良好語義解釋性的特徵更爲理想,因爲它們簡化了分析人員瞭解中間結果的能力。而且,它們通常更好地綁定到數據挖掘應用程序的目標。在某些情況下,數據是從多個來源獲得的,需要將其集成到單個數據庫中進行處理。另外,有些算法只能使用特定的數據類型,而數據可能包含不同類型的數據。在這種情況下,數據類型的可移植性在一種類型的屬性轉換爲另一種類型時變得重要。這將生成可以通過現有算法處理的更均勻的數據集。

  2. 數據清洗:在數據清洗階段,從數據中刪除丟失、錯誤和不一致的條目。另外,一些缺失的條目也可以通過稱爲插補的過程來估計。

  3. 數據消減、選擇和轉換:在這個階段,通過數據子集選擇、特徵子集選擇或數據轉換來減少數據的大小。這一階段獲得的收益是雙重的。首先,當數據的大小減小時,算法通常更有效。其次,如果不相關的特徵或不相關的記錄被刪除,數據挖掘過程的質量就會提高。第一個目標是通過通用採樣和降維技術來實現的。要實現第二個目標,必須使用高度針對特定問題的方法來進行特徵選擇。例如,適用於羣集的特徵選擇方法可能不適用於分類。

某些形式的特徵選擇與手頭的問題緊密結合。稍後關於聚類和分類等具體問題的章節將包含關於特徵選擇的詳細討論。

本章安排如下。特徵提取階段在章節2.2中討論。數據清洗階段在章節2.3中介紹。數據消減階段在章節2.4解釋。總結在章節2.5中給出。

2.2 特徵提取和可移植性

數據挖掘過程的第一階段是創建一組分析人員可用的特徵。在數據處於原始和非結構化形式(例如,原始文本、傳感器信號)的情況下,需要提取相關特徵進行處理。在其他情況下,以不同形式提供的混合特徵往往不能用“現成”的分析方法進行處理。在這種情況下,可能需要將數據轉換爲統一的形式進行處理。這被稱爲數據類型移植

2.2.1 特徵提取

特徵提取的第一階段是非常關鍵的一步,儘管它非常適合特定的應用。在某些情況下,特徵提取與數據類型可移植性的概念密切相關,其中一種類型的低級特徵可能轉換爲另一種類型的高級特徵。特徵提取的性質取決於數據應用的領域:

  1. 傳感器數據:傳感器數據通常以大量的低電平信號收集。有時使用小波變換或傅里葉變換將低電平信號轉換爲更高級的特徵。在其他情況下,時間序列在一些清洗後直接使用。信號處理領域有大量關於這種方法的文獻。這些技術對於將時間序列數據移植到多維數據也很有用。

  2. 圖像數據:在其最原始的形式中,圖像數據被表示爲像素。在稍高的級別上,可以使用顏色直方圖來表示圖像不同部分的特徵。最近,視覺詞的使用變得越來越流行。這是一個語義豐富的表示,與文檔數據類似。圖像處理中的一個挑戰是數據通常是非常大的尺寸。因此,取決於手頭的應用,特徵提取可以在不同的級別執行。

  3. Web日誌:Web日誌通常以預先指定的格式表示爲文本字符串。由於這些日誌中的字段被明確指定和分隔,因此將Web訪問日誌轉換爲(相關)分類和數字屬性的多維表示相對比較容易。

  4. 網絡流量:在許多入侵檢測應用程序中,網絡數據包的特徵用於分析入侵或其他有趣的活動。根據底層應用程序,可以從這些數據包中提取各種特徵,例如傳輸的字節數、使用的網絡協議等。

  5. 文檔數據:文檔數據通常以原始和非結構化形式提供,並且數據可能包含不同實體之間豐富的語言關係。一種方法是刪除停用詞,停止數據,並使用袋裝詞表示法。其他方法使用實體提取來確定語言關係。

    命名實體識別是信息提取的重要子任務。這種方法將文本中的原子元素定位和分類爲人員、組織、位置、動作、數量等名稱的預定義表達式。顯然,識別這種原子元素的能力非常有用,因爲它們可以用來理解句子和複雜事件的結構。這種方法也可以用於填充更傳統的關係元素數據庫或者更容易分析的原子實體序列。例如,請考慮以下語句:

    比爾·克林頓住在查巴克。

    在這裏,“比爾·克林頓”是一個人的名字,“查巴克”是一個地方的名字。“住”一詞表示一種行爲。取決於當前的應用,每種類型的實體可能在數據挖掘過程具有不同的意義。 例如,如果數據挖掘應用程序主要關注提到特定位置,則需要提取“查巴克”一詞。

    用於命名實體識別的流行技術包括基於語言語法的技術和統計模型。語法規則的使用通常非常有效,但它需要經驗豐富的計算語言學家的工作。另一方面,統計模型需要大量的訓練數據。設計的技術通常是特定領域的。命名實體識別領域本身就很廣泛,這超出了本書的範圍。讀者可以參考文獻[400]詳細討論實體識別的不同方法。

特徵提取是一種藝術形式,高度依賴於分析人員選擇最適合手頭任務的特徵及其表示。雖然數據分析的這個特定方面通常屬於領域專家,但它也許是最重要的一個。如果不提取正確的特徵,則分析只能基於可用數據。

2.2.2 數據類型可移植性

數據類型的可移植性是數據挖掘過程的關鍵要素,因爲數據通常是異構的,並且可能包含多種類型。例如,人口統計數據集可能包含數字和混合屬性。從心電圖(ECG)傳感器收集的時間序列數據集可能具有與其相關聯的許多其他元信息和文本屬性。這對於現在面臨用任意數據類型組合設計算法的困難挑戰的分析人員而言,是令人困惑的局面。數據類型的混合也限制了分析人員使用現成的工具進行處理的能力。請注意,在某些情況下移植數據類型確實會丟失代表性、準確性和表達性。理想情況下,最好根據特定的數據類型組合來定製算法以優化結果。然而,這是耗時且有時不切實際的。

本節將介紹在各種數據類型之間轉換的方法。因爲數字數據類型是數據挖掘算法中最簡單和研究最廣泛的數據類型,所以專注於如何將不同數據類型轉換爲數字數據類型尤其有用。但是,其他形式的轉換在許多情況下也很有用。例如,對於基於相似性的算法,可以將幾乎任何數據類型轉換爲圖形,並將基於圖形的算法應用於該表示。表2.1總結了在不同類型之間轉換數據的各種方式。

2.2.2.1 數字到分類數據:離散化

最常用的轉換是從數字到分類數據類型。這個過程被稱爲離散化。離散化過程將數字屬性的範圍劃分爲φ個範圍。然後,根據原始屬性所在的範圍,假定該屬性包含從1到φ的φ個不同分類標註值。例如,考慮年齡屬性。人們可以創建範圍[0,10],[11,20],[21,30]等等。範圍[11,20]中任何記錄的符號值爲“2”,範圍[21,30]中記錄的符號值爲“3”。由於這些是符號值,因此在值“2”和“3”之間不會進行排序。此外,一個範圍內的變化在離散化之後是不可區分的。因此,離散化過程的確會失去一些挖掘過程的信息。但是,對於某些應用程序而言,這種信息丟失不會太過虛弱。離散化的一個挑戰是數據可能在不同的時間間隔內不均勻分佈。例如,對於工資屬性的情況,大量的人口子集可以被分組在[40,000,800,000]範圍內,但很少會被分組在[1,040,000,1,080,000]範圍內。請注意,這兩個範圍都具有相同的大小。因此,使用相同大小的範圍可能對區分不同數據段不是很有幫助。另一方面,許多屬性,如年齡,並不是非均勻分佈的,因此相同大小的範圍可能工作得相當好。離散化過程可以根據應用特定目標以各種方式執行:

  1. 等寬範圍:在這種情況下,每個範圍[a,b]的選擇方式使得b - a對於每個範圍都是相同的。 這種方法的缺點是,它不適用於跨不同範圍分佈不均勻的數據集。 確定每個屬性的最小值和最大值以確定範圍的實際值。然後這個範圍[min,max]將數據分成長度相等的φ個範圍。

  2. 等值日誌範圍:每個範圍[a,b]的選擇方式使得log(b)-log(a)具有相同的值。對於某些α> 1,這種範圍選擇具有幾何範圍[a,a·α],[a·α,a·α2]等的作用。當屬性在一個範圍內顯示指數分佈時,這種範圍可能很有用。事實上,如果一個屬性的屬性頻率分佈可以用函數形式建模,那麼一個自然的方法是選擇範圍[a,b],使得f(b)-f(a)對於某個函數f(·)相等。以這樣的方式選擇函數f(·),使得每個範圍包含大致相似數量的記錄。然而,在大多數情況下,很難找到封閉形式的函數f(·)。

  3. 等深度範圍:在這種情況下,選擇範圍以便每個範圍具有相同數量的記錄。這個想法是爲每個範圍提供相同的粒度級別。一個屬性可以分爲等深度範圍,首先對它進行排序,然後在排序的屬性值上選擇分割點,以便每個範圍包含相同數量的記錄。

離散化過程也可用於將時間序列數據轉換爲離散序列數據。

表2.1 不同數據類型的可移植性

2.2.2.2 分類到數字數據:二值化

在某些情況下,希望對分類數據使用數字數據挖掘算法。由於二進制數據是數字和分類數據的特殊形式,因此可以將分類屬性轉換爲二進制形式,然後對二進制數據使用數字算法。如果分類屬性具有φ個不同的值,則創建φ個不同的二元屬性。每個二進制屬性對應於分類屬性的一個可能值。因此,φ個屬性中恰好有一個值爲1,其餘的值爲0。

2.2.2.3 文本到數字數據

儘管文本的向量空間表示可以被認爲是具有非常高維度的稀疏數字數據集,但是這種特殊的數字表示形式對於傳統的數據挖掘算法並不是很適合。例如,通常使用專門的相似度函數,例如餘弦,而不是文本數據的歐幾里德距離。這就是文本挖掘本身就是一個獨特領域的原因,它擁有自己的專業算法系列。不過,可以將文本集合轉換爲更適合使用數字數據挖掘算法的形式。第一步是使用潛在語義分析(LSA)將文本集合轉換爲具有較低維度的非稀疏表示。此外,在變換之後,每個文檔 需要被縮放爲 。這種縮放對於確保不同長度的文檔以統一的方式處理是必需的。經過這種縮放之後,傳統的數字度量(例如歐幾里得距離)更有效地工作。LSA在章節2.4.3.3中討論。請注意,LSA很少與這種縮放結合使用。相反,傳統的文本挖掘算法直接應用於從LSA獲得的簡化表示。

2.2.2.4 時間序列到離散序列數據

時間序列數據可以使用稱爲符號聚合近似(SAX)的方法轉換爲離散序列數據。該方法包括兩個步驟:

  1. 基於窗口的平均:將該序列劃分爲長度爲w的窗口,並且計算每個窗口上的平均時間序列值。

  2. 基於值的離散化:(已經平均的)時間序列值被離散化爲更小數量的近似等深度間隔。這與前面討論的數值屬性的等深度離散化相同。這個想法是確保每個符號在時間序列中具有近似相等的頻率。間隔邊界通過假定時間序列值是用高斯假設分佈來構造的。 (窗口化的)時間序列值的均值和標準偏差以數據驅動的方式估計以實例化高斯分佈的參數。高斯分佈的分位數用於確定間隔的邊界。這比對所有數據值進行排序以確定分位數更有效,對於長時間(或流式)時間序列來說,這可能是更實用的方法。爲了獲得最好的結果,這些值被離散化爲一小部分(通常爲3到10)的間隔。每個這樣的等深度間隔被映射爲符號值。這創建了時間序列的符號表示,其實質上是一個離散序列。

因此,SAX可能被視爲基於窗口平均的等深度離散化方法。

2.2.2.5 時間序列到數字數據

這種特殊的轉換非常有用,因爲它可以使用時間序列數據的多維算法。用於這種轉換的常用方法是離散小波變換(DWT)。小波變換將時間序列數據轉換爲多維數據,作爲表示系列的不同部分之間的平均差異的一組係數。如果需要,可以使用最大系數的子集來減小數據大小。 這個方法將在章節2.4.4.1關於數據消減部分討論。 另一種方法稱爲離散傅立葉變換(DFT),在第14章章節14.2.4.2討論。這些變換的共同特點是各種係數不再像原始時間序列值那樣依賴於相關性。

2.2.2.6 離散序列到數字數據

這種轉換可以分兩步進行。第一步是將離散序列轉換爲一組(二進制)時間序列,其中該組中的時間序列的數量等於不同符號的數量。第二步是使用小波變換將每個時間序列映射到多維向量中。最後,將來自不同系列的功能組合起來創建一個單一的多維記錄。

要將序列轉換爲二進制時間序列,可以創建一個二進制字符串,其中的值表示某個特定符號是否出現在某個位置。例如,考慮以下四個符號的核苷酸序列:

ACACACTGTGACTG

該系列可以轉換爲與符號A,C,T和G分別對應的以下四組二進制時間序列:

10101000001000
01010100000100
00000010100010
00000001010001

可以將小波變換應用於這些系列中的每一個以創建多維特徵集。可以附加來自四個不同系列的特徵來創建單個數字多維記錄。

2.2.2.7 空間到數字數據

空間數據可以通過使用與時間序列數據相同的方法轉換爲數字數據。主要區別是現在有兩個上下文屬性(而不是一個)。這需要修改小波變換方法。第2.4.4.1節將簡要討論如何在有兩個上下文屬性時推廣一維小波方法。該方法相當一般,可用於任何數量的上下文屬性。

2.2.2.8 圖像到數字數據

可以使用多維縮放(MDS)和頻譜轉換等方法將圖像轉換爲數字數據。此方法適用於邊緣加權的應用程序,並表示節點之間的相似性或距離關係。MDS的一般方法可以實現這一目標,並在第2.4.4.2節進行了討論。譜方法也可用於將圖像轉換爲多維表示。這也是一種將結構信息轉換爲多維表示的降維方案。這個方法將在第2.4.4.3節進行討論。

2.2.2.9 基於相似性應用的任何類型到圖像

許多應用程序都基於相似性的概念。例如,聚類問題被定義爲類似對象組的創建,而異常值檢測問題被定義爲識別其中與剩餘對象明顯不同的對象子集的問題。許多形式的分類模型,如最近鄰分類器,也依賴於相似性的概念。配對相似性的概念可以通過使用鄰域圖來最好地得到。對於給定的一組數據對象

O={O1On}
,鄰域圖定義如下:
  1. O 中的每個對象定義單個節點。這由節點集N 定義,包含n 個節點,其中節點i 對應於對象Oi

  2. 如果距離dOiOj 小於特定閾值α ,則在OiOj 之間存在邊緣。或者,可以使用每個節點的k 個最近鄰。由於k -最近鄰關係不是對稱的,這導致有向圖。邊緣上的方向被忽略,並且平行邊被去除。邊ij 的權重wij 等於對象OiOj 之間距離的核函數,因此較大的權重表示較大的相似性。熱內核就是一個例子:

    (2.1)wij=ed(Oi,Oj)2/t2

    這裏,t 是用戶定義的參數。

各種數據挖掘算法可用於網絡數據。所有這些方法也可用於相似圖。請注意,只要可以定義適當的距離函數,就可以爲任何類型的數據對象清晰地定義相似度圖。這就是距離函數設計對於任何數據類型都非常重要的原因。距離函數設計的問題將在第3章中討論。請注意,此方法僅適用於基於相似性或距離概念的應用程序。不過,許多數據挖掘問題直接或間接地與相似性和距離的概念相關。

2.3 數據清洗

由於存在與數據收集過程相關的錯誤,數據清洗過程很重要。數據收集過程中可能會出現一些缺失條目和錯誤的來源。一些例子如下:

  1. 由於與收集和傳輸有關的硬件限制,一些數據收集技術(如傳感器)本質上不準確。由於硬件故障或電池耗盡,有時傳感器可能會降低讀數。
  2. 使用掃描技術收集的數據可能存在與其相關的錯誤,因爲光學字符識別技術遠非完美。此外,語音-文本數據也容易出錯。
  3. 用戶出於隱私原因可能不想公開他們的信息,或者他們可能故意公開不正確的信息。例如,經常觀察到用戶有時在諸如社交網絡的自動化註冊站點上錯誤地填寫他們的生日。在某些情況下,用戶可能會選擇將幾個字段留空。
  4. 大量的數據是手動創建的。數據輸入過程中手動錯誤很常見。
  5. 負責數據收集的實體如果成本太高,可能不會爲某些記錄收集某些字段。因此,記錄可能沒有完全列舉。

上述問題可能是數據挖掘應用程序不準確的重要原因。需要使用方法從數據中刪除或更正丟失和錯誤的條目。數據清洗有幾個重要方面:

  1. 處理缺少的條目:由於數據收集的缺陷或數據的固有性質,數據中的許多條目可能保持未列舉。這些缺失的條目可能需要估計。估計缺失條目的過程也被稱爲插補。
  2. 處理不正確的條目:如果可以從多個來源獲得相同的信息,則可能會檢測到不一致。作爲分析過程的一部分,這些不一致可以被刪除。檢測錯誤條目的另一種方法是使用關於數據已知信息的特定域的知識。例如,如果一個人的身高被列爲6米,那很可能是不正確的。更一般地說,與剩餘數據分佈不一致的數據點通常是嘈雜的。這些數據點被稱爲異常值。但是,假設這些數據點總是由錯誤引起是危險的。例如,表示信用卡欺詐的記錄可能與大多數(正常)數據中的模式不一致,但不應將其作爲“不正確”數據刪除。
  3. 縮放和規範化:數據可能經常以不同的比例表示(例如年齡和薪水)。這可能會導致某些功能被無意中加權得太多,以致其他功能被隱式忽略。因此,規範不同的功能是非常重要的。

以下部分將討論數據清洗的各個方面。

2.3.1 處理缺少的條目

數據收集方法不完善的數據庫中缺少條目。例如,用戶調查往往無法收集所有問題的答案。在數據貢獻是自願的情況下,數據幾乎總是不完整的。三類技術用於處理缺失的條目:

  1. 任何包含缺失條目的數據記錄都可能被完全刪除。但是,當大多數記錄包含缺失條目時,這種方法可能並不實際。
  2. 缺失的值可能會被估計或估算。但是,插補過程所產生的錯誤可能會影響數據挖掘算法的結果。
  3. 分析階段的設計方式可以處理缺失值。許多數據挖掘方法固有地被設計爲在缺失值的情況下穩健工作。這種方法通常是最合乎需要的,因爲它避免了插補過程中固有的額外偏差。

估計缺失條目的問題與分類問題直接相關。在分類問題中,專門處理單個屬性,並使用其他功能估計其值。在這種情況下,缺失值可能出現在任何功能上,因此問題更具挑戰性,儘管它從根本上說並沒有不同。第10和11章中討論的許多分類方法也可用於缺失值估計。另外,在章節18.5中討論的矩陣完成方法也可以使用。


圖2.1 通過以數據爲中心的方法來查找噪聲

在依賴於數據的情況下,如時間序列或空間數據,缺失值估計要簡單得多。在這種情況下,上下文記錄的行爲屬性值用於插補過程。例如,在時間序列數據集中,可以使用在丟失屬性之前或之後的時間戳的值的平均值來進行估計。或者,可以線性內插最後n 個時間序列數據標記處的行爲值以確定缺失值。對於空間數據的情況,估計過程非常相似,其中可以使用相鄰空間位置處的值的平均值。

2.3.2 處理不正確和不一致的條目

用於刪除或更正不正確和不一致條目的關鍵方法如下所示:

  1. 不一致性檢測:通常在數據以不同格式的不同來源可用時完成。例如,一個人的姓名可能在一個來源中全部拼寫出來,而另一個來源可能只包含姓名縮寫和姓氏。在這種情況下,關鍵問題是重複檢測和不一致性檢測。這些主題是在數據庫領域內的數據集成的總體框架下進行研究的。
  2. 領域知識:根據指定不同屬性間關係的屬性或規則的範圍,通常會提供大量的領域知識。例如,如果國家/地區是“美國”,那麼城市領域不能是“上海”。許多數據清洗和數據審計工具已經被開發出來,它們使用這些領域知識和約束來檢測不正確的條目。
  3. 以數據爲中心的方法:在這些情況下,數據的統計行爲用於檢測異常值。例如,圖2.1中標記爲“噪聲”的兩個隔離數據點是異常值。這些孤立點可能是由於數據收集過程中的錯誤而產生的。但是,這可能並非總是如此,因爲異常可能是底層系統有趣行爲的結果。因此,任何檢測到的異常值在丟棄前可能需要手動檢查。使用以數據爲中心的方法進行清理有時會很危險,因爲它們會導致從底層系統中刪除有用的知識。異常值檢測問題本身就是一種重要的分析技術,並在第8章和第9章中進行了詳細討論。

解決錯誤和不一致條目的方法通常是高度特定於域的。

2.3.3 縮放和標準化

在許多情況下,不同的特徵代表不同的參考尺度,因此可能無法相互比較。例如,年齡等屬性與薪水等屬性的截然不同。後者的屬性通常比前者大幾個數量級。結果,對不同特徵(例如,歐幾里得距離)計算的任何集合函數將由較大幅度的屬性支配。

爲了解決這個問題,通常使用標準化。考慮第j 個屬性具有均值μj 和標準偏差σj 的情況。然後,第i 個記錄Xi¯ 的第j 個屬性值xij 可以如下歸一化:

(2.2)zij=xijμjσj

在正態分佈假設下,絕大多數標準化值通常位於[3,3] 範圍內。

第二種方法使用最小最大比例縮放來將所有屬性映射到範圍[0,1] 。令minjmaxj 表示屬性j 的最小值和最大值。那麼,第i 個記錄Xi¯ 的第j 個屬性值xij 可以如下縮放:

(2.3)yij=xijminjmaxjminj

當最大值和最小值由於數據收集中的某些錯誤而導致極值異常值時,此方法無效。例如,考慮年齡屬性,其中數據收集中的錯誤導致將附加的零附加到年齡,導致年齡值爲800歲而不是80歲。在這種情況下,沿着年齡屬性的大部分縮放數據將會在[0,0.1] 的範圍內,因此可以不強調該屬性。標準化對於這種情況更加魯棒。

2.4 數據縮減和轉換

數據縮減的目標是更緊湊地表示它。當數據量較小時,應用複雜且計算量大的算法要容易得多。數據的減少可以根據行數(記錄)或以列數(維度)來表示。數據減少確實會導致一些信息的丟失。使用更復雜的算法有時可以彌補數據減少導致的信息損失。在各種應用中使用不同類型的數據縮減:

  1. 數據採樣:對來自底層數據的記錄進行採樣以創建更小的數據庫。在樣本需要動態維護的流場景中,採樣通常要困難得多。
  2. 特徵選擇:分析過程中只使用底層數據的一部分特徵。通常,這些子集是以特定於應用程序的方式選擇的。例如,適用於羣集的特徵選擇方法可能不適用於分類,反之亦然。因此,本節將僅以有限的方式討論特徵子集的問題,並將更詳細的討論推遲到後面的章節。
  3. 通過軸旋轉減少數據:利用數據中的相關性以較小的維數表示它。這種數據縮減方法的例子包括文本域的主成分分析(PCA),奇異值分解(SVD)或潛在語義分析(LSA)。
  4. 使用類型轉換的數據縮減:這種數據縮減的形式與數據類型的可移植性密切相關。例如,通過離散小波變換將時間序列轉換爲尺寸更小,複雜度更低的多維數據。同樣,通過使用嵌入技術,圖可以轉換爲多維表示。

上述各方面將在本節的不同部分進行討論。

2.4.1 採樣

抽樣的主要優點是它簡單,直觀並且相對容易實施。使用的採樣類型可能隨手邊的應用而變化。

2.4.1.1 靜態數據採樣

在整個數據已經可用時對數據進行採樣要簡單得多,因此基礎數據點的數量預先知道。在無偏抽樣方法中,選擇並保留數據點的預定義分數f 用於分析。這是非常簡單的實現,並且可以通過兩種不同的方式實現,取決於是否使用替換。

在從具有n 個記錄的數據組D 中取樣而沒有替換的情況下,總共n·f 個記錄是從數據中隨機挑選的。因此,樣本中不包含重複項,除非原始數據集D 也包含重複項。在用具有n 個記錄的數據集D 進行替換的採樣中,對記錄進行順序且獨立於整個數據集D 的採樣,總共n·f 倍。因此,重複是可能的,因爲相同的記錄可能被包括在順序選擇的樣本中。通常,大多數應用程序不使用替換,因爲不必要的重複對於某些數據挖掘應用程序(如異常值檢測)可能造成麻煩。其他一些特殊的採樣形式如下:

  1. 有偏抽樣:在有偏的抽樣中,由於對分析的重要性,故意強調數據的某些部分。一個典型的例子是時間衰減偏差,其中更新的記錄有更大的機會被納入樣本,而陳舊的記錄被納入的可能性較低。在指數衰減偏差中,對δt 時間單位前產生的數據記錄X¯ 進行採樣的概率pX¯ 與由衰變參數λ 調節的指數衰減函數值成比例:

    (2.4)p(X¯)eλδt

    這裏e 是自然對數的基數。通過使用不同的λ 值,可以適當調節時間衰減的影響。

  2. 分層抽樣:在一些數據集中,數據的重要部分可能由於其稀缺性而無法充分體現。因此,分層樣本首先將數據劃分爲一組所需的層,然後根據應用特定的方式基於預定義的比例從這些層中的每一層獨立採樣。

    例如,考慮一項衡量人口中不同個人生活方式的經濟多樣性的調查。因爲其相對稀缺,即使是100萬參與者的樣本也不會採樣到億萬富翁。然而,分層樣本(按收入)將獨立地從每個收入組中取樣預定義的一部分參與者,以確保分析具有更好的魯棒性。

許多其他形式的有偏抽樣是可能的。例如,在密度有偏抽樣中,較高密度區域中的點的權重較小,以確保樣本中稀有區域具有更高的代表性。

2.4.1.2 數據流的水塘採樣

一個特別有趣的採樣形式是數據流的水塘採樣。在水塘採樣中,從數據流中動態維護k 個點的樣本。回想一下,流的體積非常大,因此無法將其存儲在磁盤上進行採樣。因此,對於流中的每個傳入數據點,必須使用一組有效實現的操作來維護樣本。

在靜態情況下,樣本中包含數據點的概率爲k/n ,其中k 爲樣本量,n 爲“數據集”中的點數。在這種情況下,“數據集”不是靜態的,不能存儲在磁盤上。此外,n 的值隨着更多點的到達而不斷增加,並且之前的數據點(樣本外部)已經被丟棄。因此,採樣方法在任何特定時刻都不完全瞭解流的以前歷史。換句話說,對於流中的每個輸入數據點,我們需要動態地做出兩個簡單的准入控制決策:

  1. 應該用什麼抽樣規則來決定是否在樣本中包含新來的數據點?
  2. 應該使用什麼規則來決定如何從樣本中剔除數據點以便爲新插入的數據點“騰出空間”?

幸運的是,設計數據流中的水塘採樣算法相對簡單[498]。對於k 大小的儲存器,流中的前k 個數據點用於初始化儲層。隨後,對於第n 個輸入流數據點,應用以下兩個准入控制決策:

  1. 以概率k/n 將第n 個輸入流數據點插入儲層。
  2. 如果新插入的數據點被插入,則隨機從舊的k 個數據點中剔除一個爲新到達的點騰出空間。

可以證明,上述規則保留了來自數據流的無偏儲存樣本。

引理2.4.1 n 個流點到達後,任何流點包含在儲層中的概率是相同的,並且等於k/n

證明:這個結果很容易通過歸納顯示。在初始化前k 個數據點時,定理是非常正確的。讓我們(歸納地)假設在n1 個數據點被接收後它也是如此,因此每個點包含在儲層中的概率爲k/n1 。到達點包含在流中的概率是k/n ,因此引理對於到達的數據點是成立的。它仍然需要證明數據流中剩餘點的結果。對於一個輸入數據點可能會出現兩個不相交的情況事件,並且一個點被包含在儲層中的最終概率是這兩種情況的總和:

  1. 傳入的數據點未插入儲存器。這個概率是nk/n 。 由於歸納假設中包含在水塘中的任何點的原始概率爲k/n1 ,因此一個點包含在儲層中和情況1事件中的總體概率是二者的乘積p1=k(nk)n(n1)

  2. 傳入的數據點被插入到儲存器中。情況2的概率等於傳入數據點的插入概率k/n 。隨後,現有儲層點以概率k1/k 保留,因爲其中只有一個被剔除。因爲歸納假設意味着數據流中的任何早期點最初都以概率k/n1 出現在儲層中,這意味着給定了一個點包含在儲層和情況2事件中的概率爲上述三種概率的乘積p2

    (2.5)p2=(kn)(k1k)(kn1)=k(k1)n(n1)

因此,在第n 個數據點到達之後,流點保留在儲層中的總概率由p1p2 的和給出。可以證明這等於k/n

有可能將水塘採樣擴展到數據流中存在時間偏差的情況。需要指出的是,指數偏差的情況已在[35]中得到解決。

2.4.2 特徵子集選擇

數據預處理的第二種方法是特徵子集選擇。有些功能在已知不相關時可以丟棄。哪些功能是相關的?顯然,這個決定取決於手頭的應用。有兩種主要類型的特徵選擇:

  1. 無監督特徵選擇:這對應於從數據中去除嘈雜和冗餘的屬性。無監督的特徵選擇最好根據其對集羣應用程序的影響來定義,儘管適用範圍更廣。如果不使用聚類問題作爲合適的上下文,則很難全面描述這些特徵選擇方法。因此,無監督特徵選擇方法的討論推遲到第6章數據聚類部分。


    圖2.2:在適當旋轉的軸系統中的少量維度中表示的高度相關的數據

  2. 監督特徵選擇:這種類型的特徵選擇與數據分類問題相關。在這種情況下,只有可以有效預測類屬性的功能是最相關的。這些特徵選擇方法通常與用於分類的分析方法緊密結合。詳細的討論推遲到第10章數據分類部分。

特徵選擇是數據挖掘過程的重要組成部分,因爲它決定了輸入數據的質量。

2.4.3 軸旋轉降維

在實際數據集中,不同屬性之間存在相當多的相關性。在某些情況下,屬性之間的硬性約束或規則可能會以其他方式唯一地定義某些屬性。例如,個人的出生日期(定量表示)與他或她的年齡完全相關。在大多數情況下,相關性可能不盡相同,但是不同特徵之間仍然存在顯著的相關性。不幸的是,真實的數據集包含許多這樣的冗餘,在數據創建的初始階段,這些冗餘已經逃脫了分析人員的注意。這些相關性和約束對應於隱式冗餘,因爲它們意味着可以使用維度的某些子集的知識來預測其他維度的值。例如,考慮圖2.2所示的三維數據集。在這種情況下,如果軸旋轉到圖中所示的方向,則新變換後的特徵值中的相關性和冗餘性將被移除。作爲這種冗餘移除的結果,整個數據可以(近似)沿着一維線表示。因此,此三維數據集的固有維數爲1。其他兩個軸對應於低變量維數。如果數據在圖2.2所示的新軸系中表示爲座標,那麼沿這些低方差維的座標值變化不大。因此,在軸系旋轉之後,這些尺寸可以被移除而沒有太多的信息損失。

一個自然的問題就是如何以自動的方式確定如圖2.2所示的相關消除軸系統。實現這一目標的兩種自然方法是主成分分析(PCA)和奇異值分解(SVD)。這兩種方法雖然在定義層面上不完全相同,但是密切相關。儘管主成分分析的概念在直觀上更容易理解,但SVD是一個更爲通用的框架,可用於執行PCA作爲特例。

2.4.3.1 主成分分析

通常在從每個數據點減去數據集的平均值之後應用PCA。但是,只要數據的平均值被單獨存儲,也可以不使用平均中心來使用它。該操作被稱爲平均居中,並且其導致以原點爲中心的數據集。PCA的目標是將數據旋轉到一個軸系統,在這個軸系統中,在少量維度中捕獲最大變異量。從圖2.2的例子可以直觀地看出,這樣一個軸系統受到屬性之間的相關性的影響。我們將在下面展示一個重要的觀察結果,即一個數據集沿特定方向的方差可以直接用其協方差矩陣表示。

Cn×d 數據矩陣Dd×d 對稱協方差矩陣。因此,Cij 條目cij 表示數據矩陣D 的第i 列和第j 列(維度)之間的協方差。令μi 表示沿第i 維的平均值。具體而言,如果xkm 是第k 條記錄的第m 維,則協方差條目cij 的值如下所示:

(2.6)cij=k=1nxkixkjnμiμj  i,j{1d}

μ¯=μ1...μd 是代表沿着不同維度的均值的d 維行向量。然後,前面提到的d×d 計算公式2.6對於不同的ij 值可以用d×d 矩陣形式緊湊地表示如下:

(2.7)C=DTDnμ¯Tμ¯

請注意,矩陣Cd 條對角線條目對應於d 個方差。協方差矩陣C 是半正定的,因爲可以證明,對於任何d 維列向量v¯v¯TCv¯ 的值等於v¯ 上的數據集D 的一維投影Dv¯ 的方差。

(2.8)v¯TCv¯=(Dv¯)TDv¯n(μ¯v¯)2=Variance of 1dimensional points in Dv¯0

事實上,PCA的目標是相繼確定正交矢量v¯ 使v¯TCv¯ 最大化。如何確定這樣的方向? 因爲協方差矩陣是對稱的且是半正定的,所以可以如下對角化:

(2.9)C=PΛPT

矩陣P 的列包含C 的正交特徵向量,Λ 是包含非負特徵值的對角矩陣。Λii 條目是與矩陣P 的第i 個特徵向量(或列)相對應的特徵值。這些特徵向量表示沿着單位方向v¯ 最大化方差v¯TCv¯ 的前述優化模型的連續正交解。

這種對角化的一個有趣特性是特徵向量和特徵值都具有根據數據分佈的幾何解釋。具體來說,如果數據表示的軸系被旋轉到P 列中的特徵向量的正交集,則可以表明新變換的特徵值的所有(d2) 個協方差都是零。換句話說,最大的方差保存方向也是相關去除方向。此外,特徵值表示沿着相應特徵向量的數據的方差。實際上,對角矩陣Λ 是軸旋轉後的新的協方差矩陣。因此,具有大特徵值的特徵向量保持較大的方差,並且也被稱爲主要分量。由於用於推導該變換的優化公式的性質,僅包含具有最大特徵值的特徵向量的新軸系統被優化以保持固定數量的維度中的最大方差。例如,圖2.2的散點圖說明了各種特徵向量,並且很明顯,具有最大方差的特徵向量是創建方差保持表示所需的全部。只保留少量具有大特徵值的特徵向量通常就足夠了。

在不失一般性的情況下,可以假定P (和對應的對角矩陣Λ )的列從左到右排列,使得它們對應於遞減的特徵值。然後,變換後的數據矩陣D 在軸旋轉到P 的標準正交列後的新座標系中,可以用下列線性變換代數計算:

(2.10)D=DP

雖然變換後的數據矩陣D 的大小也是n×d ,只有其第一個(最左邊的)k 列將顯示值的顯著變化。D 的剩餘dk 列中的每一列將近似等於旋轉軸系統中數據的平均值。對於以均值爲中心的數據,這dk 列的值幾乎爲0。因此,數據的維數可以減少,並且只有變換後的數據矩陣D 的前k 列。爲表示目的可能需要保留。此外,可以證實,變換後的數據D=DP 的協方差矩陣是通過應用方程式的協方差定義的對角線矩陣Λ 。公式2.7到DP (轉換數據)和μ¯P (轉換平均值)分別代替Dμ¯ 。得到的協方差矩陣可以用原始協方差矩陣C 表示爲PTCP 。用等式中的C=PΛPT 代替。公式2.9顯示了等價性,因爲PTP=PPT=I 。換句話說,因爲Λ 是對角的,所以相關性已經從轉換後的數據中移除。

由沿着top-k 特徵向量的投影定義的數據集的方差等於k 個對應特徵值的總和。在許多應用中,特徵值在前幾個值後顯示急劇下降。例如,圖2.3說明了來自UCI機器學習庫[213]的279維Arrythmia數據集的特徵值的行爲。圖2.3a以增加的順序顯示特徵值的絕對量值,而圖2.3b顯示在top-k 特徵值中保留的總變量量。圖2.3b可以通過使用圖2.3a中最小特徵值的累加和來導出。值得注意的是,215個最小特徵值包含的數據總方差不到1%,因此可以在基於相似性的應用程序的結果變化很小的情況下將其刪除。請注意,Arrythmia數據集不是沿着許多維度對的非常強關聯的數據集。然而,由於相關性在多個維度上的累積效應,因此降維是激烈的。


圖2.3 隨着心律失常數據集(Arrythmia dataset)的特徵值數量的增加,方差保持不變

矩陣C 的特徵向量可以通過使用[295]中討論的任何數值方法或通過現成的特徵向量求解器來確定。PCA可以擴展到使用稱爲內核技巧的方法來發現非線性嵌入。參考第10章的章節10.6.4.1,簡要介紹了內核PCA。

2.4.3.2 奇異值分解

奇異值分解(SVD)與主成分分析(PCA)密切相關。然而,由於密切的關係,這些不同的方法有時會彼此混淆。在開始討論SVD之前,我們說明它與PCA的關係。SVD比PCA更普遍,因爲它提供了兩套基本矢量而不是一套。SVD提供數據矩陣的行和列的基向量,而PCA僅提供數據矩陣的行的基向量。此外,在某些特殊情況下,SVD爲數據矩陣的行提供了與PCA相同的基礎:

對於其中每個屬性的均值爲0的數據集,SVD提供與PCA相同的基本向量和數據轉換。

PCA的基本向量對平均轉換不變,而SVD的基向量不是。當數據不是以中心爲中心時,SVD和PCA的基向量將不會相同,並且可能得到定性不同的結果。SVD通常在沒有均值集中的情況下應用於稀疏非負數據,例如文檔項矩陣。定義SVD的正式方法是作爲(或分解成)三個矩陣的可分解產物:

(2.11)D=QΣPT

這裏,Q 是具有正交列的n×n 矩陣,其是左奇異向量。Σ 是包含奇異值的n×d 對角矩陣,其總是非負的,並且按照慣例,以非遞增順序排列。此外,P 是具有正交列的d×d 矩陣,它們是右奇異向量。請注意,對角矩陣Σ 是矩形的而不是正方形的,但它被稱爲對角線,因爲只有形式Σii 的輸入不爲零。線性代數的一個基本事實是這種分解總是存在的,並且可以在[480]中找到證明。Σ 的非零對角元素的個數等於矩陣D 的秩,爲min{nd} 。此外,由於奇異向量的正交性,PTPQTQ 都是單位矩陣。 我們提出以下意見:

  1. 矩陣Q 的列也是左奇異向量,是DDT 的正交特徵向量。這是因爲DDT=QΣPTPΣTQT=QΣΣTQT 。因此,作爲n×n 對角矩陣ΣΣT 的對角項的非零奇異值的平方表示DDT 的非零特徵值。

  2. 矩陣P 的列也是右奇異向量,是DTD 的正交特徵向量。在d×d 對角矩陣ΣTΣ 的對角條目中表示的非零奇異值的平方是DTD 的非零特徵值。請注意,DDTDTD 的非零特徵值是相同的。矩陣P 特別重要,因爲它提供了與PCA中協方差矩陣的特徵向量類似的基向量。

  3. 因爲以均值爲中心的數據的協方差矩陣是DTDn (參考等式2.7),並且SVD的右奇異向量是DTD 的特徵向量,所以對於中心平均的數據來說,PCA的特徵向量與SVD的右奇異向量相同。此外,奇異值分解中的平方奇異值是主成分分析特徵值的n 倍。這種等價性說明了爲什麼SVD和PCA可以爲以均值爲中心的數據提供相同的轉換。

  4. 在不失一般性的情況下,可以假設Σ 的對角條目按降序排列,並且矩陣PQ 的列也相應地排序。令PkQk 分別是通過選擇PQ 的前k 列獲得的截短的d×kn×k 矩陣。 設Σk 是包含最高k 個奇異值的k×k 平方矩陣。然後,SVD分解產生原始數據集D 的近似d 維數據表示:

    (2.12)DQkΣkPkT

    Pk 的列表示用於數據集簡化表示的k 維基系統。在這個k 維基系統中的降維數據集由n×k 數據集Dk=DPk=QkΣk ,如等式2.10。D 行中的每一行都是Dk 包含這個新軸系統中每個變換數據點的k 座標。通常,k 的值比nd 都小得多。此外,不同於PCA,全d 維變換數據矩陣D 的最右dkD=DP 將近似爲0(而不是數據平均值),數據是否以平均值爲中心。一般來說,PCA將數據投影到穿過數據平均值的低維超平面上,而SVD將數據投射到穿過原點的低維超平面上。PCA儘可能多地捕獲數據的方差(或平均歐幾里德距離),而SVD捕獲儘可能多的關於起點的總歐氏距離的平方歐氏距離。這種近似數據矩陣的方法被稱爲截斷SVD。

在下文中,我們將顯示截斷SVD使關於原點的變換數據點的聚集平方歐幾里得距離(或能量)最大化。令v¯d 維列向量,Dv¯ 是數據集Dv¯ 上的投影。考慮確定單位向量v¯ 的問題,使得投影數據的歐幾里德距離Dv¯TDv¯ 的平方和來自原點的點數最大化。將拉格朗日鬆弛v¯TDTDv¯λ||v¯||21 的梯度設置爲0等價於特徵向量條件DTDv¯λv¯=0 。由於右奇異向量是DTD 的特徵向量,因此它的特徵向量具有k 個最大特徵值(平方奇異值)的右奇異向量提供了使經轉換和減少的數據矩陣D 中的保存能量最大化的基礎。Dk=DPk=QkΣk 。因爲能量是距離原點的平方歐幾里德距離之和,對軸旋轉是不變的,所以能量在DkDkPkT=QkΣkPkT 中的相同。因此,krank 奇異值分解是一個最大的能量保留因子分解。這個結果被稱爲Eckart-Young定理。

Dv¯TDv¯ 給出了數據集D 沿奇異值向量v¯ 的投影Dv¯ 的總保存能量,簡化如下:

(Dv¯)T(Dv¯)=v¯T(DTDv¯)=v¯T(σ2v¯)=σ2

因爲能量被定義爲沿着標準正交方向的線性可分的總和,所以沿前k 個奇異向量的數據投影中的保存能量等於前k 個奇異值的平方和。請注意,數據集D 中的總能量總是等於所有非零奇異值的平方和。可以證明,最大化保存的能量與最小化k -階近似的平方誤差(或失去的能量)是相同的。這是因爲保留子空間中的能量和互補(丟棄)子空間中的損失能量之和總是恆定的,這等於原始數據集D 中的能量。

純粹從特徵向量分析的角度來看,SVD提供了兩種不同的視角來理解變換和減少的數據。變換後的數據矩陣既可以被視爲d×d 散佈矩陣DTD 的前k 個基本特徵向量Pk 上的數據矩陣D 的投影DPk ,也可以直接被看作是縮放特徵向量QkΣk=DPkn×n 點積相似度矩陣DDT 。儘管提取n×n 相似度矩陣的特徵向量通常在計算上是昂貴的,但這種方法也推廣到非線性降維方法,其中線性基向量的概念不存在於原始空間中。在這種情況下,爲了提取非線性嵌入(參見表2.3),將點積相似度矩陣替換爲更復雜的相似度矩陣。

SVD比PCA更普遍,並且可用於同時確定數據矩陣的k 個基向量的子集及其具有最大能量的轉置。後者可以用於理解DT 的互補轉換特性。Qk 的正交列提供了用於(近似)變換與DT 的行對應的“數據點”的k 維基礎系統,並且矩陣DTQk=PkΣk 包含相應的座標。例如,在用戶項目評分矩陣中,可能希望確定用戶的簡化表示或項目的簡化表示。SVD爲這兩種簡化提供了基礎向量。截斷SVD以k 個主要潛在成分表示數據。第i 個潛在分量用DDT 的第i 個基向量表示,它在數據中的相對重要性由第i 個奇異值定義。通過將矩陣乘積QkΣkPkT 分解成QkPk 的列向量(即DTD 的主導基向量),可以獲得k 個潛在分量的下列相加和:

(2.13)QkΣkPkT=i=1kqi¯σipi¯T=i=1kσi(qi¯pi¯T)

這裏qi¯Q 的第i 列,pi¯P 的第i 列,而σiΣ 的第i 個對角條目。每個潛在分量σiqi¯pi¯T 是具有秩1和能量σi2n×d 矩陣。這種分解被稱爲頻譜分解。簡化基矢量與SVD矩陣分解的關係如圖2.4所示。


圖2.4 矩陣分解在SVD中的互補性質

下面舉例說明6×6矩陣的2秩截斷奇異值分解:

D=(221200233300111100222311000111000212)Q2Σ2P2T

(0.410.170.650.310.230.130.560.200.100.460.190.78)(8.4003.3)(0.410.490.440.610.100.120.210.310.260.370.440.68)

=(1.551.871.67_1.910.100.042.462.982.662.950.100.030.891.080.961.040.010.041.812.111.913.140.771.030.020.050.021.060.741.110.100.020.041.891.281.92)

請注意,秩2矩陣是原始矩陣的一個很好的近似值。具有最大誤差的條目在最終的近似矩陣中加下劃線。有趣的是,這個條目也與原始數據中剩餘矩陣的結構不一致(爲什麼?)。截斷SVD通常會嘗試糾正不一致的條目,並且此屬性有時會用於降低容易出錯的數據集中的噪聲。

2.4.3.3 潛在語義分析

潛在語義分析(LSA)是SVD方法在文本域中的一種應用。在這種情況下,數據矩陣D 是包含n 個文檔中的歸一化詞頻的n×d 文檔項矩陣,其中d 是詞典的大小。沒有使用均值居中,但由於D 的稀疏性,結果與PCA大致相同。D 的稀疏性意味着D 中的大多數項是0,並且每列的平均值遠小於非零值。在這種情況下,可以證明協方差矩陣與DTD 近似成正比。數據集的稀疏性也導致了低固有維數。因此,在文本領域,LSA的維度降低是相當激烈的。例如,能夠在少於300個維度上表示在100,000個維度的詞典上繪製的語料庫並不罕見。

LSA是一個典型的例子,說明某些維度的信息“丟失”實際上能夠改善數據表示的質量。文本域存在兩個與同義詞和多義詞相對應的主要問題。同義詞是指兩個詞可能具有相同的含義。例如,“滑稽”和“歡鬧”這兩個詞的意思大致相同。多義性是指這個事實,即同一個詞可能意味着兩個不同的東西。例如,“捷豹”一詞可以指汽車或貓。通常,一個詞的重要性只能在文檔中的其他詞的上下文中理解。這對於基於相似性的應用程序來說是一個問題,因爲計算與使用詞頻的相似性可能不完全準確。例如,分別包含“滑稽”和“歡鬧”兩個詞的兩個文件在原始表示空間中可能不被認爲足夠相似。上述兩個問題是同義詞和多義詞效應的直接結果。 LSA之後的截斷表示法典型地消除了同義詞和多義詞的噪音影響,因爲(高能量)奇異向量表示數據中的相關方向,並且沿着這些方向隱含地表示該詞的適當上下文。由於使用中的個體差異而產生的變化隱含地編碼在低能量方向上,無論如何都被截斷。據觀察,使用LSA可以實現文本應用的重大質量改進[184,416]。同義詞效應方面的改進通常比多義詞更大。這種SVD的噪聲消除行爲也在一般的多維數據集中得到證明[25]。

2.4.3.4 PCA和SVD的應用

雖然PCA和SVD主要用於數據壓縮,但它們在數據挖掘中還有許多其他應用。一些例子如下:

  1. 降噪:雖然去除PCA和SVD中較小的特徵向量/奇異向量可能會導致信息丟失,但在許多情況下,它還可能導致數據表示質量的提高。主要原因是沿着小特徵向量的變化通常是噪聲的結果,並且它們的去除通常是有益的。一個例子是LSA在文本域中的應用,其中刪除較小的組件導致文本的語義特徵的增強。奇異值分解也用於去噪圖像。這些特定於文本和圖像的結果在任意數據域中也被證明是正確的[25]。因此,減少數據不僅僅是節省空間,而且實際上在許多情況下提供了定性優勢。
  2. 數據估算:SVD和PCA可用於數據估算應用[23],如協同過濾,因爲即使從不完整的數據矩陣中可以估算出k 值較小的簡化矩陣QkΣkPk 。因此,整個矩陣可以近似重建爲QkΣkPkT 。這個應用程序在第18章第18.5節討論。
  3. 線性方程:許多數據挖掘應用程序都是優化問題,其中解決方案被重新組合爲線性方程組。對於任何線性系統Ay¯=0 ,任何具有0奇異值的A 的奇異向量將滿足方程組(見習題14)。因此,0個奇異向量的任何線性組合將提供解決方案。
  4. 矩陣求逆:SVD可用於d×d 矩陣D 的求逆。設D 的分解由QΣPT 給出。那麼,D 的逆矩陣是D1=PΣ1QT 。請注意,Σ1 可以通過對Σ 的對角項求倒數得到。該方法還可以推廣到通過僅求Σ 的非零對角條目的倒數來確定k 秩矩陣D 的Moore-Penrose廣義逆D+ 。通過執行轉置Σ 的附加操作,該方法甚至可以推廣到非方陣。這種矩陣求逆運算在許多數據挖掘應用中是必需的,例如最小二乘迴歸(參見第11章第11.5節)和社會網絡分析(參見第19章)。
  5. 矩陣代數:許多網絡挖掘應用需要應用代數運算,例如計算矩陣的功率。這在隨機遊走方法中很常見(參見第19章),其中可能需要計算無向網絡的對稱鄰接矩陣的第k 個冪。這種對稱鄰接矩陣可以分解爲QΔQT 形式。這種分解的第k 次方可以有效地計算爲Dk=QΔkQT 。事實上,矩陣的任何多項式函數都可以被有效地計算。

SVD和PCA非常有用,因爲矩陣和線性代數運算在數據挖掘中無處不在。SVD和PCA通過提供方便的分解和基本表示來促進這種矩陣運算。SVD被形象地稱爲“絕對是線性代數的一個高點”。[481]

2.4.4 用類型轉換降維

在這些方法中,降維與類型轉換相結合。 在大多數情況下,數據會從更復雜的類型轉換爲不太複雜的類型,例如多維數據。 因此,這些方法實現了數據縮減和類型可移植性的雙重目的。 本節將研究兩種這樣的轉換方法:

  1. 時間序列到多維:使用了許多方法,例如離散傅里葉變換和離散小波變換。 雖然這些方法也可以看作由上下文屬性的各種時間戳定義的軸系統的旋轉,但數據在旋轉後不再依賴於相關性。 因此,可以以類似於多維數據的方式處理結果數據集。 由於其直觀的簡單性,我們將研究Haar小波變換。

  2. 加權圖到多維:使用多維縮放和譜方法在多維空間中嵌入加權圖,以便通過多維嵌入來捕獲邊上的相似度或距離值。

本節將討論這些技術中的每一種。

表2.2 小波係數計算的一個例子

2.4.4.1 哈爾(Haar)小波變換

小波是一種衆所周知的技術,可用於多粒度分解並將時間序列數據彙總爲多維表示。 哈爾小波是一種特別流行的小波分解形式,因爲它的直觀性和易於實現。 爲了理解小波分解背後的直覺,將使用傳感器溫度的一個例子。

假設傳感器測量從早晨到晚上12小時的溫度。 假設傳感器以1個樣本/秒的速率採樣溫度。 因此,在一天的過程中,傳感器將收集12×60×60=43,200 個讀數。 顯然,這將不會在很多天和很多傳感器上得到很好的擴展。 一個重要的觀察結果是許多相鄰的傳感器讀數非常相似,導致這種表示非常浪費。 那麼,我們如何能夠在少量空間中大致表示這些數據呢? 我們如何確定讀數發生“變化”的關鍵區域,並存儲這些變化而不是重複值?

假設我們只存儲整天的平均值。 這提供了一些關於溫度的想法,但沒有提供關於當天變化的其他信息。 現在,如果上半年和下半年的平均溫度差也存儲起來,那麼我們可以從這兩個值中得出當天的第一天和第二天的平均值。 這個原則可以遞歸地應用,因爲這一天的前半部分可以分爲第一季和第二季。 因此,利用四個存儲值,我們可以在一天中的四個季度完美重建平均值。 該過程可以遞歸地應用到傳感器讀數的粒度級別。 這些“差異值”用於導出小波係數。 當然,我們還沒有實現任何數據壓縮,因爲這些係數的數量可以顯示爲與原始時間序列的長度完全相等。

重要的是要明白,大的差異值告訴我們更多關於溫度值的變化,而不是小的變化,因此它們對於儲存更重要。 因此,粒度級別的歸一化之後存儲更大的係數值。 這種歸一化,稍後討論,存儲代表更長時間尺度的係數是有偏見的,因爲更長時間的趨勢對於(全局)系列重建更具信息性。

更正式地,小波技術將時間序列分解成一組係數加權小波基向量。 每個係數代表特定時間範圍兩半之間時間序列的粗略變化。 小波基矢量是一個時間序列,以簡單的階躍函數的形式表示這種變化的時間範圍。 小波係數具有不同的階數,取決於分析的時間序列片段的長度,這也代表了分析的粒度。 高階係數代表系列中的大趨勢,因爲它們對應較大的範圍。 低階係數捕獲更多的局部趨勢。 在提供更多符號描述之前,下面分兩步提供時間序列段S的小波分解的簡單遞歸描述:

  1. 將S的第一和第二時間半部分之間的行爲屬性值的平均差異的一半報告爲小波係數。

  2. 遞歸地將這種方法應用於S的第一和第二時間半部分。


    圖2.5 小波分解的例證

在該過程結束時,執行還原過程,其中保留較大(歸一化)的係數。 該標準化步驟將在後面詳細描述。

在這一點上將提供更正式的和符號密集的描述。 爲了便於討論,假設系列的長度q 是2的冪。對於k1 的每個值,Haar小波分解定義k 階的2k1 個係數。這2k1 係數中的每一個都對應於長度爲q/2k1 的時間序列的連續部分。這2k1 係數的第i 個對應於從位置i1·q/2k1+1 開始到位置i·q/2k1 的序列中的分段。讓我們用ψki 表示這個係數,用Ski 表示相應的時間序列片段。同時,讓我們將Ski 的前半部分的平均值定義爲aki ,將後半部分的平均值定義爲bik 。那麼,ψki 的值由(akibki)/2 給出。 更正式地說,如果ϕki 表示Ski 的平均值,那麼可以遞歸地定義ψki 的值如下:

(2.14)ψki=(ϕk+12i1ϕk+12i)/2

Haar係數集由1到log2(q) 的所有係數定義。 此外,爲了完美重建,需要全局平均值ϕ11 。係數的總數恰好等於原始序列的長度,並且通過丟棄較小(歸一化)的係數來獲得降維。這部分我們會在後面繼續討論。


圖2.6: 小波分解的錯誤樹

不同訂單的係數以特定的粒度級別瞭解數據的主要趨勢。例如,係數ϕki 是片段Ski 的前半部分大於同一片段後半部分的量的一半。由於較大的k 值對應於幾何縮小的段大小,因此可以在不同粒度級別上理解基本趨勢。 Haar小波的這種定義使得通過一系列平均和差分操作非常容易進行計算。表2.2顯示了序列8,6,2,3,4,6,6,5 的小波係數的計算。這種分解在圖2.5中以圖形形式說明。請注意,原始序列中的每個值都可以表示爲log2(8)=3 小波係數的總和,前面加上正號或負號。通常,整個分解可以表示爲深度3的樹,其表示整個系列的分層分解。這也被稱爲錯誤樹。在圖2.6中,說明了表2.2中小波分解的誤差樹。樹中的節點包含小波係數的值,但包含系列平均值的特殊超根節點除外。

該系列中小波係數的數量是8,這也是原始系列的長度。 原始序列已複製到圖2.6中錯誤樹的正下方,並可通過在沿着通向該值的路徑上的節點中添加或減去值來重建。 如果我們使用它下面的左分支來達到系列值,則應該添加節點中的每個係數。 否則,應該減去它。 這種自然分解意味着可以通過僅使用與其相關的錯誤樹的部分來重建沿着該系列的整個連續範圍。

與所有降維方法一樣,較小的係數被忽略。 我們將藉助與每個係數相關的基向量的概念來解釋丟棄係數的過程:

小波表示是將長度爲q的原始時間序列分解爲彼此正交的q個“更簡單”時間序列(或小波)的集合的加權和。 這些“更簡單”的時間序列是基本向量,小波係數表示分解中不同基向量的權重。

圖2.5顯示了這些“更簡單”的時間序列及其相應的係數。小波係數(和基向量)的數量等於系列q的長度。
代表每個基矢量的時間序列的長度也是q。每個基矢量在連續的時間序列段中具有+1或-1的值,通過差分操作從中得出特定的係數。否則,該值爲0,因爲小波與時間序列中該區域的變化無關。基矢的非零段的前半部分是+1,後半部分是-1。當它被繪製成時間序列時,這給出了小波的形狀,並且還反映了相關時間序列片段中的差異操作。乘以係數的基向量具有建立加權時間序列的作用,其中第一半和第二半之間的差異反映了原始時間序列中相應段之間的平均差異。因此,通過在錯誤樹中將不同粒度級別的所有這些加權小波相加,就可以重建原始序列。圖2.5中的基向量列表是以下矩陣的行:

(1100000000110000000011000000001111110000000011111111111111111111)

請注意,任何一對基矢量的點積是0,因此這些系列彼此正交。 最詳細的係數只有一個+1和一個-1,而最粗略的係數有四個+1和-1個條目。 此外,需要使用向量11111111 來表示系列平均值。

對於時間序列T ,令W1¯...Wq¯ 是相應的基本向量。那麼,如果a1...aq 是基向量W1¯...Wq¯ 的小波係數,時間序列T 可以表示如下:

(2.15)T=i=1qaiWi¯=i=1q(ai||Wi¯||)Wi¯||Wi¯||

圖2.5中表示的係數是未標準化的,因爲基向量沒有單位標準化。雖然ai 是圖2.5中的非標準化值,但值ai||Wi|| 代表歸一化的係數。||Wi|| 的值對於不同次序的係數是不同的,在這個特例中等於248 。例如,在圖2.5中,最大層次的非歸一化係數是-0.25,而相應的歸一化值是0.258 。歸一化之後,基向量W1¯...Wq¯ 是正交的,因此,相應(歸一化)係數的平方和等於近似時間序列中的保留能量。 由於歸一化後的係數在軸旋轉之後提供了一個新的座標表示,所以如果係數沒有丟失,則時間序列之間的歐幾里德距離將保留在這個新的表示中。 可以證明,通過保留具有最大歸一化值的係數,小波表示中的誤差損失被最小化。

前面的討論集中在單個時間序列的逼近上。 實際上,人們可能想要將N個時間序列的數據庫轉換爲N個多維向量。 當多個時間序列數據庫可用時,可以使用兩種策略:

  1. 爲每個系列選擇相同基礎矢量的係數,以創建一個有意義的低維度多維數據庫。 因此,選擇N個不同序列中具有最大平均歸一化係數的基向量。

  2. 小波係數表示的全部維度被保留。 然而,對於每個時間序列,最大歸一化係數(幅度)是單獨選擇的。 剩下的值被設置爲0.這導致了一個稀疏的高維度數據庫,其中許多值爲0.像SVD這樣的方法可以作爲進一步降低維度的第二步應用。 這種方法的第二步缺點是失去了小波變換特徵的可解釋性。 回想一下,哈爾小波是少數幾個降維變換之一,其中係數在特定時間序列段的特定趨勢方面確實具有一定的可解釋性。

小波分解方法通過僅保留少量係數爲降維(和數據類型轉換)提供了一種自然的方法。


圖2.7 說明包含海面溫度的網格中空間數據的小波分解的頂層

具有多個上下文屬性的小波分解
時間序列數據包含與時間值相對應的單個上下文屬性。 這有助於簡化小波分解。 但是,在某些情況下,如空間數據,可能會有兩個與X座標和Y座標對應的上下文屬性。 例如,在使用兩個座標描述的空間位置處測量海面溫度。 在這種情況下如何進行小波分解? 在本節中,提供了將小波擴展到多個上下文屬性的簡要概述。

假設空間數據以尺寸爲q×q 的二維網格的形式表示。 回想一維情況下,通過連續劃分時間序列以分層方式對時間序列的連續段應用差分操作。 相應的基向量在相關位置處具有+1和-1。 二維情況完全類似於連續分區使用空間網格的連續區域。 這些分區沿着不同的軸交替進行。 相應的基本矢量是尺寸爲q×q 的二維矩陣,用於調節差分操作的執行方式。

圖2.7說明了二維分解策略的一個例子。圖中只顯示了分解的前兩個層次。這裏以空間溫度的4×4 網格爲例。沿着X軸的第一個分區將空間區域分成兩個大小爲4×2 的塊。相應的二維二元基矩陣被示爲相同的圖。下一階段在分層分解過程中將這些4×2 塊中的每一塊劃分爲大小爲2×2 的塊。與一維時間序列的情況一樣,小波係數是被分解的相關塊的兩半之間的平均溫度的一半差異。沿着X軸和Y軸的交替分割過程可以進行到各個數據條目。這創建了分層小波誤差樹,其具有與1維情況中創建的許多類似的屬性。這種分解的總體原理與1維情況幾乎相同,不同層次的切割如何通過在不同層次交替進行而產生主要差異。該方法可以擴展到k>2 的上下文屬性的情況下,使用在樹的不同級別上選擇的軸上的循環旋轉進行差異化操作。

2.4.4.2 多維度縮放

圖是用於表示對象之間關係的強大機制。 在某些數據挖掘場景中,對象的數據類型可能非常複雜且異構,如用文本和其他數字屬性註釋的時間序列。 然而,基於應用程序特定的目標,幾對數據對象之間的距離之間的明確概念可能是可用的。 如何可視化這些對象之間的內在相似性? 一個人如何想象社交網絡中兩個人的“接近度”? 這樣做的一種自然方式是多維縮放(MDS)的概念。 雖然MDS最初是在圖形結構距離的空間可視化的背景下提出的,但它在嵌入多維空間中任意類型的數據對象方面具有更廣泛的適用性。 這種方法還可以在嵌入數據上使用多維數據挖掘算法。

對於體格n個節點的圖,令δij=δji 表示節點ij 之間的具體距離。它假設了所有(n2) 對節點之間的距離都是明確的。希望將n個節點映射到n個不同的k維向量Xi¯...Xj¯ ,使得多維空間中的距離與距離圖中的(n2) 距離值緊密對應。 在MDS中,這n 個點中每一個點的k 座標都被視爲需要優化的變量,以便它們能夠擬合當前的成對距離集。公制MDS也稱爲經典MDS,試圖解決以下優化(最小化)問題:

(2.16)O=i,j:i<j(||Xi¯Xj¯||δij)2

此處,|||| 代表歐幾里得常數。換句話說,每個節點都由一個多維數據點表示,這樣這些點之間的歐幾里得距離儘可能接近地反映了圖的距離。 在其他形式的非度量MDS中,這個目標函數可能是不同的。 這個優化問題因此具有nk 個變量,並且它隨着數據n 的大小和嵌入的期望維度k 而縮放。公式2.16中的對象O 通常被i,j:i<jδij2 來產生一個位於(0,1) 範圍內的值。這個值的平方根被稱爲克魯斯卡爾壓力(Kruskal stress)

經典MDS的基礎假設是距離矩陣Δ=[δij2]n×n 是通過計算一些假設的數據矩陣D 中的成對歐氏距離產生的,其條目和維度是未知的。在經典的MDS中,矩陣D 永遠無法完全恢復,因爲歐幾里德距離對於平移和軸旋轉是不變的。 數據平均值和軸方向的適當約定將在後面討論。 儘管公式2.16的優化需要數值技術,但是在特定距離矩陣爲歐幾里得的假設下,可以通過特徵分解獲得經典MDS的直接解決方案:

  1. 藉助歐幾里得空間中的餘弦定律,任意兩兩(平方)距離矩陣Δ=[δij2]n×n 可以轉換爲對稱點積矩陣Sn×n 。特別是,如果Xi¯Xj¯ 是第i 個和第j 個節點的嵌入表示,則Xi¯Xj¯ 之間的點積可以與距離相關如下:

    (2.17)Xi¯Xj¯=12[||Xi¯Xj¯||2||Xi¯+Xj¯||2]   i,j{1..n}

    對於以平均值爲中心的嵌入,||Xi¯||2+||Xj¯||2 的值可以用可以用距離矩陣Δ 的條目表示(見練習9),如下所示:
    (2.18)||Xi¯||2+||Xj¯||2=p=1n||Xi¯Xp¯||2n+q=1n||Xj¯Xq¯||2np=1n1=1n||Xp¯Xq¯||2n2

    平均中心假設是必要的,因爲歐幾里得距離是平均不變量,而點積不是。 通過把方程2.18帶入方程2.17,可以完全根據距離矩陣Δ 的條目表達點積Xi¯Xj¯ 。由於這個條件對於ij 的所有可能值都是正確的,所以我們可以方便地用n×n 矩陣形式表達它。令U 是所有1的n×n 矩陣,並令I 爲單位矩陣。然後,我們上面的論證顯示點積矩陣S 等於12(IUn)Δ(IUn) 。在歐幾里德假設下,矩陣S 總是正半正定,因爲它等於未知維數的未觀測數據矩陣Dn×n 點積矩陣DDT 。因此,希望將S 的高質量因子分解確定爲形式DkDkT ,其中Dk 是維數kn×k 矩陣。
  2. 這種分解可以通過特徵分解來獲得。令SQkk2QkT=(Qkk)(Qkk)T 表示S 的近似對角化,其中Qk 是包含S 的最大k 個特徵向量的n×k 矩陣,並且k2 是一個k×k 的包含特徵值的對角矩陣。嵌入表示由Dk=Qkk 給出。請注意,SVD也可以將最佳嵌入作爲原始數據點積矩陣的縮放特徵向量。 因此,這種方法使表示的平方誤差最小化。 這也可以被證明相當於最小化Kruskal壓力。

最佳解決方案並不是唯一的,因爲我們可以將Qkk 與任何具有正交列的k×k 矩陣相乘,並且成對的歐幾里德距離不會受到影響。換句話說,旋轉軸系統中Qkk 的任何表示也是最優的。MDS找到像PCA這樣的軸系統,其中各個屬性是不相關的。事實上,如果將經典MDS應用於通過計算實際數據集中的成對歐幾里得距離構造的距離矩陣Δ ,則它將產生與在該數據集上應用PCA相同的嵌入。當這種數據集不可用時,MDS非常有用,並且只有距離矩陣Δ 可用。

與所有降維方法一樣,維度k的值提供了表示大小和準確性之間的交換。維數k 的較大值將導致較低的應力。大量的數據點通常需要更大的表示維度來實現相同的壓力。然而,最關鍵的因素是距離矩陣的內在結構。例如,如果一個10,000×10,000 的距離矩陣包含10,000 個城市之間的成對駕駛距離,通常可以用二維表示來很好地近似。這是因爲駕駛距離是二維空間中歐幾里德距離的近似值。另一方面,任意距離矩陣可能不是歐幾里德距離,這些距離甚至可能不滿足三角不等式。結果,矩陣S 可能不是正半正定。在這種情況下,有時仍然可以使用度量假設來獲得高質量的嵌入。具體而言,只能使用那些正特徵值,其幅度超過最負特徵值的特徵值。如果負特徵值的幅度很小,這種方法效果很好。

MDS常用於非線性降維方法,如ISOMAP(參見第3章第3.2.1.7節)。值得注意的是,在常規SVD中,n×n 點積相似度矩陣DDT 的縮放特徵向量產生D 的低維嵌入表示,就像S 的特徵向量產生MDS中的嵌入一樣。 相似矩陣的特徵分解是許多線性和非線性降維方法的基礎,如PCA,SVD,ISOMAP,核PCA和譜嵌入。 每個嵌入的特定屬性是選擇相似性矩陣和所得特徵向量上使用的縮放比例的結果。表2.3提供了這些方法的初步比較,儘管其中一些僅在後面的章節中詳細討論。

表2.3 各種相似性矩陣的縮放特徵向量產生具有不同屬性的嵌入

2.4.4.3 圖譜的譜變換和嵌入

鑑於MDS方法是爲保存全球距離而設計的,譜方法的設計是爲了保存聚類等應用的局部距離。 光譜方法與相似度圖一起工作,其中邊緣的權重代表相似性而不是距離。 當距離值可用時,它們被轉換爲具有內核函數的相似值,例如本章前面討論的熱內核。由於同源性的概念,相似性的概念對於許多真實的網絡,社交和信息網絡來說很自然。例如,考慮一個書目網絡,其中節點對應於作者,邊緣對應於共同作者關係。邊的權重表示作者之間的出版物數量,因此表示作者出版物中可能的相似概念。相似圖也可以在任意數據類型之間構建。例如,一組n個時間序列可以轉換成一個有n個節點的圖,其中一個節點表示每個時間序列。邊的權重等於兩個節點之間的相似度,並且只保留具有“足夠”相似水平的邊。第2.2.2.9節提供了關於相似圖構造的討論。因此,如果可以將相似圖轉換爲保留節點之間相似性結構的多維表示,則它提供了一種轉換,可以將任何數據類型虛擬地轉換爲易於使用的多維表示。這裏需要注意的是,這種轉換隻能用於基於相似性的應用,如聚類或最近鄰分類,因爲轉換的目的是保持局部相似性結構。數據集的局部相似性結構對於許多數據挖掘應用程序而言至關重要。

G=NA 爲節點集N 和邊集A 的無向圖。假設節點集包含n 個節點。 對稱n×n 權重矩陣W=[wij] 表示不同節點之間的相似度。與MDS一起使用完整的全局距離圖,MDS通常是稀疏表示每個對象與其最近k個對象的相似性(參見2.2.2.9節)。與其他對象的相似性不會相互區分並設置爲0.這是因爲頻譜方法僅保留聚類等應用程序的局部相似性結構。 這個矩陣中的所有條目都被假定爲非負的,並且較高的值表示較大的相似性。 如果在一對節點之間不存在邊緣,則相應的條目被假定爲0.希望將該圖的節點嵌入到k 維空間中,以便保持數據的相似性結構。

首先,讓我們討論將節點映射到一維空間的更簡單的問題。對k 維情況的推廣是相對直接的。 我們想將N 中的節點映射成一組一維實數值y1...yn 在一條線上,這樣這些點之間的距離反映了節點之間的邊緣連通性。 因此,將連接高權重邊的節點映射到該線上的遠端點是不理想的。 因此,我們想確定yi 的最小化以下目標函數O 的值:

(2.19)O=i=1nj=1nwij(yiyj)2

這個目標函數懲罰yiyj 之間的距離,權重與wij 成正比。因此,當wij 非常大(更相似的節點)時,數據點yiyj 將更可能在嵌入式空間中更接近彼此。目標函數O 可以用權重矩陣W 的拉普拉斯矩陣L 重寫。拉普拉斯矩陣L 定義是ΛW ,其中Λ 是一個對角矩陣Λii=j=1nwij 。設嵌入值的n 維列向量表示爲y¯=(y1...yn)T 。 在一些代數簡化後,可以用拉普拉斯矩陣來重寫最小化目標函數O

(2.20)O=2y¯TLy¯

矩陣L 是具有非負特徵值的正半正定矩陣,因爲和平方目標函數O 總是非負的。我們需要合併縮放約束來確保所有iyi=0 的平凡值不被優化方案選擇。可能的縮放限制如下:
$$\overline{y}^T\Lambda\overline{y}=1 \tag{2.21}$

在方程2.21的約束中使用矩陣Λ 基本上是一個歸一化約束,這在19章的19.3.4節中有詳細討論。

可以證明,通過選擇y 作爲關係Λ1Ly¯=λy¯ 的最小特徵向量來優化O 的值。然而,最小的特徵值總是0,並且它對應於節點嵌入y 與僅包含1的矢量成比例的平凡解。這個平凡的特徵向量是非信息性的,因爲它對應於每個節點都映射到相同點的嵌入。 因此,它可以被丟棄,並且不用於分析。然後,第二小的特徵向量提供更具信息性的最佳解決方案。

通過確定隨特徵值增加的特徵向量的連續方向,可將該解推廣到尋找最佳k 維嵌入。在丟棄具有特徵值λ1=0 的第一平凡特徵向量e1¯ 之後,這導致一組k 個特徵向量e2¯e3¯...ek+1¯ ,相應的特徵值λ2λ3...λk+1 。每個特徵向量的長度爲n,並且包含每個節點的一個座標值。 沿着第j 個特徵向量的第i 個值代表第i 個節點的第j 個座標。 這創建了一個n×k 矩陣,對應於n 個節點的k 維嵌入。

小尺度特徵向量在新的變換空間中直觀地表示什麼?通過使用沿小幅度特徵向量的節點的排序來創建切口,穿過切口的邊緣的重量可能很小。因此,這代表節點空間中的一個集羣。在實踐中,選擇k個最小的特徵向量(忽略第一個特徵向量)進行縮減並創建k維嵌入。這種嵌入通常包含節點潛在相似結構的極好表示。嵌入可以用於幾乎任何基於相似性的應用,儘管這種方法最常見的應用是譜聚類。這種方法的許多變體存在於拉普拉斯算子L如何歸一化以及如何生成最終的羣集。 譜聚類方法將在第19章第19.3.4節中詳細討論。

2.5 總結

數據準備是數據挖掘過程的一個重要部分,因爲分析算法對輸入數據的質量很敏感。 數據挖掘過程需要從各種來源收集原始數據,這些數據可能處於不適合直接應用分析算法的形式。 因此,可能需要應用許多方法才能從基礎數據中提取特徵。 由此產生的數據可能具有顯着的缺失值,錯誤,不一致性和冗餘性。 存在各種分析方法和數據清理工具,用於輸入缺失的條目或糾正數據中的不一致性。

另一個重要問題是數據異質性。 分析師可能面臨着衆多不同的屬性,因此數據挖掘算法的直接應用可能並不容易。 因此,數據類型的可移植性很重要,其中一些屬性子集被轉換爲預定義的格式。 由於其簡單性,多維格式通常是優選的。 事實上,任何數據類型都可以通過構建相似圖的兩步過程轉換爲多維表示,然後是多維嵌入。

數據集可能非常大,並且可能需要在行數和維數方面減小其大小。 使用採樣來減少行數是很簡單的。 要減少數據中的列數,可以使用特徵子集選擇或數據轉換。 在特徵子集選擇中,只保留最適合分析的一組較小的特徵。 這些方法與分析方法密切相關,因爲功能的相關性可能取決於應用程序。 因此,特徵選擇階段需要根據特定的分析方法進行調整。

有兩種類型的特徵轉換。 在第一種類型中,可以旋轉軸系以與數據的相關性保持一致,並保留方差最大的方向。 第二種類型適用於複雜的數據類型,如圖形和時間序列。 在這些方法中,表示的大小減小了,並且數據也被轉換爲多維表示。

2.6 書目註釋

特徵提取的問題對於數據挖掘過程是一個重要的問題,但它具有很高的應用特性。 例如,從文檔數據集[400]中提取命名實體的方法與從圖像數據集中提取特徵的方法[424]非常不同[424]。 [245]中可以找到用於各種領域中的特徵提取的一些有前途的技術的概述。

在從不同來源提取功能之後,需要將它們集成到單個數據庫中。 傳統的數據庫文獻中描述了很多方法用於數據集成[194,434]。 隨後,數據需要清理並且需要刪除缺失的條目。 出現了一個概率性或不確定性數據的新領域[18],它以概率數據庫的形式建模了不確定和錯誤的記錄。 然而,這個領域仍處於研究階段,尚未進入數據庫應用的主流。 目前的大多數方法要麼使用缺失數據分析的工具[71,364],要麼使用更常規的數據清理和數據清理工具[222,433,435]。

數據清理完畢後,其大小需要根據數量或維數來降低。 最常見和簡單的減少數量的方法是採樣。 採樣方法可用於靜態數據集或動態數據集。 傳統的數據採樣方法在[156]中討論。 採樣方法也已擴展到以油藏採樣形式的數據流[35,498]。 [35]中的工作討論了將油藏採樣方法擴展到需要從數據流中創建偏向樣本的情況。

特徵選擇是數據挖掘過程的一個重要方面。 該方法通常高度依賴於正在使用的特定數據挖掘算法。 例如,適用於聚類的特徵選擇方法可能不適用於分類。 因此,我們將關於特徵選擇的討論推遲到本書有關聚類和分類主題的章節。 關於特徵選擇的主題有很多書[246,336]。

用於多維數據的兩種最常見的降維方法是SVD [480,481]和PCA [295]。 這些方法也已擴展到LSA [184,416]形式的文本。 在許多領域[25,184,416]已經表明,使用諸如SVD,LSA和PCA的方法在執行縮減之後出乎意料地提高了底層表示的質量。 這種改進是因爲通過丟棄低變量維度來降低噪音影響。 SVD在數據估算中的應用見於[23]和Chap。 本書18。 降維和變換的其他方法包括卡爾曼濾波[260],Fastmap [202]和非線性方法如拉普拉斯特徵映射[90],MDS [328]和ISOMAP [490]。

近年來還提出了許多降維方法,它們與還原過程一起同時執行類型轉換。 這些包括小波變換[475]和圖嵌入方法,如ISOMAP和拉普拉斯特徵映射[90,490]。 關於圖嵌入的譜方法的教程可以在[371]中找到。

2.7 習題

  1. 考慮時間序列311357 。 這裏,缺少的條目用 表示。在大小爲3的窗口上使用線性插值的缺失條目的估計值是多少?

  2. 假設你有一堆文本文檔,並且你想確定這些文檔中提到的所有人物。 你會用什麼類別的技術來實現這個目標?

  3. UCI Machine Learning Repository(UCI機器學習庫) [213]下載Arrythmia數據集。將所有記錄標準化爲平均值0和標準偏差1.將每個數字屬性分解爲a 10個等寬範圍和b 10個等深度範圍。

  4. 假設你有一組不同類型的任意對象代表不同的小部件特徵。 領域專家爲您提供每對對象之間的相似度值。 你如何將這些對象轉換爲一個多維數據集來進行聚類?

  5. 假設你有一個數據集,這樣每個數據點對應的分辨率爲10×10 平方英里的海面溫度。 換句話說,每個數據記錄包含具有空間位置的10×10 個溫度值網格。 您還有一些文字與每個10×10 網格相關聯。 你如何將這些數據轉換成多維數據集?

  6. 假設您有一組離散的生物蛋白質序列,並註明了描述蛋白質特性的文本。 你將如何從這個異構數據集創建一個多維表示?

  7. UCI Machine Learning Repository [213]下載Musk數據集。 將PCA應用於數據集,並報告特徵向量和特徵值。

  8. 使用SVD重複以前的練習。

  9. 對於一個以平均數爲中心的數據集X1¯...Xn¯ ,證明下面結論:

    (2.22)||Xi¯||2+||Xj¯||2=p=1n||Xi¯Xp¯||2n+q=1n||Xj¯Xq¯||2np=1n1=1n||Xp¯Xq¯||2n2
  10. 考慮時間序列1,1,3,3,3,3,1,1.對時間序列執行小波分解。 系列中有多少係數非零?

  11. 下載Intel Research Berkeley data set(英特爾研究伯克利)數據集。 對第一個傳感器中的溫度值應用小波變換。

  12. 將來自UCI機器學習庫[213]的KDD CUP 1999網絡入侵數據集中的每個定量變量作爲時間序列來處理。 執行此時間序列的小波分解。

  13. 從前一個練習的數據集中創建大小爲n=1,10,100,1000,10000 個記錄的樣本,並確定使用該樣本的每個定量列i 的平均值ei 。 設μiσi 是整個數據集的全局平均值和標準差。 計算eiμi 變化的標準偏差zi 的數量。

    zi=|eiμi|σi

    zi 如何隨n 變化?
  14. 證明任意0奇異值的奇異向量y¯ 滿足Ay¯=0

  15. 證明方陣的對角化是SVD的一個特殊變體。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章