組別:第二組
組員:許復凱 劉凱銘 許聆容
先說這題在做什麼:題目說,現在我們的code可以依照inbound links中的text做rank了。
可是有一種狀況是這樣的,就是我們有時候用關鍵字去搜尋,但是最符合的網站可能沒有你的關鍵字內容
這時候就會發生搜尋不到的情形,題目提到搜尋圖片就是典型的例子。
課本希望我們改善他的search code解決這個問題。
早在前幾次課堂中報告了這題,當時的作法是利用資料庫去另建table做處理,想得很複雜
之所以會想要從資料庫著手,最主要原因是當時沒有時間跑一次crawler把data建起來
現在重新著手這題,卻意外發現這題只要加個關鍵一行code就可以完成
道理很簡單,我在記錄這頁有什麼關鍵字的時候,偷偷把這些關鍵字也link給下一個page
找到這個function : addlinkref(self,urlFrom,urlTo,linkText)
最後 + self.con.execute("insert into linkwords(linkid,wordid) values (%d,%d)" % (toid,wordid))
OK!
(單純但是這樣做像是wordlocation那個資料表就會不完善了,不過是小問題~重點是可以搜到)
我在課堂報告也提出了一個機制,道理跟我現在弄得很像
不過我每個關鍵字都給他加上了權重,利用上方程式碼加上去的關鍵字權重都給0.3,一般關鍵字就是原來的1
這樣做不會影響到原本的演算法,在計算上只要在最後面加上取floor,也就是最後計算1.2則以1算,2.1以2算
物理上的意義就是,一個page接受的外部相同關鍵字大於4個才可以跟出現在那個page的關鍵字權重相當(4*0.3=1.2)
當然數值只是一個大概,沒有實際測量過,方法我倒覺得挺不錯
可是當我發現這個方法要加在程式裡面就好麻煩唷>"<
組別:第二組
組員:許復凱 劉凱銘 許聆容
這一章是利用比對交友的一些資料,來判定兩個人是否適合。所包含的資料欄位有兩人的一些基本資料,包含了地址,課本上的地址是利用Yahoo API去抓到經緯度的數值,再把全部的欄位數值轉成數值型態,再去做比對,把資料做scale到0和1之間再去計算。再利用SVM的演算法去做分類,課本上的SVM模組要安裝到Python25很麻煩,因為他是用svmc.pyd去代替dll檔,我把這個檔案丟到每一個可能存在的資料夾底下,最後才裝上去。
Kernel_type=LINEAR
Kernel_type=POLY
在Matchmaker Dataset分析當中,但是我卡在剖析XML的時候都會出現錯誤訊息
否則下面的指令應該可以正確的將對應的Kernel_type=POLY的最後結果跟Kernel_type=LINEAR兩個做對比
若是上面XML有剖析過的話,下面的指令應該為
answer,input=[r.match for r in scaledset],[r.data for r in scaledset]
param=svm_parameter(kernel_type=POLY)
prob=svm_problem(answers,inputs)
m=svm_model(prob,param)
呈現出最後的結果可以進行後面預測值的精確度
組別:第二組
組員:許復凱 劉凱銘 許聆容
在建立決策樹的時候最擔心的就是有miss data會影響到整個結果,最後所預測出來的值會變有問題,若欄位值屬於數值性的,則在分類資料會較快速,但是欄位值屬於連續數值(離散值),在決定樹的分支點必須考量到比較多的因素,一般最常做的是利用entropy去做分割點的計算,那是因為數值性的資料,離散值較常利用的是Gini的計算方式。
課本上利用探勘使用者對於網頁瀏覽的次數來預測使用者會成為網頁的哪一種消費者(None,Premium,Basic),大部分的欄位都是屬於兩三種類別,只有在Pages viewed是屬於離散值
同樣得資料上面是用weka以節點為Pages viewed當作root以J48所建立的樹,其他節點是以location作為分類終端節點
整個結果
Correctly Classified Instances 12 75 %
Incorrectly Classified Instances 4 25 %
Kappa statistic 0.6484
Mean absolute error 0.1705
Root mean squared error 0.292
Relative absolute error 47.0443 %
Root relative squared error 68.8266 %
Total Number of Instances 16
同樣得資料上面是用weka以節點為Pages viewed當作root以J48所建立的樹,其他節點是以location作為分類終端節點
Correctly Classified Instances 11 68.75 %
Incorrectly Classified Instances 5 31.25 %
Kappa statistic 0.596
Mean absolute error 0.1536
Root mean squared error 0.2771
Relative absolute error 48.8636 %
Root relative squared error 70.0543 %
Total Number of Instances 16
所以可以知道若是先以root為Pages viewed所得到的精確度會較高
這裡的root就是所謂的離散型資料,這裡的結果是以12作為分割節點的次數
課本上是要以commendline的方式,每一個","表示對應到不同欄位的值,在根據所建立的樹去找最後的結果
對於某些欄位會出現miss data,所以整的演算法同樣會去利用"None"去計算最後的結果
班級:碩職二 學號:496515225 姓名:劉凱銘
在這資訊爆炸的時代,科技的發展,讓人們改變了原本的生活方式,最明顯的便是現代人已離不開網際網路,在資訊充斥的網路,任何你想要找的資訊,只要透過搜尋引擎,輕輕的敲下你所想要尋找的資訊的關鍵字,那麼將會有一卡車的資料迅速的呈現在你的眼前;想交朋友,只要在交友網站上,輸入你的條件,立刻有一堆人可以任君選擇,還可以透過即時通軟體達到溝通及互動;想買東西,只要上購物網站,簡簡單單的下訂單,東西就寄到你面前。這一切一切,只要坐在電腦前就可以完成,這是多麼容易的一件事呀。
簡單的背後,卻也往往藏著不簡單,雖然網路上的資料很多,但絕大部分卻是不重要的資訊,而一部份更是屬於垃圾等級的,往往有價值的資料卻相對的稀少,就像書中提到的,搜尋到的資料,通常只會看前兩頁而已。所以,"可尋性"這觀念便在這時顯現其重要性了!書中提到許多的可尋性,關鍵字的可尋性、自然環境的可尋性、行為的可尋性、研究的可尋性、描述的可尋性‧‧‧等如何在某一時間點某個位置找到想找某一件事或物的可能性。一件事或物有了可尋性,就越能讓人發覺和了解它。但是每一件事物的可尋性有很大程度的不同。如何找出我們需要事物會依可尋性有難度上的差異。
定義資訊,何謂資訊?資料是資訊,資訊是知識,知識是資訊,資訊是資料。我們無法精確的定義出"資訊"的意義,可見這是一個多大的主題,資訊環繞在我們週遭,我們使用、建立資訊,但我們無法區分哪些是資訊,哪些不是!所以,研究資訊屬性和行為,過程包括了資訊的起緣、散播、收集、組織、儲存、檢索、解讀、和使用。
資料:被識別出來,但尚未被評價的符號,所形成的字串。
資訊:被評價過、證實過、或者有用的資料。
知識:在已理解情境中的資訊。
在這本書裡頭,它提供了我們許多搜尋的技術以及想法,在我們生活之中,有許許多多可以方便讓我們做搜尋的訊息和工具。而要如何有效利用這些搜尋的訊息和工具,來幫助搜尋,不論是知識的搜尋、位置的搜尋,所以"關鍵字"這對於搜尋來說便是相當的重要,'當我們下對了關鍵字,便可以在很短的時間內找到我們所需要的資訊,但若是下了不切確的關鍵字,可能反被埋沒在一堆對我們沒有幫助的資料裡頭,可以多多的去利用自己能理解的工具和訊息,能讓我們生活變得更加容易許多。
科技及網際網路的高度發展,真的是縮短了人和人之間的距離嗎?還是反而增加了人和人之間的距離呢?或許人在科技的幫助下,手機、即時通,聯絡可以更方便,更頻繁,但卻有往往的減少了見面的機會,就算是附近短短的幾步路而已,但就是不願意見面、溝通!在科技的高度發展下,人漸漸的變的沒有隱私,去了哪些地方,透過GPS一目瞭然,全在某人的掌握中!這是福是禍呢,我想還是端看利用的人吧!
班級:碩職二 學號:496515225 姓名:劉凱銘
在本書中提到了,網際網路的發展有兩個階段:Web 1.0與Web2.0。在這兩個階段中,網路都是個讓人們得以把資料變成財富的豐沃市場。但在網路公司蓬勃發展的期間,Web 1.0的贏家靠的是壟斷資訊來提高他們的存在價值,而在Web 2.0則與此相反,他們相信資訊唯有愈多人使用,才會愈有價值。例如,將新軟體的程式碼公開,然後任由他人改變程式或為程式增添新料,深信其他人也會為所有使用者貢獻一己想法並改善程式。藉由這樣的「放手」,程式有了這些自願開發者的驗證,反而讓原本的擁有者可以節省成本、開發出更好的產品,進而吸引更多消費者,這便是神奇之處了,像是作業系統-Linux以及網路瀏覽器-火狐,便是一個很好的實例了。
網際網路的誕生衝擊了也改變了我們的生活,似乎在生活中的吃喝玩樂樣樣都可以透過網路來找到自己所需要的資訊,透過大家的資訊分享,達到了資訊共享的目的,這就是群體智慧,也是這本書所要闡述的一個很重要的想法。由於每一個人,會因為各自的生活背景不同,而對於每一人、事、物會有不同的感受,所以也產生了不同的看法以及想法,思考的模式也因為這樣而呈現更多元化,所以,當只有一個人時看的事情就只有一面,想法也會很簡單;但當有一群人時,大家針對一件事來討論,並提供意見時,你會發現透過這樣的方式,你可以獲得更多更棒更難以想像的想法及創意。而社交網路則提供了這樣的平台,讓更多人可以提出自己的想法及意見來。
水能載舟,亦能覆舟,雖然以維基經濟式的社群往往能夠把現實世界的工作做得比個體更快、更好、更便宜。但建立成功的社群絕非是件容易的事,這和企業從用人道行銷的各個層面是一樣的,高報酬都伴隨著高風險。進入了Web 2.0的時代後,這樣的事實更加的明顯,看似微不足道的小錯誤,可能會以迅雷不及眼耳的速度,像雪球般越滾越大,而演變致命性的災難。
組員: 張啓宏 王祥宇 王俊傑(第六組)
1.
在網站http://www.csie.ntu.edu.tw/~cjlin/libsvm/#python 描述共有四種可以使用的kernal:linear、polynomial、radial basis function、sigmoid
2.
在網站http://www.csie.ntu.edu.tw/~cjlin/libsvm/#python 中 有現成的工具可以使用,試著使用如下
kernel為linear時執行結果如下
kernel為polynomial時執行結果如下
可以發現,polynomial並無增進quality,反而比linear差
如果以python程式來跑,則根據程式內容而知,只需在下述指令
param = svm_parameter(kernel_type = LINEAR, C = 10)
改成
param = svm_parameter(kernel_type = POLY, C = 10)
即可由linear kernel改成polynomial kernel
組別:第二組
組員:許復凱 劉凱銘 許聆容
Exercise.8-7
Search attributes. The eBay API has a lot of functionality that was not covered in this chapter. The GetSearchResults call has many options, including the ability to restrict searches to certain attributes. Modify the function to support this and try finding only Core Duo laptops.
Exercise.8-7是要我們使用eBay所提供的API來搜尋attribute為Core Duo laptops的物品!
首先,我們先一課本上的說明到http://developer.ebay.com/quickstartguide註冊帳號,並取得三組KEY分別為:Developer Key、Application Key and Certificate Key,
而在取得這三組Key後,接著便是要申請User Token!特別注意到,要申請User Token前,必須在eBay(http://www.ebay.com)上有個實質的帳號,這樣才能夠將兩邊的帳號連結起來,產生一組User Token!所以我們在取得User Token後,便可以連同剛剛的三組Key一併填入doSearch.py內!
當我們作到ebaypredict.getItem時,發現attribute內並沒有屬於Core Duo laptop,所以我們就利用ebaypredict.getCategory來做篩選!首先取得了最大類別的名稱及代碼,然後再往下看有關於Laptop的種類及代碼,然後緊接著再每一個種類內來搜尋



所以我們利用各個種類來搜尋,是可以得到我們所需要的!
碩職二 李耀軒
這又是一本非常概念的書。
俗話說三個臭皮匠勝過一個諸葛亮,事實上,群體智慧的成效不僅要勝過一個諸葛亮,而是要遠超過多個諸葛亮,達到一加一大於一的效果;我們遠比一個我還要來得聰明許多。
的一個章節是「我們」能做什麼?群眾外包是一個非常Smart的方式,像Linux作業系統開放程式原始碼給廣大群眾修改成自己要的模式而達到使作業系統穩定的方式,或者像維基百科的「共同創作」完成群體的”智慧”
第一組
謝佳成 周軒逸 賴韋廷
修改CH4 去分類資料的大小,這次修改課nn.db的參數去分類及比較數值的大小來呈現運算的成果。
db中的參數去分類及比較數值資料的大小來呈現運算的成果。
組員: 岑志豪 任祥偉 李耀軒(第三組)
習題6-6的題目要求我們要利用一些其他的虛擬特性實做出文件的分類,以更細致的分類文章。
我們擷取了課本所提供的feed檔案做為來源檔,分析feed的內容,並加以分類。
而我們依據以下兩種特性來分類feed的文件,並做了二個實驗。
1.全文中英文大寫字的比例
2.title字數與summary字數的比例
實驗1:使用課本上的範例程式。在分析feed summary時將大寫字數較多的文件加上UPPERCASE屬性。
在資料讀取時,我們利用該UPPERCASE屬性分類文件,將有UPPERCASE的文件分為一類。
我們修改了讀取程式,在程式中加上:
t=entryfeatures(entry)
if t['UPPERCASE'] == 1:
當該feed summary滿足條件,才會加入資料庫,若不滿足,則不加入。
執行結果如下:
我們在執行結果中發現來源的feed summary中,沒有文件符合UPPERCASE的條件,因此結果為0。
實驗2:我們將summery的字數除以title的字數,當summary的字數比title多3倍時,得到一個PARTICULAR_SUMMARY屬性。
這個屬性的意義主要在分類出summary的內容是否詳細,若summary小於title 3倍的話,我們認為此feed的summary並不完整。
程式說明:
在entryfeatures中增加 if len(summarywords)/len(titlewords)>3: f['PARTICULAR_SUMMARY']=1
及修改read中
t=entryfeatures(entry)
if t['PARTICULAR_SUMMARY'] == 1:
當該feed summary滿足條件,才會加入資料庫,若不滿足,則不加入。
執行結果如下:
比較未分類執行結果:

我們發現執行出的結果有所變化,代表某些文件已被此條件過濾掉了。
心得:在這次的實驗之中,我們曾考慮將判斷條件放在其他地方,但是會變成無法將feed的屬性與內容連結起來。
所以還是放在讀取的程式中。另外可以用來分類文件的屬性,我想較常見的就是以文章的字數多寡來分類。