[บทความนี้เป็นเนื้อหาบางส่วนจากหลักสูตรอบรม Practical Data Mining with RapidMiner Studio 9]
หลังจากที่ท่านผู้อ่านได้ทำความรู้จักกับเทคนิคการวิเคราะห์ข้อมูลด้วยดาต้า ไมน์นิงแบบต่างๆ ไปแล้ว ในบทความนี้ผมจะแนะนำกระบวนการวิเคราะห์ข้อมูลมาตรฐานซึ่งเป็นเหมือน blueprint ที่ใช้กันอย่างกว้างขวาง เช่นเดียวกันกับกระบวนการ ISO ในโรงงานอุตสาหกรรม หรือกระบวนการ CMMI ซึ่งเป็นมาตรฐานในการพัฒนาซอฟต์แวร์ กระบวนการมาตรฐานในการวิเคราะห์ข้อมูลด้านดาต้า ไมน์นิงนี้ พัฒนาขึ้นในปี ค.ศ. 1996 โดยความร่วมมือกันของ 3 บริษัท คือ DaimlerChrysler SPSS และNCR กระบวนการทำงานนี้เรียกว่า “Cross-Industry Standard Process for Data Mining” หรือเรียกย่อ ว่า “CRISP-DM” [1]
โดยในกระบวนการ CRISP-DM นี้จะประกอบด้วย 6 ขั้นตอนดังในรูปด้านล่างครับ แต่ละขั้นตอนในรูปจะเป็นขั้นตอนที่ต่อเนื่องกันนั่นคือขั้นตอนถัดไปจะรอผลลัพธ์จากขั้นตอนก่อนหน้าซึ่งแสดงด้วยลูกศรที่เชื่อมระหว่างกล่องสี่เหลี่ยมแต่ละกล่อง ตัวอย่างเช่นเมื่อได้ผลลัพธ์จากขั้นตอนการเตรียมข้อมูล (Data Preparation) แล้วจะนำไปสร้างโมเดลจำแนกประเภทข้อมูลในขั้น Modeling และหลังจากนั้นอาจจะย้อนกลับมาเปลี่ยนแปลงข้อมูลให้ถูกต้องมากขึ้นเพื่อหวังว่าจะโมเดลที่ให้ความถูกต้องมากขึ้นก็ได้ เป็นต้น
image source: https://en.wikipedia.org/wiki/Cross_Industry_Standard_Process_for_Data_Mining
ขั้นตอนในกระบวนการ CRISP-DM มีดังนี้
(1) Business Understanding
เป็นขั้นตอนแรกในกระบวนการ CRISP-DM ซึ่งเน้นไปที่การเข้าใจปัญหาและแปลงปัญหาที่ได้ให้อยู่ในรูปโจทย์ของการวิเคราะห์ข้อมูลทางดาต้า ไมน์นิงพร้อมทั้งวางแผนในการดำเนินการคร่าวๆ ตัวอย่างการนำเทคนิคดาต้า ไมน์นิ่งไปใช้ในการวิเคราะห์ดัานต่างๆ มีดังนี้ครับ
- การใช้เทคนิคดาต้า ไมน์นิงเพื่อพัฒนาคุณภาพการศึกษาคณะวิศวกรรมศาสตร์ [2]
- การประยุกต์ใช้โครงข่ายประสาทเทียมโดยใช้ตัวชี้วัดทางเทคนิค เพื่อการลงทุนในตลาดหลักทรัพย์แห่งประเทศไทย [3]
- ระบบจําแนกและค้นคืนข้อมูลเว็บกระทู้ข่าว ด้วยโครงข่ายประสาทเทียมเปอร์เซ็ปตรอนแบบหลายชั้น [4]
- การเปรียบเทียบประสิทธิภาพการจัดกลุ่มข้อมูล โดยวิธีการเลือก ลักษณะสําคัญแบบพลวัตเพื่อเพิ่มประสิทธิภาพของอัลกอริทึม การจัดกลุ่มบนปริภูมิย่อย [5]
- การพยากรณ์ความต้องการพลังงานไฟฟ้าสําาหรับศูนย์จัดการ ความต้องการพลังงานไฟฟ้าของประเทศไทย [6]
- Bagging Model with Cost Sensitive Analysis on Diabetes Data [7]
งานวิจัยต่างๆ ของไทยสามารถดูเพิ่มเติมได้จาก วารสารเทคโนโลยีสารสนเทศ (Information Technology Journal) หรือ NECTEC Technical Journal ครับ ส่วนงานวิจัยต่างประเทศดูได้จาก Expert System with Applications Journals หรือ ดูได้จาก รายชื่อวารสารทางด้านดาต้า ไมน์นิงครับ
(2) Data Understanding
ขั้นตอนนี้เริ่มจากการเก็บรวบรวมข้อมูล หลังจากนั้นจะเป็นการตรวจสอบข้อมูลที่ได้ทำการรวบรวมมาได้เพื่อดูความถูกต้องของข้อมูล และพิจารณาว่าจะใช้ข้อมูลทั้งหมดหรือจำเป็นต้องเลือกข้อมูลบางส่วนมาใช้ในการวิเคราะห์
(3) Data Preparation
ขั้นตอนนี้เป็นขั้นตอนที่ทำการแปลงข้อมูลที่ได้ทำการเก็บรวบรวมมา (raw data) ให้กลายเป็นข้อมูลที่สามารถนำไปวิเคราะห์ในขั้นถัดไปได้ โดยการแปลงข้อมูลนี้อาจจะต้องมีการทำข้อมูลให้ถูกต้อง (data cleaning) เช่น การแปลงข้อมูลให้อยู่ในช่วง (scale) เดียวกัน หรือการเติมข้อมูลที่ขาดหายไป เป็นต้น โดยขั้นตอนนี้จะเป็นขั้นตอนที่ใช้เวลามากที่สุดของกระบวนการ CRISP-DM
(4) Modeling
ขั้นตอนนี้จะเป็นขั้นตอนการวิเคราะห์ข้อมูลด้วยเทคนิคทางดาต้า ไมน์นิง ที่ได้แนะนำไปแล้ว เช่น การจำแนกประเภทข้อมูล หรือ การแบ่งกลุ่มข้อมูล ซึ่งในขั้นตอนนี้หลายเทคนิคจะถูกนำมาใช้เพื่อให้ได้คำตอบที่ดีที่สุด ดังนั้นในบางครั้งอาจจะต้องมีการย้อนกลับไปที่ขั้นตอนที่ (3) Data Preparation เพื่อแปลงข้อมูลบางส่วนให้เหมาะสมกับแต่ละเทคนิคด้วย ตัวอย่างเทคนิคในการวิเคราะห์ข้อมูลต่างๆ เช่น
- การแบ่งกลุ่มข้อมูล (Clustering)
- การหากฏความสัมพันธ์ (Association Rules)
- การจำแนกประเภทข้อมูล (Classification) ตัวอย่างเข่น
- เทคนิค Decision Tree
- เทคนิค Naive Bayes
- เทคนิค Neural Network
- เทคนิค Support Vector Machines (SVM)
(5) Evaluation
ในขั้นตอนนี้เราจะได้ผลการวิเคราะห์ข้อมูลด้วยเทคนิคทางดาต้า ไมน์นิงแล้วแต่ก่อนที่จะนำผลลัพธ์ที่ได้ไปใช้งานต่อไปก็จะต้องมีการวัดประสิทธิภาพของผลลัพธ์ที่ได้ว่าตรงกับวัตถุประสงค์ที่ได้ตั้งไว้ในขั้นตอนแรก หรือ มีความน่าเชื่อถือมากน้อยเพียงใด ซึ่งอาจจะย้อนกลับไปยังขั้นตอนก่อนหน้าเพื่อเปลี่ยนแปลงแก้ไขเพื่อให้ได้ผลลัพธ์ตามที่ต้องการได้ สำหรับการสร้างโมเดลด้วยเทคนิค Classification มีการทดสอบประสิทธิภาพของโมเดลอยู่ 3 แบบใหญ่ คือ
- Self-consitency test
- Split test
- Cross-validation test
รายละเอียดของการทดสอบทั้ง 3 แบบ ดูได้จากบทความเรื่อง “การแบ่งข้อมูลเพื่อทดสอบประสิทธิภาพของโมเดล”
(6) Deployment
ในกระบวนการทำงานของ CRISP-DM นั้นไม่ได้หยุดเพียงแค่ผลลัพธ์ที่ได้จากการวิเคราะห์ข้อมูลด้วยเทคนิคทางดาต้า ไมน์นิงเท่านั้น แม้ว่าผลลัพธ์ที่ได้จะแสดงถึงองค์ความรู้ที่มีประโยชน์ แต่จะต้องนำองค์ความรู้ที่ได้เหล่านี้ไปใช้ได้จริงในองค์กรหรือบริษัท ตัวอย่างเช่น การสร้างรายงานเพื่อให้ผู้บริหารหรือนักการตลาดเข้าใจได้ง่ายและสามารถนำไปออกโปรโมชั่นได้ เป็นต้น
ตัวอย่างการใช้งาน CRISP-DM ในการแนะนำภาควิชาให้กับนักศึกษา
ในหัวข้อนี้ผมจะแสดงตัวอย่างการนำกระบวนการ CRISP-DM ไปใช้งาน โดยอ้างอิงจากงานวิจัยของ รศ. ดร. กฤษณะ ไวยมัย คุณชิดชนก ส่งศิริ และ ดร. ธนาวินท์ รักธรรมานนท์ ในเรื่อง “การใช้เทคนิคดาต้า ไมน์นิงเพื่อพัฒนาคุณภาพการศึกษาคณะวิศวกรรมศาสตร์” [2] โดยขอแบ่งเป็นขั้นตอนต่างๆ ดังนี้
(1) Business Understanding
ในสมัยก่อนนิสิตชั้นปีที่ 1 ของคณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ จะเรียนรวมกันหมดหลังจากนั้นจึงจะเลือกภาควิชา เช่น ภาควิชาวิศวกรรมคอมพิวเตอร์ หรือ ภาควิชาวิศวกรรมเครื่องกล ในตอนที่ขึ้นชั้นปีที่ 2 แต่ปัญหาที่พบ คือ นิสิตส่วนใหญ่มักเลือกภาควิชาไม่ตรงกับความสามารถหรือความชอบของตนเองเนื่องจากอาจจะได้ได้รับคำแนะนำจากผู้ปกครองหรือติดตามเพื่อนฝูงไปเรียน ทำให้นิสิตเหล่านี้มีผลการเรียนตกต่ำและอาจจะต้องโดนไล่ออกไปในที่สุด เพื่อแก้ปัญหาดังกล่าวอาจารย์และนักศึกษาระดับปริญญาโทจากห้องปฏิบัติการค้นหาความรู้จากฐานข้อมูลขนาดใหญ่ (DAKDL) คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ ได้นำเทคนิคการวิเคราะห์ข้อมูลทางดาต้า ไมน์นิงมาประยุกต์ใช้เพื่อแนะนำภาควิชาที่เหมาะสมให้กับนิสิตแต่ละคน ซึ่งในงานวิจัยนี้มีการใช้เทคนิคทางดาต้า ไมน์นิงหลายเทคนิคแต่ในบทความนี้ขอแสดงวิธีในหัวข้อ “โมเดลการจําแนกประเภทข้อมูลสําหรับแต่ละภาควิชาโดย พิจารณาว่านิสิตเหมาะสมกับภาควิชานั้นๆ หรือไม่” เพียงเท่านั้น สำหรับท่านผู้อ่านที่สนใจงานวิจัยนี้สามารถอ่านได้จากงานวิจัยเรื่อง การใช้เทคนิคดาต้าไมน์นิงเพื่อพัฒนาคุณภาพการศึกษานิสิตคณะวิศวกรรมศาสตร์ โดย กฤษณะ ไวยมัย , ชิดชนก ส่งศิริ และ ธนาวินท์ รักธรรมานนท์ [2]
(2) Data Understanding
ขั้นตอนนี้จะต้องรวบรวมข้อมูลจากสำนักทะเบียนของมหาวิทยาลัยเกษตรศาสตร์ โดยเลือกเฉพาะนิสิตของคณะวิศวกรรมศาสตร์ที่ลงทะเบียนเรียนในช่วงปี พ.ศ. 2535-2542 ซึ่งมีจำนวน 476,085 แถว จากนิสิตประมาณ 10,000 คน โดยข้อมูลแบ่งเป็น 2 ส่วน คือ
- ข้อมูลประวัติส่วนตัวของนิสิต เช่น เพศ อายุ ภูมิลำเนา
- ข้อมูลการลงทะเบียนของนิสิต เช่น ผลการเรียนในวิชาคณิตศาสตร์ วิชาฟิสิกส์
(3) Data Preparation
ในขั้นตอนนี้เป็นการคัดเลือกข้อมูลที่สำคัญและการแปลงข้อมูล เน่ืองมาจากการเลือกภาควิชาในคณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์จะใช้เกรดจากวิชาทั้งหมด 9 วิชาในชั้นปีที่ 1 มาเป็นตัวพิจารณา หลังจากคัดเลือกข้อมูลรายวิชาได้แล้วจะต้องทำการแปลงข้อมูลให้อยู่ในรูปแบบตารางซึ่งข้อมูลนักศึกษาแต่ละคนแสดงในแนวนอนและรายวิชาในแนวคอลัมน์ ดังแสดงในตารางซึ่งได้ทำการแบ่งช่วงข้อมูลจากเกรด A, B+, B, C+, C, D+ และ D เป็น
- ช่วง High เกรด B, B+, A
- ช่วง Medium เกรด C, C+
- ช่วง Low เกรด F, D+, D
(4) Modeling
ขั้นตอนนี้จะทำการสร้างโมเดลด้วยวิธี Decision Tree โดยแบ่งข้อมูลจำนวน 70% เป็นข้อมูลสำหรับสร้างโมเดล และข้อมูลจำนวน 30% ใช้เป็นข้อมูลทดสอบโมเดลที่สร้างขึ้นได้ (เป็นวิธีการ Split Test ในหัวข้อที่ 4.3 การแบ่งข้อมูลเพื่อใช้ในการวัดประสิทธิภาพของโมเดลการจำแนกประเภทข้อมูล) ในงานวิจัยนี้สร้างโมเดลแยกตามภาควิชา เช่น โมเดลสำหรับภาควิชาวิศวกรรมคอมพิวเตอร์ โมเดลสำหรับภาควิชาวิศวกรรมไฟฟ้า เป็นต้น โดยคลาสของข้อมูลจะแบ่งเป็น 2 คลาส คือ
- คลาส GOOD คือ นิสิตที่มีเกรดเฉลี่ยสะสม (GPA) อยู่ในลำดับ 40% แรกสุดของแต่ละภาควิชา
- คลาส BAD คือ นิสิตที่มีเกรดเฉลี่ยสะสม (GPA) อยู่ในลำดับ 40% ท้ายสุดของแต่ละภาควิชา
ตัวอย่างโมเดล (สมมุติ) สำหรับภาควิชาวิศวกรรมคอมพิวเตอร์แสดงดังรูปด้านล่าง ซึ่งจากโมเดลด้านล่างสามารถสรุปออกมาเป็นกฎได้ 4 แบบ คือ
- ถ้านิสิตเรียนวิชาคอมพิวเตอร์ (computer) ได้เกรดสูง (high) แล้วจะเรียนได้ดี (good) ในภาควิชาวิศวกรรมคอมพิวเตอร์ด้วย
- ถ้านิสิตเรียนวิชาคอมพิวเตอร์ (computer) ได้เกรดต่ำ (low) และเรียนวิชาคณิตศาสตร์ (mathematics) ได้เกรดสูง (high) แล้วจะเรียนได้ดี (good) ในภาควิชาวิศวกรรมคอมพิวเตอร์ด้วย
- ถ้านิสิตเรียนวิชาคอมพิวเตอร์ (computer) ได้เกรดต่ำ (low) และเรียนวิชาคณิตศาสตร์ (mathematics) ได้เกรดต่ำ (low) และเรียนวิชาฟิสิกิส์ (physics) ได้เกรดสูง (high) แล้วจะเรียนได้ดี (good) ในภาควิชาวิศวกรรมคอมพิวเตอร์ด้ว
- ถ้านิสิตเรียนวิชาคอมพิวเตอร์ (computer) ได้เกรดต่ำ (low) และเรียนวิชาคณิตศาสตร์ (mathematics) ได้เกรดต่ำ (low) และเรียนวิชาฟิสิกิส์ (physics) ได้เกรดต่ำ (low) แล้วจะเรียนได้ไม่ดี (bad) ในภาควิชาวิศวกรรมคอมพิวเตอร์ด้วย
(5) Evaluation
หลังจากที่แบ่งข้อมูลออกเป็น 2 ส่วนและใช้โมเดลที่สร้างได้จากข้อมูลจำนวน 70% มาทำการแนะนำภาควิชาให้กับนิสิตที่อยู่ในข้อมูลจำนวน 30% ที่เหลือ และใช้การวัดค่าความถูกต้อง (รายละเอียดดูได้จากบทความเรื่อง “การแบ่งข้อมูลเพื่อทดสอบประสิทธิภาพของโมเดล”) ได้ความถูกต้องเฉลี่ยในทุกโมเดลเท่ากับ 84.58%
(6) Deployment
จากโมเดล Decision Tree ที่สร้างขึ้นมาได้นั้นสามารถนำไปแนะนำภาควิชาให้กับนักศึกษาใหม่ได้โดยนำข้อมูลของนิสิตชั้นปีที่ 1 ที่จะทำการเลือกภาควิชาไปเปรียบเทียบกับโมเดลของภาควิชาต่างๆ โดยเริ่มจากโหนดบนสุดที่เป็นวิชาต่างๆ และไล่เรียงลงมาจนถึงโหนดสุดท้าย (leaf) ที่บ่งบอกว่าเป็นคลาส GOOD หรือ BAD ตามเงื่อนไขของโมเดล Decision Tree ในการใช้งานจะนำโมเดลจากทุกภาควิชามาใช้และพิจารณาโมเดลที่ให้คำตอบเป็น GOOD และมีสัดส่วนมากกว่า BAD เป็นต้น
เอกสารอ้างอิง
- C. Shearer, “The CRISP-DM model: The new blueprint for data mining“. Journal of Data Warehousing, 5(4), 13–22, 2000
- กฤษณะ ไวยมัย , ชิดชนก ส่งศิริ และ ธนาวินท์ รักธรรมานนท์, “การใช้เทคนิคดาต้าไมน์นิงเพื่อพัฒนาคุณภาพการศึกษานิสิตคณะวิศวกรรมศาสตร์“, NECTEC Technical Journal, 3(11), 2001
- อดิสรณ์ กําลังเพชร์, พนิดา หล่อวงศ์ตระกูล และ อริยะ นามวงศ์ “การประยุกต์ใช้โครงข่ายประสาทเทียมโดยใช้ตัวชี้วัดทางเทคนิค เพื่อการลงทุนในตลาดหลักทรัพย์แห่งประเทศไทย“, วารสารเทคโนโลยีสารสนเทศ (Information Technology Journal), 11(1), 2015
- สภุะ จันทา และ นลินภัสร์ ปรวัฒน์ปรียกร “ระบบจําแนกและค้นคืนข้อมูลเว็บกระทู้ข่าว ด้วยโครงข่ายประสาทเทียมเปอร์เซ็ปตรอนแบบหลายชั้น“, วารสารเทคโนโลยีสารสนเทศ (Information Technology Journal), 9(3), 2013
- วีระยุทธ พิมพาภรณ์ และ พยุง มีสัจ “การเปรียบเทียบประสิทธิภาพการจัดกลุ่มข้อมูล โดยวิธีการเลือก ลักษณะสําาคัญแบบพลวัตเพื่อเพิ่มประสิทธิภาพของอัลกอริทึม การจัดกลุ่มบนปริภูมิย่อย“, วารสารเทคโนโลยีสารสนเทศ (Information Technology Journal), 10(2), 2014
- พิณสุดา สิงไชย และ พงษ์ศักดิ์ กีรติวินทกร “การพยากรณ์ความต้องการพลังงานไฟฟ้าสําาหรับศูนย์จัดการ ความต้องการพลังงานไฟฟ้าของประเทศไทย“, วารสารเทคโนโลยีสารสนเทศ (Information Technology Journal), 10(2), 2014
- Punnee Sittidech, Nongyao Nai-arun, and Ian T. Nabney “Bagging Model with Cost Sensitive Analysis on Diabetes Data“, วารสารเทคโนโลยีสารสนเทศ (Information Technology Journal), 11(1), 2015