Saturday, November 20, 2010

Endnote FAQ [In-text Citation]


Inserting in-text citation of different styles into the same document is also one of my current problem when using bibliographic management program such as Zotero and Endnote.

Here is some discussion from Endnote's website. Instead of using manual editing you can use some techniques but not the perfect solution though.

http://community.thomsonreuters.com/t5/EndNote-How-To/Formatting-in-text-citation-brackets-paranthesis/m-p/7290

Thursday, October 7, 2010

A Web Site to Check the English Definition and Usage

http://www.wordreference.com/definition/

When doubted about the usage of words such as

as follows or as following
base on or based on
disability or disabled, etc.

Just type in the words and see the result in discussion forum.
There are many English experts there.

Wednesday, October 6, 2010

Table of mathematical symbols

This is useful source of information about mathematical notations or symbols reading and usage.

http://en.wikipedia.org/wiki/Table_of_mathematical_symbols

Sunday, September 12, 2010

Dr.Bowman's Web Site

A good source of information to build activity based travel demand model

http://jbowman.net/

Friday, September 10, 2010

เคล็ดลับการเซฟไฟล์ภาพจาก MATLAB ไปใช้กับโปรแกรมอื่นๆ

หากเราสร้าง Graph หรือ Figure ใน MATLAB แล้วต้องการเซฟไปใช้กับโปรแกรมอื่นๆให้ภาพออกมาสวยงามทำอย่างไร

ถ้าต้องการให้พิมพ์ (Hard copy) ออกมาสวยงาม ให้เลือก File > Save As แล้วเลือกเป็น EPS ไฟล์
จากนั้นหากต้องการนำไปใช้ใน Word ตัวโปรแกรม Word จะมีตัวเลือกให้ Import ตัว EPS ไฟล์เข้าไปได้

การแสดงผลบนหน้าจอจะไม่ค่อยชัดเจนมากนัก แต่ว่าเวลาพิมพ์ออกมาจะสวยสุดครับ

ข้อมูลเกี่ยวกับ EPS file format หาอ่านได้ใน internet ทั่วไป

Tuesday, September 7, 2010

Traffic Analysis Tools by FHWA

Source of information for traffic analysis tool and traffic simulation.
http://ops.fhwa.dot.gov/trafficanalysistools/

In particular, Volume IV is introduction to CORSIM.

Sunday, September 5, 2010

ปัญหา (เล็กน้อยๆ) ที่อาจเกิดขึ้นจากการทำ Cross Validation กับข้อมูลที่มี Categorical Variables

ถ้าทำ 10-fold Cross Validation มันอาจบังเิอิญได้ว่าตอนที่เราเลือก 90% data มาทำโมเดล แล้วไปทดสอบกับ 10% ที่เหลือนั้น

เจ้า 90% data ที่นำมาสร้างโมเดล หากตัว categorical variable ที่เรานำมาสร้างโมเดลนั้น มันไม่ครอบคลุมทั้งหมด

เช่น ถ้าตัวแปรเป็นสถานะภาพในครอบครัว เช่น ผู้อาศัย แต่ตอนทำโมเดล 90% ไม่มีข้อมูลที่เป็นผู้อาศัยเลย ดังนั้นเวลาเรานำไปทดสอบกับข้อมูล 10% ที่อาจมีข้อมูลที่มีสถานภาพเป็นผู้อาศัย มันก็อาจเกิดข้อผิดพลาดได้ (สำหรับ Classification Tree ใน MATLAB จะขึ้น Error แต่ถ้าเป็นโปรแกรมที่เขียนขึ้นเองอาจไม่ขึ้น error เพราะตัวโค๊ดอาจจะปัดให้เป็น Branch Not in Category เลยแต่ผลที่ได้อาจไม่น่าเชื่อถือ ถ้าจริงๆแล้วมันควรตกอีกด้านหนึ่ง แต่เราไม่ได้มี data ไปสร้างโมเดลให้มัน)

วิธีแก้ไขตอนนี้ยังคิดไม่ออกทั้งหมด แต่ว่าขึ้นกับการสุ่มตัว sample ถ้าสุ่มได้ครอบคลุมก็จะลดปัญหาไปได้ (แต่ในกรณีข้อมูลมีตัวแปร category เยอะ และมีค่าหลากหลาย อาจสุ่มได้ยากกว่า) แต่ถ้ามานั่งเลือกเอง data เยอะๆ คงจะเสียเวลาและ งงๆ อาจต้องอ่านงานวิจัยเพิ่มวิธีการสุ่มให้ครอบคลุม

