2007年3月28日 星期三

<03/28>這兩三個禮拜

實作了K-means、Sammon's、Fuzzy-C-means演算法,以及SVM未知詞合併的計畫。程式一個接一個寫的過程中,不知不覺熟悉的速度就會愈來愈快,也就愈來愈上手。在寫程式的過程中,因為會碰到問題,因此查API變成了例行公式,漸漸的,有些觀念也應用的比較熟練了,像是 garbage collection,以前總是覺得不需要,但是隨著程式所牽扯的資料量愈來愈大,做gc反而變成了很重要的一回事。
在SVM未知詞合併的計畫裡,目前是用training data訓練SVM,而在training data裡標示為要合併的未知詞組合,像是(婦、唱、夫、隨)這四個"詞"被判定為要合併,但不會將它加進原有辭典中,因為只是讓SVM學會,碰到這種例子的時候,SVM要判定為合併,目的是讓SVM學習;不過現在老師說要將testing data判定為要合併的未知詞組合,要把它加進舊有的辭典裡去。
我有一個疑問,是否要將training data判定要合併的這些未知詞組合也要加到辭典裡,還是只是為了讓SVM學習,不加進去,讓SVM以後再次遇到時,自行判斷合併與否。
這個疑問的兩種解答會造成辭典裡的index不同,畢竟婦唱夫隨這四個字是分開的時候,在辭典裡分屬四個不同的位置,所以餵給SVM的資料也要存四個不同的index;若是在training的過程中將這四個字合併並加入辭典,則這個新詞(四字合起來)只會有一個index,SVM對待它的方式也會大有不同(只會看成一個attribute)。

2007年3月18日 星期日

Lazy Associative Classification

這篇paper主要是介紹了一個新的associative classification的作法。一般來說,associative classifier會比decision tree classifier的準確率要來得高。因為decision tree classifier 是用greedy(local) search的方法,選出目前擁有最高information gain的attribute,加進tree裡面形成新的split node,對於此node的子樹來說,皆為該attribute與其他所剩下的attribute中,挑選擁有最高information gain的attribute來繼續splitting,直到所有的instance屬於同一個class或是此node已低於某特定的minimum support threshold等等。decision tree classifier的特點是快速且容易明瞭,缺點為local search的情況下容易忽略了important rules。association rule classifier可以解決此問題,透過global search的方式,可以產生large number of rules。但是該優點正也是缺點所在,產生了大規模的rule set,許多的rule在分類的過程中甚至幾乎沒有用到,整體效率不彰。
因此本篇作者提出了lazy associative classification的觀念,相比於一般的 (eager) associative classification,lazy associative classifier並不是對於所有的 training data皆產生了rule set,而是demand-driven basis,也就是只針對testing instance所擁有的feature去產生association rules,如此可以保證所產生的association rules一定至少跟testing data有若干關係,不至於發生在測試的過程中,只用到少數association rules的情形。
對於lazy associative classification,為了一開始就記錄test instance所包含的feature set,會用到比一般associative classification更多的workload,此問題在paper中也提到了可以用caching的方式解決。另一個問題是只針對test instance產生的association rule,代表的就是要犧牲部分的generalization和影響classification若干的accuracy。
最後實驗證實,lazy association classification可以降低10%的error rate,相比於一般的association classification;而若是跟decision tree classification相比,更可以減少近20%的error rate。



Proceedings of the Sixth International Conference on Data Mining 2006 (IEEE)