2008年6月16日

How to use weka to predict new data

有人問我怎麼用Weka預測東西
因為網路上的資料大部分都很制式
都只帶著你讀入一堆有label的資料
然後告訴你run某個classifier來"預測"的話 可以得到多少正確性
用來學習了解data mining玩玩看是不錯啦
不過總是沒辦法拿來真的預測新的data

所以我隨便亂寫個note 到時候好按表操課

下面的例子test.csv為已知data with labels.
pred.csv假裝為未知data
因為實際應用通常data會很大 爲了可以丟到server上去跑
下面的例子我用command line操作weka
我隨便寫寫 你們隨便看看 不附customer support
======================

I made a test.csv file as follow

id value cat
1 1 a
2 2 a
3 3 b
4 4 b
5 5 c
6 6 c

and load into weka and save as test.arff, I got

@relation test

@attribute id numeric
@attribute value numeric
@attribute cat {a,b,c}

@data

1,1,a
2,2,a
3,3,b
4,4,b
5,5,c
6,6,c


then, I use following command to get the result:

java -cp weka.jar weka.classifiers.trees.J48 -t test.arff -d j48.model -x 3

next step, we'll do prediction
try to do the same thing as test.arff,
but this time since you don't have the label, you put what ever label (but have to be valid, for this example, {a,b,c})
for me, I make a pred.csv as follow

id value cat
1 1 a
2 2 a
3 3 a
4 4 a
5 5 a
6 6 a

and make the arff file using weka.
I got following lines in pred.arff:
@relation pred

@attribute id numeric
@attribute value numeric
@attribute cat {a,b,c}

@data

1,1,a
2,2,a
3,3,a
4,4,a
5,5,a
6,6,a


this file will have wrong prediction, since weka will think "cat" can only be "a"
(as you can see in the arff file: "@attribute cat {a}" )
change it to "@attribute cat {a,b,c}"

then you can run
java -cp weka.jar weka.classifiers.trees.J48 -T pred.arff" -l j48.model -p 0

and you'll get output like:
0 a 1.0 a
1 a 1.0 a
2 b 1.0 a
3 b 1.0 a
4 c 1.0 a
5 c 1.0 a

it means, it predict first instance as a with confidence 1.0 while you stats it's "a". But remember, the "a" you stat here is just a dummy one.

But as you can see, you got the prediction as second column, confidence in third column.

2008年3月20日

用Google API 做一個 小叮噹的翻譯糕

Google 推出了翻譯用的API

http://code.google.com/apis/ajaxlanguage/documentation/


用上面的API 很方便就可以寫出小叮噹的翻譯蒟蒻 電腦版

小叮噹的翻譯年糕呢 吃下去後 什麼語言都聽得懂

用Google Language API來寫的話 其實就是先偵測輸入的是哪一種語言

然後就呼叫Google來翻譯那一種語言成你的語言

比如你在網站上看到一個不懂的語言 不知道她在說啥

這時候 剪貼到我的翻譯糕網站 我的網站就會告訴你她是什麼語言 並且幫你翻譯成英文 (中文也可以啦 不過現在Google翻譯對英文的支援比較好)
目前支援 阿拉伯文 中文 德文 荷蘭文 希臘文 義大利文 日文 韓文 葡萄牙文 俄文 西班牙文


following code translate any languages in Arabic Chinese Dutch German Greek Italian Japanese Korean Portuguese Russian Spanish
to english

<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
</head>
<body>
<div id="main">
<form class="query-box" onsubmit="return submitChange();">
<input class="query-input" id="source" type="text"
autocomplete="off" size="15" value="我是天才"/>
<input class="button" type="submit" value="Detect Language"/>
</form>
</div>

<div id="translation"></div>
<hr/>
<div id="results">
<div id="results_title">I guess the language is </div>
<div id="results_body"></div>
</div>

<!--- This demo is written by markchiang.no-ip.com --->
<script type="text/javascript">
google.load("language", "1");
google.setOnLoadCallback(submitChange);

function submitChange() {
var value = document.getElementById('source').value;
google.language.detect(value, detectResult);
return false;
}

