數據挖掘和機器學習中如何在高維空間上觀察模型的效果?

本人新手,在看書時發覺書中舉的很多例子都是在二維空間上的模型應用效果,連三維空間都少有,比如一個聚類演算法我可以在聚完類後用眼睛去看二維坐標中是不是【該聚的類都聚出來了,效果好不好】,但是在高維數據上怎麼辦呢?難道是映射到低維空間上再用肉眼觀察么?


人眼最多能看到三維的東西,所以在高維空間觀察數據人是無能為力的,必須先降維。機器學習中有一類演算法叫manifold learning,可以從數據的高維空間中找到其低維流形,相關的降維演算法有很多,題主有興趣的話可以搜索一下,推薦兩篇我覺得不錯的blog:

t-SNE:高維數據可視化

流形學習-高維數據的降維與可視化


笨方法有一個,就是顯示任意兩個維度的數據組成的圖形,比如用weka:

用降維的方法自然也是一個選擇,但是缺點是你不能保證降到3維之後的數據還一定是「合理」的,有些數據可以降很多維,但有的就不能,這完全取決於數據本身,所以我們還是經常要直接觀察高維數據。


如果想肉眼看,不能超過三維。 但實際很多數據都是高維的,肉眼觀察這些數據:1) 每次可以選擇每兩三個維度,然後做plot. 2) 把數據映射到低維度再做觀察 (PCA,LDA,MDS..etc)


在GoogleTechTalks看到一個高維數據映射到二維或者三維可視化的方法,t-SNE。希望對你有一點用處。

Visualizing Data Using t-SNEhttp://www.youtube.com/watch?v=RJVL80Gg3lA

這裡是論文的鏈接http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf

它是先根據數據點在高緯度空間的距離,計算一個條件概率分布,xi和xj是數據點在高緯度空間的向量。再計算另一個條件概率分布,yi和yj是數據點映射到低緯度空間後得到的向量。用KL散度(Kullback–Leibler divergence)來衡量y分布與x分布的相似性,然後通過優化上面兩個方程中的σ,使得所有點的KL散度和最小。大概就是這樣吧。

他們網站給的一個例子。還有MatLab、Python和R的代碼可以下載。


我覺得可以看到4維吧,第4維可以用顏色表示


推薦閱讀:

機器學習和數據挖掘的界限在哪裡?
大數據和「數據挖掘」是何關係?
有哪些很好玩而且很有用的 R 包?
制約大數據發展的核心因素是什麼?
使用爬蟲抓投資數據是否是一個高效的方式?

TAG:演算法 | 數據挖掘 | 數據分析 | 機器學習 | 大數據 |