An Algorithm Summary of Programming Collective Intelligence (4)

weixin_30924079發表於2020-04-04

Multidimensional Scaling 多維標度

ms是用來降低向量空間維度的,一般是降低到二維,降低的過程中要儘量保證各個向量之間的距離在許可範圍之內保持相對不變。

可以很形象的把ms的方法用特殊的作用力方式來說明。

首先還是要計算出n維向量空間裡面各個向量的距離作為標準距離。

然後把向量看作在二維平面裡的一個個粒子,開始的時候粒子的分佈是隨機的。

粒子之間有引力和斥力。當兩個粒子之間的距離大於其標準距離時,表現為引力;當小於標準距離時表現為斥力;力的大小與標準距離和實際距離的差值成正比。

所有粒子在平面內相互作用,使其分佈發生變化,直至最後達到某種平衡或者與標準距離的誤差之和最小。這時我們就可以認為現在二維平面內各個粒子的距離和n維空間中各個向量的原始距離是相對一致的。

計算調整粒子分佈的過程是一個迭代過程。每次都在每一個粒子上計算在橫軸和縱軸兩個維度上與所有其他粒子相對作用力的合成,根據合成力計算出粒子新的位置。

Non-negative Matrix Factorization 非負矩陣分解

nmf,顧名思義,分解矩陣。M = B * H,已知M,給定B的秩,求B,H。B和H具體代表什麼要具體問題具體分析。

PCI給了兩個例子:文章類別發現和股市事件分析。

文章類別發現:有很多文章,我們可以構造一個文章和詞彙的矩陣,裡面的值是在一個文章中某個詞彙的出現次數。

我們假定這些文章屬於r個類別,這樣我們就可以用nmf來分解文章詞彙矩陣,得到B,文章和類別的權重矩陣,H,類別和詞彙的權重矩陣。

這樣我們就能夠通過觀察在某個類別中權重較大的文章所代表的實際內容來判斷這個類別的實際意義。而H矩陣則可以用來對其他新文章分類。

股市事件分析:這裡有個假設:當一個股市事件發生時,會對若干相關股票產生影響,而影響會反映在成交量的變化上。我們要做的是通過成交量資料來發現股票之間的相關性。

選取若干股票在一段時間內的日交易量資料構成一個股票和日期的成交量矩陣。

假定所選取股票存在r個類別,nmf分解矩陣,得到B,股票和類別的權重矩陣,H,類別和時期的權重矩陣。

這樣我們就會觀察到在某一天,某類股票曾經發生了某些事件導致了相關股票成交量的變化。通過結合實際情況,我們就可以發現股票之間和股市事件之間的關係。

轉載於:https://www.cnblogs.com/ysjxw/archive/2008/04/11/1148893.html

相關文章