function detectResult(result) {
if (!result.error && result.language) {
var value = document.getElementById('source').value;

google.language.translate(value , result.language, "en",
function(result) {
var translated = document.getElementById("translation");
if (result.translation) {
translated.innerHTML = result.translation;
}
});
}

var resultBody = document.getElementById("results_body");
if (result.language) {
var language = '';
for (l in google.language.Languages) {
if (google.language.Languages[l] == result.language) {
language = l;
break;
}
}
var html = language +
(result.isReliable?' ( reliable':' ( not reliable') +
' : ' + result.confidence + ')';
resultBody.innerHTML = html;
} else {
resultBody.innerHTML = '<span >Error Detecting</span>';
}
}

</script>

</body>
</html>



網路上有人用這個API寫了個學單字用的玩具

small language learner game here

2008年3月6日

免費讓你的Google Calendar與Outlook行事曆同步

Google今天宣布了她們的新軟體 Google Calendar Sync

可以讓你把你的Google Calendar跟你的Microsoft Outlook行事曆同步

可單方向同步 也可以雙方向同步

只需要到這裡下載這個軟體







如果你要跟手機sync的話 而你的手機又不支援跟 Microsoft outlook sync的話, 可以試試看這一個.

用Google Calendar免費傳SMS短訊




常常會忘掉這件事(Google Calendar一年前出的功能)...寫下來
(如果你還不知道怎麼用Google Calendar傳短訊 請看這個網站上的中文教學)
理論上應該可以用Google的API把要傳的東西傳上一個專門用來SMS的Calendar, 然後你就可以免費傳SMS了
改天有空再來研究看看

2008年2月19日

Google遠端線上簡報功能


Google Presentation's online presentation feature
Share document with an audient (id by email address),
Share the URL to that audient, that audient use that url to see the presentation online.
Now, you click on take control for that presentation, when you turn next page, they will see the change on real time.
But you need skype for voip conference.

喔 抱歉 最近有些東西在辦公室寫 用的是洋文
回來補點中文好了

最近因為常常要做越洋meeting 雖然辦公室大部分用WebEx 但是我還是玩玩看Google的Presentation.
想說要是自己需要用的話 就有免費的了
Google的Presentation主要功能是像powerpoint一樣

特點是:除了可以線上製作簡報, embed到你的網頁上外,
還可以遠端即時對多人做線上簡報喔!
只要給對方一個URL, 對方連上去後,你就可以開始做簡報
你翻頁 對方的畫面也會跟著翻面
別人如果想控制的話 也行
你先按說准許其他人主導簡報 然後對方按下take control按鈕
對方就可以翻頁了 所有人都會看到他翻頁

但是 目前Google Presentation 只有簡報畫面
聲音部分還是得透過Skype或越洋電話進行多人對談
特點是:除了可以線上製作簡報外 還可以遠端即時對多人做線上簡報
只要給對方一個URL, 對方連上去後,你就可以開始做簡報
你翻頁 對方的畫面也會跟著翻面
別人如果想控制的話 也行
你先按說准許其他人主導簡報 然後對方按下take control按鈕
對方就可以翻頁了 所有人都會看到他翻頁

但是 目前Google Presentation 只有簡報畫面
聲音部分還是得透過Skype或越洋電話進行多人對談

聽說最近還有一套Yakkle不但有桌面分享、檔案分享、VOIP等功能 而且還免費
不過我是還沒用過Yakkle啦 因為我還是不太喜歡那種要裝程式的(雖然很小)
Google Presentation啥都不必裝啦,連上去就能用了 超讚吧?!

2008年2月17日

拿手機當無線webcam使用



目前大部分的手機都有webcam在上面 也有網路可以使用

WebCamera Plus 2.0
這個軟體讓你把手機上webcam照到的畫面傳到電腦上 模擬成電腦上的一個webcam
可讓你的手機當無線webcam以及無線麥克風使用
可接skype, msn等視訊軟體(對你的電腦來說 就是多裝了一台webcam 和一個麥克風)
功能上還蠻不錯的 使用上也很方便 可透過USB, WIFI, 3G等你手機支援的方式連線

附註:我本來是想要把我的手機放去演講廳 這樣我人不用在現場也可以聽到演講
雖然有點怕手機被偷 不過還好我們中心應該不太會掉東西

請想用手機去聽課的學生們 記得先幫你的手機保個險!!!

2008年2月16日

Blogger新功能!(定時貼文功能)

Google 的 Blogger 快要出新功能了
以後使用者可以告訴blogger什麼時候把你的文章貼出去
這樣就算你出遠門玩 你也可以先把後面幾天的文章寫好

