2007/12/22

Clustering by k-means

應用在生物資訊的分群(clustering)的方法中,k-means演算法可以算是最普遍且簡單的趨近方法了,像是開放原始碼的資料探勘與機器學習的套件weka就有實作了簡單的k-means演算法,另外舉個顯而易見的例子,作微陣列分析(microarray analysis)時,通常就是使用k-means演算法來將基因作初步的分群。

k-means詳細的演算法如下:首先起始條件是輸入欲分類的資料n個樣本,以及需求的中心數c。便能起產生c個所需求中心數。接著將n指配給距離最近的中心,當全部的n都分完後,再重新計算各個中心,也就是取歸在該樣本群中的平均值,即為新的中心點,如此反覆做下去,直到滿足收斂條件為止。此外,樣本與分群中心的距離有相當多種的算法,最基本的作法就是計算歐幾里得度量(Euclidean distance)。

由上述的作法可以理解到k-means演算法是種Unsupervised learning的方法,他的作法簡單的說就是將資料集中的每個樣本分給離該樣本距離最近的中心(center or centroid),每個中心即為距離該中心最近的樣本的平均所組成,而且可以藉由改良衡量距離的函式就可以達到改善的效果。k-means有著簡單的計算與快速收斂的優點,但缺點是分群的中心相當易受起始點的影響,也就是通常只能尋找到區域的最佳解,但這點可以藉由引入模糊(fuzzy)的概念來加以改善。

參考文獻

K-means algorithm From Wikipedia, the free encyclopedia

Pattern Classification (2nd Edition) p562-p568

--

這是最近某個作業所寫的報告的一部份,主題是介紹k-means演算法並完成了一個實作k-means的C++程式,就將內文摘錄的一部份改修了一下並貼了上來,應該不會有人想要我的程式碼來看吧XD。

Amazing TAKARA: Q-SKY

TAKARATOMY雖然不是我常常消費的主力廠商(趕緊藏起背後的魔神英雄傳模型),但也是日本玩具製造商的老字號,之前的小型遙控車Q-STEER就讓我相當的驚艷,想買個幾台來玩玩小賽車,最近還有出附加整組跑道套件的QSRS05 GT-R(R34),但沒想到今天出門吃飯順便閑晃時,竟然看到這個Q-SKY!!

官網上的規格介紹說可以在室內飛行,迴轉半徑大概3M,可以自行起飛與著陸,充電30分可以飛5分鐘,是用紅外線控制。整台飛機的重量只有2.5克,大小為160mm * 650mm * 150mm。定價是日幣未稅4000日元。

另外TAKARATOMY之前還出了一個AERO SOARER看起來是更像是室內滑翔機的玩具。這邊有些Q-SKY的心得與AERO SOARER的比較。看起來是真的可以飛行也可以玩的很開心,AERO SOARER照他的說法比較像滑翔機。另外機身看起來是保麗龍做的,強度上有點消耗品的意味。(對日本人而言4000元比台灣人覺得的便宜吧)

結論:在這個時間點看到讓人覺得是相當適合聖誕禮物的玩具。

--

執著想寫太硬的東西果然容易難產XD