อีกวิธีหนึ่งที่อาจลดปัญหาได้บ้าง คือการใช้ 5-fold cross classification แทน (80%/20%) มีความน่าจะเป็นที่ปัญหาจะลดลงได้ แต่ก็ไม่รับประกัน (ใน MATLAB ปกติจะเป็น 10-fold)

อีกวิธีที่คิดได้คือเลือกข้อมูลที่เป็น category ย่อย ที่มีจำนวน records น้อย ออกมาก่อนแล้ว assign ให้มันอยู่ในกลุ่ม 90% เสมอ ก็จะไม่เกิดกรณีเจอ unrecognized categorical variable ตอนทดสอบ (แต่ถ้าใช้ MATLAB ต้องทำแบบ manual เพราะโค๊ดมันคงไม่ทำให้ หรือไม่ก็ต้องไปแ้ก้ตัวโค๊ด)

วิธีสุดท้าย อาจไม่ใช้ v-fold cross validation เลย ถ้าคิดว่าข้อมูลเยอะพอ คือเลือกข้อมูลที่ครบถ้วน แล้วทดสอบทีเดียว

สุดท้ายนี้ปัญหานี้จะไม่เกิดขึ้นถ้าเป็น continuous variable เพราะโดยปกติจะแบ่ง Branch ซ้าย-ขวา โดยใช้เครื่องหมายเช่น น้อยกว่าหรือเท่ากับ และมากกว่า ซึ่งจะครอบคลุม Range ของข้อมูลทั้งหมดอยู่แล้ว แต่ก็ยังไม่ป้องกันปัญหาที่อาจจะเกิดจากการไม่ include หรือ neglect ตัวแปรบางตัวที่ไม่ได้มีอยู่ใน 90% data อยู่ดี

คิมครับ ลองเช็คดูว่าโค๊ด Python ของคิม ถ้าเจอกรณีนี้มันจะขึ้น Error หรือไม่อย่างไรครับ

Tuesday, August 31, 2010

วิธีง่ายๆในการแบ่ง Data ออกเป็น k ส่วน

สมมุติว่าเรามีข้อมูลเป็น record อยู่ทั้งหมดจำนวน n records
แล้วเราต้องการแบ่งข้อมูลนี้ออกเป็น k ส่วน

ตัวอย่างเช่น ถ้าเราต้องการทำ V-fold Cross-Validation เช่นต้องการแบ่งข้อมูลจำนวน 2000 ระเบียนออกเป็น 10 ส่วนโดยส่วนหนึ่งเอาไว้สร้าง model กับ อีกส่วนไว้ validate model เป็นต้น

ในกรณีนี้ n = 2000 และ k = 10 เป็นต้น

มีวิธีทำง่ายๆ ใน MATLAB ดังนี้
  1. สร้าง random number ขึ้นมา 2000 ตัวก่อน,   rand(2000,1)
  2. scale up มันด้วย k, rand(2000,1)*k
  3. ปัดตัวเลขขึ้นเป็น integer ถัดไป, ceil(rand(2000,1)*k)
สรุปคำสั่งที่ต้องใช้คือ

ceil(rand(n,1)*k)

ตัวอย่างการแบ่งข้อมูล 10 ระเบียนออกเป็น 3 กลุ่ม

>> ceil(rand(10,1)*3)

ans =

     2
     1
     1
     1
     3
     1
     3
     2
     3
     2


Note: แต่คิดไปคิดมา ถ้าไม่ต้องการ Random ละก็ ให้มัน mod ตัวเลข 1 ถึง n ก็จะได้เหมือนกันครับ
เช่น mod(1:10,3)+1 จะไ้ด้ผลลัพธ์ประมาณนี้ครับ


 2     3     1     2     3     1     2     3     1     2

Friday, May 21, 2010

Recommended Book: Statistical methods in bioinformatics

This book is recommended for studying about sequence, statistical methods in bioinformatics.

Statistical methods in bioinformatics
by Warren J. Ewens Gregory Grant



Thursday, May 20, 2010

หลักการเลือกจำนวน clusters ที่เหมาะสมสำหรับการทำ Clustering

ในการแบ่งกลุ่ม clusters นั้นบางครั้งเราอาจจะต้องกำหนดจำนวน clusters ที่เหมาะสม โดยเป็นค่า parameter หนึ่งของการคำนวณ
เช่นการทำ k-means clustering ต้องกำหนดจำนวนกลุ่มให้ algorithm ก่อน
ดูหลักการได้ใน
หลักการเลือกจำนวน clusters ที่เหมาะสมสำหรับการทำ clustering (wikipedia)

Note: ถ้าเอาไป apply กับ CART ก็อาจใช้กำหนดจำนวน node หรือ ระดับการ prune ที่เหมาะสมได้