或者 你也可以挑個比較多人上線的時候 自動貼出去 這樣看到的人就會比較多

2008年2月5日

如何照出超現實照片(教學)


上面這張照片(點圖看大圖)是前兩天傍晚我在我家前面照的
主要是去測試我的相機自動包圍曝光功能 與HDR軟體
通常 這兩種東西和在一起 就可以讓你得到一張像這種超現實(像假的一樣)的照片

原理是高反差的景 你用不同的曝光紀錄下來(亮的部分用低曝光量 暗的部分用高曝光量)
然後回家用軟體把這些資訊綜合到一張照片上
通常的相機 都很難處理高反差的景 使得很難用相機記錄下眼睛所感覺到的
而這篇 就是教你怎麼照出這種照片

下面就是簡單的步驟說明

需求
1. 有自動包圍曝光功能的相機 (或可以調EV的相機)
2. Photomatix Pro軟體 (或Photoshop CS3)
3. 高反差的景 (很多人在夕陽下照包含雲彩的大景 效果聽說不錯)

步驟
1. 用EV+0, EV+2, EV-2 對著你喜愛的高反差的景各照一張照片 (你會得到一張正常的亮度, 一張比較亮, 一張比較暗) 盡量保持三張照的角度一致 (手盡量不要晃, 或者放在固定的東西上照, 如腳架等)
2.
回家拿出你不知道從哪裡弄來的軟體 把這三張照片餵給他
2.1 Photomatix:
選單-HDR-Generate-Browse, 選那三張照片, 按OK, 按OK. (這時候你會得到一張看起來想吐的照片 這是正常的)
選單-HDR-Tone Mapping (這時候你會看到一張比較正常的)
然後左邊拉霸隨便拉來拉去 就會有各種效果了
拉爽了後 按OK 選File-Save As 給個檔名存檔 就完工了

2.2 Photoshop CS3:
選單-File-Automate-Merge to HDR-Browse 選那三張照片 按OK
螢幕上一陣亂閃亂跳後 你會得到一張噁心的照片 這是正常的 按OK (這時候你會回到Photoshop平常的操作畫面)
選單-Image-Mode-8bit Channel(這時跳出一個視窗)
Method選Local Adaptation然後下面那兩個拉霸拉來拉去 直到你覺得你的圖夠讚了 按OK.
之後存檔就像平常Photoshop裡面存檔一樣

感想 個人感覺Photomatix在這個任務上比較直覺且方便調整
Photoshop當然 功能強大啦 不過不知道為什麼 我用Photoshop處理這些merge的工作都會很吃記憶體 然後掛掉
唉 套句朋友的話 我都快要窮到被鬼抓走了...換電腦? 算了~我再撐一陣子吧...

你也跟我一樣窮?沒相機?
到這個網站看看照片過過癮吧
http://www.hdrwalls.com/

2008年2月3日

用手機當Wifi Router

WMWifiRouter
 
高手可直接尋找下載使用

普通使用者可參考下面這兩個
中文安裝及使用教學1
中文安裝及使用教學2

此軟體 執行於你的PDA上 就可以把你的PDA當無線router, 讓別人透過無線網路 連到你的手機上網路.
應用範例: 
1. 你帶著notebook, 在路上, 想上網查東西
2. 朋友們在路上想上網, 這時候你說你的手機可以讓她上網, 絶對當場成為眾人焦點, 大家圍繞在你身邊(or 圍繞你手機?)

2008年1月23日

把你的Blog變成手機版

現在越來越多人花在手機上的時間越來越長
當然用手機看部落格的機會也變多了
你的部落格準備好迎接這個趨勢了嗎?

提供個適合在手機上看的版本會花很多時間嗎?你問到...
嗯 兩秒吧...我回答

U:包含去掉繁雜的格式 變成簡簡單單的文字?
M:當然!
U:那圖片縮小ㄌㄟ?要自己弄嗎?
M:不想理你...兩秒罷了 你自己去看看吧!

只要把你的rss網址加在http://www.google.com/reader/m/view/feed/後面就行了
像這樣:
http://www.google.com/reader/m/view/feed/http://markchiang.blogspot.com/atom.xml

2008年1月20日

DIY 360度環場影片

前幾天看到一個網站 http://redbullartbeat.com/
他們把環場360度拍下來製作成影片 一個互動式的360度影片
當影片開始播放後 使用者可以控制要看哪一個方向 同一個時間360度的景物都在變化

