顯示具有 Data Mining 標籤的文章。 顯示所有文章
顯示具有 Data Mining 標籤的文章。 顯示所有文章

Data granularity 資料細微度

Data granularity指的是資料被細分的程度。比如說一個地址的資料,如果呈現方式是:
  • 地址:新竹縣寶山鄉XX街XX號
那它的Data granularity就很低。

相反的,如果呈現方式是:
  • 縣市:新竹縣
  • 鄉鎮市:寶山鄉
  • 街/路:XX街
  • 其他:XX號
那相對的就是HIgh granularity。


Top 10 Alternative Search Engine of 2008 (下)

這裡要介紹的是ReadWriteWeb所挑選出來2008具有代表性的Search Engines下集。(順序無關乎排名,按照字母排列)

【6】Mendar
Mendar是一個針對醫療領域所開發的搜尋引擎。針對不同的關鍵字,他會根據wiki、醫療資料庫、網站等等內容回傳相關的資訊。



【7】Quintura
Quintura是建立在Tag為基礎的搜尋引擎。一般的搜尋大概都是打入關鍵字,然後顯示搜尋結果,但Quintura利用雙維度的方式還來改善搜尋的結果。簡單來說,你一進到Quintura的畫面,除了一個常見的搜尋框外,還會看到左邊有許多的tag cloud。從下面這張圖可以看出兩著的差異:



當你打入一個關鍵字後,按下搜尋,Quintura會自動顯示和該關鍵字相關的tags,接著你再點相關的tag,就可以進行更精確的搜尋。


另外,你也可以自行增加或刪除相關及不相關的tags。

【8】SeeqPod
從字面上大概可以猜到這個搜尋引擎主要foucs在哪方面。沒錯,SeeqPod主要是針對影音方面做搜尋,尤其是在音樂上。另外,他針對Smart Phone做了很大幅度的支援,也就是你可以安裝該服務在你的smart phone上使用。



【9】Surf Canyon


Surf Canyon也是需要安裝一個套件到瀏覽器中,主要的功能是他會根據你所點選的連結來重新排序搜尋的結果。比如說你的搜尋結果有1000筆,假設你點了第八筆資料,Surf Canyon自動判斷第300筆資料可能也是你想要的,他就會把那一筆資料排在前面的位置。



另外,當你按了下一頁的按鈕時,他會把下一頁的結果直接呈現在該頁下方。

其實這種瀏覽方式就有點智慧搜尋的感覺,這和Google所強調的理念有些許的不同。因為Google的理念就是提供最強大的搜尋引擎,接著就把支配權給了你,在搜尋的過程中儘量不要干擾使用者。不過誰好誰壞還需要時間來做驗證。

【10】Taggalaxy.de
我必須說Taggalaxy.de是我測試到現在最炫的搜尋引擎。這是一個德國大學生所寫的一個project,事實上該名稱也很確實的反應了"德國(de)"和他的特色(Tag + galaxy)。Taggalaxy.de是針對flickr所寫的一個搜尋引擎,你打入關鍵字後,他會用類似銀河行星的方式來列出相關的tag,接著選擇相關的"星球"後,他就會利用flickr api來回傳搜尋的結果,顯示照片的方式也很炫,你會看到照片用"飛"的貼到該星球上。


點選某張圖片就會顯示出該圖片的詳細資訊,也可以直接連到flickr的原始頁面。


呼,寫完十個具有相當特色的Seach Engine之後,老實講很難說哪個會威脅到Google,人人有機會、個個沒把握,除了酷炫的外在之外,還必須要有非常強大的內裡才行。我想就算短時間內不會威脅到Google的霸業,在一家獨大的情況下,多點應用總是會讓老大哥產生警覺心,進而不斷改進自己的服務與技術(我猜如果其中有哪個做起來了,在還沒有壯大之前應該就會被Google買走),最後受惠的還是使用者吧!

Precision and Recall - Information Retrieval


在資訊檢索或資料探勘的領域中,一個最基本的問題就是要如何衡量一個系統的效能?這裡指的系統效能是說:當我們進行一個Query時,在一個檢索或搜尋系統中,到底回傳回來的結果,是不是使用者想要的?回傳的效率有多好?
這裡介紹兩個用來評估檢索結果的方法,叫做【查準率(Precision)】和【查全率(Recall)】


先來看看定義:
  • Precision = Relevant Documents Retrieved / Total Retrieved Documents
  • Recall = Relevant Documents Retrieved / Total Relevant Docuements
從上面的公式可以看出來,Precision和Recall的分子都是Relevant Document Retrieved(抓回來的相關文章數目),差別的地方在於Precision的分母是【抓回文章的總數】;而Recall的分母則是【相關文章的總數】。


舉個例子:假設現在資料庫中有10000筆資料,和美食有關的文章有500篇。使用者在輸入美食的關鍵字後,回傳的文章有4000篇,其中有400篇是和美食有關的。

Precision = 400 / 4000 = 10%
Recall = 400 / 500 = 80%

在這裡代表的意思就是,這個搜尋引擎的查準率是10%、查全率是80%。

繼續延伸下去,如果我們要做比較細部的分析,可以將以上的兩個比率畫分成下面的四個象限:


tp : 代表文章和此query有相關,而且系統判斷正確回傳。
fp : 代表文章和此query沒有相關,但是系統判斷錯誤卻被搜尋引擎回傳。
fn : 代表文章和此query有相關,但是系統判斷錯誤沒有回傳。
tn : 代表文章和此query沒有相關,而且系統判斷正確沒有回傳。

所以我們得出:
Precision = tp / tp+fp
Recall = tp / tp+fn

其實這和統計上的Type 1 error、Type 2 error 也有相關,不過在這裡就不再多說了...,有興趣的可以到Google找找,相信會有很多資訊的。

tf-idf (term frequency–inverse document frequency)

寫作業會用到,先把學到的記錄一下以免忘記...。

TF-IDF常被用在Data Mining相關的領域上,用來計算某個字詞在文章中的相對重要程度

字詞的重要性隨著它在文件中出現的次數成正比增加但同時會隨著出現在越多文章中而下降。這是很正確的想法,舉個例子來說:

假設我們要找的詞是:【演算法的範例】。正常來說,我們按照段詞切字的法則應該會把這個字串切割成三個短詞【演算法】【的】【範例】。

假設【演算法】在文章A中出現10次、【的】出現100次、【範例】出現30次,文章A總共有1000個詞,則三個短詞的TF(Trem Frequency)分別是0.01、0.1和0.03。

如果我們資料庫中總共有10000篇文章,【演算法】總共出現在15篇文章、【的】出現在10000篇文章、【應用】出現在5000篇文章,則IDF分別是:2.82、0、0.30。

用一般的想法來思考,【演算法】這個詞應該是我們最重要的搜尋詞、接著是【應用】,最不重要的是【的】。因為【的】實在是太常出現了,不可能有文章中沒有這個詞,所以從上面的計算結果可以看出其IDF是0,在計算TF-IDF的值時,即使他的TF再高,最後的結果都會變成0。【演算法】這個詞可能TF的值不是很高,但是可以利用IDF來提高它的權重,這也比較符合我們一般的思考結果。

參考資料:

【Wikipedia TF-IDF】
【數學之美 系列九 -- 如何確定網頁和查詢的相關性】