天天看點

拓撲資料分析與機器學習的互相促進

摘要:很多人認為拓撲資料分析是機器學習的一種形式,而這兩者之間的差別在于你對機器學習的了解與認知,而這篇文章就為你解析拓撲資料分析的一切問題。

拓撲資料分析(tda)和機器學習(ml)的差別與聯系讓不熟悉tda的人撲朔迷離,本文通過兩個定義,解釋了tda和ml的不同,以及tda和ml如何互相促進,為何會互相促進,并通過一個裝置故障分析的案例(5000個樣本,複雜度适中,48個連續特征)來進行證明。

對拓撲資料分析(tda)不熟悉的人,經常會問及一些類似的問題:“機器學習和tda兩者之間的差別?”,這種問題的确難以回答,部分原因在于你眼中的機器學習(ml)是什麼。

下面是維基百科關于機器學習的說明:

機器學習研究算法學習和構造,能從資料中進行學習并做出預測。這種算法通過從輸入執行個體中建立模型,目的是根據資料做出預測或決策,而不是嚴格地遵循靜态程式指令。

大多數人可能會認為tda是機器學習的一種形式,但我覺得,在這些領域工作的人可能都不會贊成這一說法。

機器學習的具體執行個體比任何一個tda的例子更像機器學習。同樣,tda的執行個體比任何一個機器學習的例子看起來更像是tda。

為了解釋tda和ml兩者的不同,更重要的是證明tda和ml是如何互相促進以及為何會互相促進,我将給出兩個非常簡單的定義,然後用一個真實的執行個體進行說明。

定義ml:假定一個資料參數模型,并根據資料來學習模型參數的任意方法。

定義tda:隻把資料點間的“相似性”概念用來建構資料模型的任意方法。

在這種觀點中,ml模型更加具體和詳細,而且模型的成功取決于它對未知資料的拟合程度。它的優勢是,當資料能很好的拟合模型時,其結果尤為突出——幾乎能夠完美的了解那些有明顯噪聲的資料。

tda的優點是它的通用性

對于tda,任何相似性概念都可以拿來使用。相反,對于ml,你需要一個(或更多)強化的相似性概念,與其它任何方法一起發揮作用。

例如,給你一長串的名字,你是無法根據它來預測出身高和體重。你需要更多的資訊。

主要因素是拓撲算法對小誤差的容忍度很大——即便你的相似性概念在某種程度上存在缺陷,隻要它存在“幾分相似”,tda算法一般就會産生一些有用的東西。

tda方法的通用性還有另一個優于ml技術的地方,當ml方法拟合效果很好的時候,tda方法仍然有效——即ml方法經常建立詳細的能生成相似性概念的内部狀态,使tda和ml能夠更深層次的洞悉資料。

聽起來還不錯,但是這通常會走向極端(或者如果你覺得小誤差的容忍度偏低,或是模糊度不夠),這意味着一切都有可能發生。

那麼,來舉個特例吧。

随機森林分類器是一個組合學習方法,在訓練過程中,建立大量的決策樹并在這些“森林”(決策樹集合)的基礎上使用“多數規則”對非訓練資料進行分類。

盡管建立樹的過程相當有趣并且也很靈活,但它們沒有相關的細節。對于随機森林,你隻要記住,它通過把一系列決策樹的集合應用到已知資料點上,然後傳回一系列的“葉節點”(決策樹中,到輸入"下落"的葉子)。

在正常的操作下,每棵樹的每個葉子節點都有一個相關的類别c,可以解釋為“當一個資料點位于樹的該節點時,在很大程度上它就屬于該類别c”。随機森林分類器通過從每棵樹上統計“葉節點類别投票總數”來選出勝出者。盡管在大規模的資料類型上高度有效,但該過程會丢掉大量的資訊。

如果你關心的是對資料類别的最佳猜測,那麼你不會想看到額外的資訊,但有時候你會需要更多的資訊。這種“無關的”資訊可以轉換成一個距離函數,通過把兩個資料點之間的距離定義為它們各自“葉節點”之間差異的倍數。

兩個資料點的距離函數是一個很好的度量(事實上,是在轉換後的資料集上的漢明距離),而且這樣我們可以把tda應用到上面。

該資料集複雜度适中,有48個連續特征,這些特征似乎是硬碟驅動中無法解釋的電流信号。資料還包括一個類别列,它有11個可能的取值,描述的是CD光牒驅動元件不同的狀況(故障模式,也許吧?)。很明顯可以在特征列上計算歐幾裡得距離,然後通過類來給圖形着色。由于我們對于特征項一無所知,是以首先要嘗試的事情就是檢視鄰近晶狀體情況。其結果是一個普通的斑點。

拓撲資料分析與機器學習的互相促進

這讓人有些失望!

接着,使用一些内部的調試功能,我看到鄰近晶狀體的一個散點圖,我知道為什麼如此糟糕了——它看起來像是一顆聖誕樹。

拓撲資料分析與機器學習的互相促進

很顯然,在歐氏度量中沒有類的定位。

然而,如果你在資料集上建立一個随機森林,分類器會有一個非常小的out-of-bag誤差,這強烈的表明了分類器性能的可靠性。

是以,我嘗試使用随機森林的漢明距離來作圖,這種度量下的鄰近晶狀體如下圖所示:

拓撲資料分析與機器學習的互相促進

這看起來很不錯。隻要确定我們也看到了鄰近晶狀體的散點圖就行,上圖的結果表明:

拓撲資料分析與機器學習的互相促進

很明顯,從線圖和散點圖可以看出,随機森林“看”複雜結構的能力要低于分類的标準水準,并被tda給證明了。原因就是rf沒有充分使用“不相關的”資料——而tda充分的利用了這些資料并且從這些資訊中得到了大量的好處。

然而,一些人可能會說,這種結構是虛構的——這也許是我們在系統的某處使用算法人工生成的?在這種資料集下,我們不能真正識别它,因為對于該類别的其它資訊我們一無所知。

不過,基于裝置老化時收集的資料,我們在消費者資料上使用随機森林來度量分析成千上萬的複雜裝置可能的故障模式。類别是基于裝置因為不同的原因(并不是所有的原因都是由故障導緻的)而返廠的事後分析完成的。

在這個例子中,我們發現随機森林度量标準在故障識别層面做的很好,并且我們得到的圖檔特征和上面這些也相似。更重要的是,我們發現在給定的故障模式中的特定組,有時有不同的原因。

在這些情況下得出的結論是:我們在使用tda和rf時沒有做進一步的空間分解,這些原因可能會更難發現。

我們剛才看到的例子表明,tda與機器學習可以一起使用,并且得到的效果比使用單個技術更好。

這就是我們所說的ml&tda;,同時使用更好。

原文釋出時間為:2015-10-11

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号

繼續閱讀