怎麼做呢?英文讚的可以直接看他們的網站說明
http://redbullartbeat.com/about360.html

簡單來說 分成兩部分, 1. 怎麼拍360度的照片呢? 2. 怎麼弄成影片呢?
拍360度照片的部分 基本上就是先用相機拍圓形鏡面的球體 得到周圍的反光 然後用Photoshop轉回360度環場照片
也就是把下面這張

轉成這張


接下來 就是把照的照片 接成影片 這部分他們是用After Effects把照片接成影片 然後用Quick Time弄成可讓使用者轉360度的quick time影片.

上面是軟體的部分, 至於硬體的部分
主要得有個圓形反光球體 通常美國過聖誕節的時候 聖誕樹上拔幾個就有了
有人是拿個鐵絲 把那個球綁在照相機鏡頭前面
如果你品質要求高一點的 下面兩張照片會給你些idea



iPhone的Wifi定位功能


前幾天 skyhook email跟我說他們跟iPhone合作了
我就把iPhone update了一下
主要是測試wifi定位功能 以及抖抖狗桌面(抖來抖去的icon)
測試的結果覺得他們(skyhook)的資料配合iPhone的介面
用起來果然不是普通的爽 按下去到定位完成大概兩秒吧
室內定位果然是得用wifi才是王道啊 (室內定位接下來不知道會不會用RFID定位?)
(GPS得在室外, Cell ID定位大概誤差到1公里吧, wifi大約三十公尺)
另外順便測了Windows Mobile上面的Navizon
結合了三種測法(GPS, Cell ID, Wifi) 準確度還不錯 也把我之前想做的一些功能做進去了
不過 缺點是 沒有iPhone用起來爽

不過 我還是不會因為這個原因 改帶iPhone出門

2008年1月11日

算命的科學

ref:
http://www.richyli.com/blog/2008/01/blog-post_10.html
前幾天在上面兩個網站看到下面這些資料




突然想到我做到一半的科學算命project
看看有沒有機會用CDC的資料來玩些更詳細的統計資料
至少得知道一下就統計來說(t-test, anova, etc) 上面的統計資料到底有沒有統計上的意義...(statistically significant)

2007年12月26日

Draw graphs for sequence analysis



use Bio::Graphics to Draw alignment graph

Book Title:"Beautiful Code" ISBN-13: 978-0-59-651004-6
on Safari Books Online

Figure 12-1. A sample image generated by Bio::Graphics
Figure 12-4. Clever use of Bio::Graphics callbacks allows related features on two chromosomes to be compared

2007年12月21日

真實世界裡的獨眼怪獸

前陣子聽某人的畢業專題的時候 他的專題研究的內容提到Signalome-Transfactome Networks, 查了一下什麼是Signalome-Transfactome Networks, 結果發現 真實世界裡真的有獨眼怪獸(獨眼羊), 沒時間寫成一篇blog,下面是一些相關資料

Kai Wang's Thesis defense: A Systems Biology Approach For Dissecting Mammalian Cellular Networks
focus on Signalome-Transfactome Networks

http://www.icsb-2007.org/proceedings/abstracts/F24.pdf



or people called "Signal Transduction Pathways"




當細胞接受到訊息後,往往會引發胞內一連串反應使得細胞對此訊息做出回應,這些反應途徑被稱為signal transduction pathway,pathway上每一點都可以受到調控,訊號也可經過每一點被放大(但非所有訊號都會被放大),pathway之間有許多branch可以互相溝通,形成一個錯綜複雜的網路。著名的signal transduction pathway有receptor tyrosine kinase (RTK) pathway、Smad pathway、JAK-STAT pathway、Wnt pathway、Hedgehog pathway等,當訊息或是其receptor突變或是無法合成時,就會造成表現性狀異常,上圖的獨眼羊的母親因為吃了jervine alkoloid/corn lilly這種植物,抑制了膽固醇的合成,使Hedgehog不能被合成,進而使Hedgehog pathway調控的某一個特殊的基因被turn off,造成它的子代雙眼融合成單眼,並且缺乏腦下線。[ http://www.dls.ym.edu.tw/lesson3/devebio3.htm]



Other references:
http://www.learner.org/channel/courses/biology/archive/images/1717.html
http://www.tccf.org.tw/magazine/vol6/11.htm

2007年11月24日

在手機上用opera瀏覽器


測試了operamini
http://www.operamini.com/features/
幾乎支援 java 的手機都可以瀏覽網頁了
連你那爛爛的手機都可以看整頁的網頁喔!

不過既然我的手機是Windows Mobile的OS 我順便也
測試了 opera mobile 8.65
http://www.opera.com/products/mobile/products/winmobile/
試用版破解法: 把viger.dat改成read only, 試用版就不會過期了



下面是東玩西玩的時候
在Windows Mobile上碰到的問題以及解決方法 (不限定於上面軟體)

  • 幫『英文版』Windows Mobile弄上中文字形 不用花錢裝中文系統即可看中文
    Windows Mobile 6.0 之後有超簡便方法
  • java launch 壞掉是因為語系
    症狀:
    選了要跑的Java midlet, 按launch, 看到畫面上有個小人在跑
    可是一閃而過 沒有任何錯誤訊息 就跳掉了
    解決方式:把語系調回English就行了

  • sync problem 是因為要先關掉wifi
    症狀:
    插上PDA後 ActiveSync跳出來 準備sync
    可是connect半天都connect不上
    解決方式:
    先關掉PDA上的WiFi連線 才連接USB 就行了
感想:雖然opera瀏覽器也有類似 iPhone Safari的放大縮小功能以及直接拖拉畫面功能
但是奇蒙子還是差一大節

不過 整體來說(考慮其他功能如導航、語音控制、擴充性、軟體、功能) 我還是喜歡我的 At&T Tilt

2007年11月19日

Outlook Express 的 2GB 限制

今天有朋友問我 說他的信箱爆掉了打不開
我本來以為他是要說server那邊被灌爆了
結果才知道他是說Outlook Express這邊被灌爆了

我查了一下
Outlook Express因為用dbx在儲存信件
所以每個Folder有2GB的限制

解決方式:
請選outlook express功能表上的[工具->選項->維護->郵件檔資料夾],
來得知郵件檔資料夾位於檔案系統的位置. 知道郵件檔資料夾位置後,
使用檔案總管來看看它所列出的目錄下的檔案是不是有將近2GB大小的檔案,
(如果您找不到該目錄與檔案,請勾選檔案總管中的
[工具->資料夾選項->檢視->顯示所有檔案與資料夾])
如果有將近2GB大小的檔案,請於outlook express建立新的信件匣,
將部份信件由新信匣搬移到新建的信件匣,再收信即可.

如果太嚴重 上面那個解決方式沒有效的話
可能就得買一套叫 OE-Mail Recovery 的軟體 (約三十元美金)
大部分的人的反應是 信箱超過2GB壞掉後 用這套可救回大部分的email

要不然Microsoft有個免費版的可以用 但是救回的email比較少 (最近的會救不回來)

PS: 如果你知道你的朋友們有人信件量很大的話 記得趕快通知您的朋友們這件消息喔!
每個人通常都是因為覺得信件很重要 而捨不得刪除 反而整個毀了

2007年11月17日

用Google報氣象



最近電視報新聞有要用到地圖的時候 很多都已經用Google Map在做了
再過不久 應該連報氣象也會改成用Google了

想先試試?簡單!先確定你裝了Google Earth,然後按下面兩個 link
動態衛星雲圖 動態雷達圖

不過 你可能會問 已經有這個和這個了
這個新的有什麼功能呢?
答案是 有動態play功能 記得按右上角的play按鈕 就會看到『動態』衛星雲圖和雷達圖了

2007年11月11日

肚痛帖

我想 大家都聽過這個滿肚子大便的人寫的草書

忽肚痛不可堪/不知是冷熱所/致欲服大黃湯/冷熱俱有益
张旭草书《肚痛帖》
此碑目前應於長安碑林

2007年11月8日

投資 用 免費 工具

用google查美元兌台幣走勢圖
http://finance.google.com/finance?q=usdtwd

美國油價及原油價格走勢圖
http://66.70.86.64/ch.gaschart?Country=Canada&Crude=t&Period=72&Areas=USA%20Average,,&Unit=US%20$/G
http://www.gasbuddy.com/gb_retail_price_chart.aspx?time=72

國際金價走勢圖
http://www.galmarley.com/ChartApp/Images/USD_Line_1year_300x150.gif

股市buy sell signal
http://quotes.barchart.com/texpert.asp?sym=goog

fund:
TEQUX
FFSCX