ในปัจจุบันในเชิงของธุรกิจนั้นการมีร้านค้าแต่ไม่มีข้อมูลลูกค้าไม่ช่วยเรื่องการตลาด ยกตัวอย่างความต้องการลูกค้าและร้านอาหารด้วยทางบริษัท IBM ถ้าวันไหนฝนตกจับพฤติกรรมลูกค้าได้มีคนมาซื้อเค้กมาขึ้น วันไหนอากศร้อนๆ จะมีคนมาซื้อเนื้อสัตว์เพิ่มขึ้น เช่นเดียวกับทางด้านโทรศัพท์มือถือและโซเชียลการซื้อขายสินค้าออนไลน์ ในแต่ละวันเราสร้างข้อมูลขึ้นมาโดยรู้ตัวและไม่รู้ตัว เป็นข้อมูลที่เราสร้างขึ้นมานั้นสามารถแบ่งข้อมูลได้ 2 ส่วนคือในองค์กร เป็นลักษณะที่เป็นโครงสร้าง และนอกองค์กร เป็นข้อมูลที่เป็น Data ทั่วไป พอมีข้อมูลมากขึ้นเราก็รวมข้อมูลจากหลาย ๆ ที่มาเก็บไว้ Data Warehouse ทำการ Prepare สามารถออกเป็นรายงานเป็น Dashboard ต่างๆ เมื่อนำมาทำการวิเคราะห์เราจะเรียกเป็น Data Mining ซึ่งข้อมูลในระดับนี้นับเรียกว่าเป็นเพชร เพราะมีสิ่งที่ซ้อนอยู่ในข้อมูลของเรา ซึ่งสามารถสรุปให้เข้าใจง่ายๆ ได้ว่า Data Warehouse นั้นเน้นดึงข้อมูลออกมาให้เร็วที่สุด ส่วน Data Mining คือกระบวนการนำสิ่งที่ซ้อนอยู่ในข้อมูลออกนั้นมาให้เกิดประโยชน์
ยกตัวอย่างให้เห็นภาพกับการนำ Data Mining ไปใช้งาน เกี่ยวกับเป้าหมายการช็อปปิ้ง ในซุปเปอร์มาเก็ต กับการใช้งานร่วมกับพวกบัตรเครดิตต่าง ๆ บัตรสมาชิก (loyalty card) เช่น บัตรคลับการ์ดของ Lotus ก็จะทำให้เขาทราบพฤติกรรมการซื้อสินค้าของลูกค้าร่วมบ่อย ๆ ก็จะหารูปแบบ Pattern ส่วนลดมาให้ลูกค้าเพื่อจัดโปรโมชันส่วนลดแต่ละบุคคลไป ตัวอย่างถัดมาเช่น ตัวอย่างเบียร์และผ้าอ้อม ความหมายคือ ผู้ชายจะออกไปซื้อของกลับบ้านทุกวันศุกร์ไปซื้อเบียร์แล้วก็จะซื้อผ้าอ้อมไปด้วยให้ลูก ในประเทศไทยเรามีอะไรมักจะซื้อร่วมกันบ่อยๆ ยกตัวอย่าง การซื้อขายขันน้ำ มีช่วงที่ซื้อขันน้ำบ่อยๆ คือเอาไปทำบุญจัดร่วมกับพวกยาและของใช้ ตัวอย่างถัดมาทาง TARGET คาดการณ์ว่าช่วงไหนที่คนเราจะมีการซื้อสินค้าใช้บ่อยๆ เขาคาดการณ์คือการตั้งครรภ์ เป้าหมายลูกค้าของเขาก็ดูจากพฤติกรรมของลูกค้า พวกคุณแม่ที่ดูแลตัวเองในแต่ละช่วงของการตั้งครรภ์ ทำการวิเคราะห์พฤติกรรมการซื้อสินค้าของลูกค้าเพศหญิง TARGET ทำจนรู้และทำนายได้แม่นมากๆ ในการจัดส่งโปรโมชันไปให้ที่บ้าน จาก Shot หนึ่งที่ในวีดีโอ เกี่ยวกับการส่งโปรโมชันการตั้งครรภ์ไปให้ลูกสาวที่บ้าน แต่ผู้เป็นคนคุณพ่อรับแทนเลยเกิดการทะเลาะกัน แต่สุดท้ายปรากฏว่าลูกสาวท้องจริงๆ ฉะนั้นมุมมองหนึ่งที่มองในการให้ข้อมูลถ้าเราให้ไปแล้วได้อะไรสักอย่างกลับมาก็จะยอมให้ข้อมูลส่วนตัวเราไปนั้นเอง
แนะนำสินค้าที่เกี่ยวข้องเว็บไซต์ Amazon.com จะเห็นได้ว่าแถบบริเวณด้านล่างจะเห็นการแนะนำหนังสือมาให้เกี่ยวกับหนังสือที่เกี่ยวข้องกับเรื่องที่เราซื้อไป และเช่นเดียวกับ Netflix จะแนะนำภาพยนต์จากคนที่เคยดูหนังเรื่องนั้นไปแล้วแนะนำเรื่องที่เกี่ยวข้องให้ เช่น Life of Pi เป็นต้น
เวลาเราเลือกซื้อ Application หนึ่งไปแล้วก็จะมีการแนะนำแอพที่ใกล้เคียงมาให้เรา ตัวอย่างถัดมา Application เกี่ยวกับ How-Old.net นำเสนอเกี่ยวกับการนำเอารูปของเราไปเทียบข้อมูลฐานตัวเลขอายุจะมีอยู่แล้วนำมา Map กับใบหน้ารูปเรา เทียบกับ Database บ้านเราช่วงหลัง ๆ ก็ปรากฏตัวเลขใกล้ความเป็นจริงมาขึ้นคนก็เริ่มไม่ใช้ละ
Google News จะเป็นการจัดกลุ่มข่าวที่มีกลุ่มเดียวกันไว้ด้วยกัน เนื้อหาคล้ายๆ กันไว้ด้วยกัน ระบบถัดมาคือ Sentiment140 จาก Sentiment140.com วิเคราะห์ทัศนคติในแง่ต่างๆ จากสังคมออนไลน์ เมื่อคนต้องการหาคำเช่น iphone6 มันจะทำการทำนายเกี่ยวกับคำนี้ออกมาให้ว่าคนพูดหรือบ่นคนนี้ในแง่มุมบวกหรือลบออกมา
S-sence ของ NECTEC เป็นเวอร์ชันไทย วิเคราะห์ทัศนคติในแง่ต่าง ๆ จากสังคมออนไลน์ http://pop.ssence.in.th
การคาดการณ์แนวโน้มของตลาดหุ้น ดูว่าคนที่เขียน Blog หุ้นในแต่ละวันมีความเครียดมากน้อยขนาดไหน Stock market , Anxiety index คาดการณ์ว่าวันใดก็ตามคนที่เขียน Blog มีความเครียดสูงหุ้นจะตก โดยทั้งหมดนี้คือตัวอย่างของการนำ Data Mining หรือข้อมูลมหาศาลไปใช้ประโยชน์ทั้งสิ้น
สำหรับมาตรฐานการทำ Data Mining คือ CRISP-DM พัฒนามาจาก 3 บริษัท SPSS, DaimlerChrysler NCR , พัฒนาด้วยขั้นตอน 6 ขั้นตอน
1. Business Understanding
ตั้งโจทย์ว่าเราจะทำ Data Mining ไปใช้อย่างไรให้เกิดประโยชน์ เป็นขั้นตอนแรกของ CRISP-DM ทำความเข้าใจกับปัญหา หรือโอกาสทางธุรกิน ตั้งคำถามก่อน
2. Data Understanding
จะหาข้อมูลจากไหน เพียงพอไหม โดยทำความเข้าใจรวบรวมข้อมูลจาก คำถามที่เราต้องการ เช่น ข้อมูลนักศึกษา
3. Data Preparation ทำการ Clean หรือ Prepare ข้อมูลก่อน
ข้อมูลของเรามีความถูกต้องเพียงพอแล้วหรือยัง โดยขึ้นตอนดังนี้
- ทำการคัดเลือกข้อมูล (Data Selection) กำหนดเป้าหมายก่อนว่าจะทำอย่างไร
- ทำการกลั่นกรองข้อมูล (Data Cleaning) การลบข้อมูลซ้ำซ้อน แก้ไขข้อมูลที่ผิดพลาด เช่นข้อมูลที่ผิดรูปแบบ ข้อมูลที่หายไป ข้อมูล Outlier ที่แปลกแยกจากคนอื่นผิดปกติค่อนข้างมาก เช่น ตารางข้อมูลนักศึกษาชั้นปีที่ 1 ปีการศึกษา 2557
- แปลงรูปแบบข้อมูล (Data transformation) เป็นขั้นตอนการเตรียมข้อมูลให้อยู่ในรูปที่พร้อมนำไปใช้ในการวิเคราะห์ ตามอัลกอริทึมของ Data mining ที่เลือกใช้ เช่น เทคนิคหาความสัมพันธ์การซื้อต่อครั้ง ข้อมูสำหรับการหากฏความสัมพันธ์ (Association Rules) อีกตัวอย่าง มีข้อความ Text ภาษาไทย Unstructured Data ให้ไปเป็นตารางเสียก่อน เพื่อหาความซ้ำซ้อนหรือความบ่อยในการปรากฏคำ ๆ นั้นบ่อยมากสุดออกมา ตัวอย่งาถัดมา พวกรูปภาพ ไม่มีโครงสร้าง ก็นำมาวิเคราะห์หาสีที่เกิดขึ้น เช่น สีแดง เขียว น้ำเงิน ที่เกิดขึ้นในภาพ ๆ นั้น
โดย 3 ขั้นตอนหลักนี้จะใช้เวลาค่อนข้างนานมากๆ
4. Modeling การวิเคราะห์ข้อมูลด้วยเทคนิคดาต้าไมนิ่ง
- Classification เทคนิคนี้เป็นการนำข้อมูลในอดีตมาทำการคาดการณ์ที่จะเกิดขึ้นอีกในอนาคต เช่น การเช็คเมล์ว่ามันเป็นสเปมหรือไม่เป็นสเปม ว่าเป็นอีเมล์ปกติ ถ้ามีคำ ๆ นี้เข้ามาอีกจัดเป็นสเปม
- Clustering การจัดกลุ่มข้อมูลเป็นกลุ่ม ๆ
- Association rules การหาความสัมพันธ์กันของข้อมูล เช่น คนดูหนังสือเล่มนี้แล้วจะดูหนังสืออะไรอีกบ้าง
โดยในการอธิบายนี้จะเริ่มจากจุดที่ง่ายๆ ขึ้นไปหายาก
5. Evaluation การวัดผลประเมินผล การพิสูจน์ขั้นตอนดีไม่ดี
เป็นการวิเคราห์ว่ามันตรงแล้วหรือยัง เทคนิคที่เราใช้เทคนิค A และ B ตัวไหนดีกว่ากัน ซึ่งมันจะใช้การเปรียบเทียบนี้กับงานวิจัย
6. Deployment การพัฒนา
นำโมเดลที่ได้หรือผลการวิเคราะห์ที่ได้ไปใช้งานจริง เช่น ลูกค้าที่มาซื้อเบียร์ แล้วจะซื้อสินค้าอะไรอีกบ้าง
Data Mining software มี 2 ฝั่ง
- Commercial Software เช่น SAS Enterprise Miner , IBM SPSS Modeler , Rapid miner
- Open source software เช่น Rapid Miner Studio, Weka , R
โปรแกรม RapidMiner Studio7
จากผลการสำรวจเว็บไซต์ KDnuggets ในปี 2014 พบว่าผู้ร่วมตอบมีผู้สนใจ Rapid Miner มากเป็นอันดับ 1 และมี Gartner ได้จัดให้ Rapid Miner อยู่ในกลุ่ม Leaders สำหรับซอฟต์แวร์วิเคราะห์ข้อมูล ปี 2016 ได้แก่ SAS, IBM , KNIME , Rapid Miner
RappidMiner Studio7
แบ่งเป็น 2 เวอร์ชัน ฟรีและเสียงเงิน แตกต่างกันคือ Basic , Community , Professional ตัวที่เสียเงินสามารถดึงค่าจาก Data Base ได้มากขึ้น เช่นจาก Amazon , Twitter ส่วนตัวฟรีสามารถดึงออกจากพวก MySQL , SQL ได้และไม่จำกัดอัตราเร็วในเครื่อง ฉะนั้นแตกต่างกันตรงการดึงข้อมูลจากแหล่งอื่นๆ ภายนอกที่เป็นโซเชียล
RapidMiner Academia เวลาสมัครให้ใช้อีเมล์สถาบัน .ac.th ซึ่งจะได้ license สามารถใช้งาน 1 ปี สามารถดาวน์โหลดโปรแกรมใช้งานได้ที่ http://docs.rapidminer.com/studio/installation/ สำหรับรายละเอียดขั้นตอนการทำงานและใช้งานนั้น ข้าพเจ้าได้จัดทำเป็นคู่มือ practical data mining with rapid miner studio7 เผยแพร่ทางเว็บไซต์
http://www.slideshare.net/nongluk/practical-data-mining-with-rapid-miner-studio7
บทที่ 4 Preprocess
Data : ข้อมูลที่มีอยู่ในตารางต่าง ๆ ที่ประกอบไปด้วยแถวและคอลัมม์ ซึ่งจะเรียกในแถวเป็น ตัวอย่าง (Example) ส่วนคอลัมพ์เรียก แอททริบิวต์ (Attribute) มีหน้าที่ (role) 3 แบบ คือ ID , Attribute เป็นแอทริบิวต์ปกติที่จะใช้ในการสร้างโมเดลหรือเรียกว่าฟีเจอร์ (feature) หรือตัวแปรต้น (independent) , label คือเป็น Attribute ที่เป็นคำตอบ Value type
บทที่ 5 Association Rules : การหาความสัมพันธ์ หรือเรียกว่า กฏความสัมพันธ์
เริ่มจากการ Market Basket Analysis จากการมองเห็นว่าคนซื้อสินค้า1 ชิ้น แล้วน่าจะเลือกซื้อสินค้าใดต่อร่วม จากข้อมูลที่ได้จากการซื้อสินค้าแต่ละครั้ง จะพบว่าการซื้อครั้งที่ 1 ซื้ออะไรบ้าง แล้ว Record ไว้ จากนั้นทำการบันทึกข้อมูลคนถัดๆไปเรื่อยๆ จำนวนแถวข้อมูลการซื้อก็จะเพิ่มมากยิ่งขึ้นเรื่อยๆ เป็น Transaction ซึ่งข้อมูลที่ได้ก็ไม่สะดวกในการนำไปวิเคราะห์ โดยทางที่ดีก็นำข้อมูลมาทำการแปลงข้อมูลเป็นแถวโดย Group by ตามเวลาที่ซื้อสินค้า
Support นับจำนวนครั้งการซื้อสินค้าแต่ละชนิดคิดเป็น % ของการซื้อสินค้า หรือการพบสินค้า ทำการนับในการซื้อสินค้า (จำนวนครั้ง)
Frequent itemset จำนวนสินค้าที่มีการพบบ่อย รูปแบบของการซื้อสินค้า (items) ที่มีค่า support >= minimum support การมี Frequent กับ infrequent เพื่อเป็นการกรองข้อมูลออกไป
สินค้าใน Supermarket มีจำนวน 3 ชนิด โอกาสที่เป็นไปได้ทั้งหมด (หรือ Subset ทั้งหมด) ถ้าตัวไหนไม่ผ่านเงื่อนไขที่กำหนดให้ตัดทิ้งเลย
การหากฏความสัมพันธ์ (association rules) มี 2 ขั้นตอนใหญ่ ๆ
- Apriori : แอบเพียวรี่ (Agrawal and Srikant, 1994)
สร้างรูปแบบสินค้าที่มีการเพิ่มจำนวนทีละ 1 ถ้าผ่านเงื่อนไขก็จะทำการ Join เพิ่มไปเรื่อยๆ
แบบนี้มันจะช้า เพราะการหาความสัมพันธ์แต่ละครั้ง ก็ต้องไปดึงค่าจาก Database ทุกครั้ง
หลักการทำงาน superset ของรูปแบบที่เป็น frequent Apriori นับจำนวนครั้งในการซื้อที่น้อยกว่า 50% ตัดผ้าอ้อมออก จับคู่ให้เป็น set ขึ้น เมื่อเป็น set ข้อมูลที่อยู่ข้างในไม่จำเป็นต้องมีลำดับ 1 ตัวหน้าที่ทำการ JOIN กันต้องเหมือนกัน เช่น {Beer, Cereal, Eggs} เพื่อให้ได้มา Frequent Itemset สินค้าที่มีการซื้อมากกว่าหรือเท่ากับ 50% จะได้ขนาด size ออกมาด้วย
- FP-Growth : เอฟพีโกลฟ
ขั้นตอนที่ 1 ทำโดยการสร้าง Compact data Structure เรียก FP-Tree ขึ้นมา โดยการอ่านข้อมูลจากฐานข้อมูลเพียงแค่ 2 ครั้งเท่านั้น แล้วหาค่า Support ของรูปแบบการซื้อสินค้า (Items) ที่มีความยาว 1 แล้วเรียงลำดับตาม Support ที่คำนวณได้ แล้วมาทำการสร้าง FP-Tree จากการอ่านข้อมูลในฐานข้อมูลเพียงหนึ่งรอบ เช่น เจอ Apple 1 ครั้งมันจะมีลิงค์ต่อไปเกิดเป็น 1 เส้นทาง ที่วิ่งไปโดยดูว่าตัวไหนที่มันสามารถซ้อนกันได้ก็ซ่อนไป ข้อดีคือถ้ามี Database 10ล้านแถว เราสามารถทำที่ละส่วนได้ แล้ว Free memory ทิ้งไปได้ แล้วเรียกส่วนที่เหลือมาทำงานต่อได้ ค่อยๆ อ่านค่ามาทำงาน Operator แบบนี้จะเรียก Stream Database
ขั้นตอนที่ 2 สร้างรูปแบบของสินค้าที่ซื้อบ่อยๆ (Frequent items) จาก FP-Tree โดยกำหนด min_support = 50%
เปรียบเทียบผลงของ Apriori & FP-Growth จะพบว่า FP-Growth จะเร็วกว่าแต่ผลลัพธ์เหมือนกัน
Association Rules : สร้างกฏความสัมพันธ์
สร้งจากสินค้าที่ลูกค้าซื้อบ่อยๆ รูปแบบของกฏ คือ LHS à RHS
LHS คือ Left Hand Side สินค้าที่ซื้อพร้อมกันบ่อยๆ ด้านซ้ายของกฏ เช่น Apple à Cereal
RHS คือ Right Hand Side สินค้าที่ซื้อพร้อมกันบ่อยๆ ด้านขวาของกฏ เช่น Cereal à Apple
ตัววัดประสิทธิภาพของกฏความสัมพันธ์
- Confidence
แสดงความเชื่อมั่นของกฏความสัมพันธ์ที่เมื่อรูปแบบ LHS เกิดขึ้นแล้วรูปแบบ RHS จะเกิดขึ้น%
ความน่าจะเป็น 1 ความน่าจะเป็นจะเกิดขึ้นด้วยทุกครั้ง
ถ้า Confidence กฏนั้นสูงน่าสนใจกว่า
- Lift
ถ้า Lift เกิน 1 แสดงว่าโอกาสจะเกิดขึ้นพร้อมกันมากว่าแยก
ถ้าน้อยกว่า 1 แสดงว่าตัวล่างมากกว่าตัวบน แสดงว่าซื้อแยกมากกว่า
Applications
ใช้ในการเพิ่มยอดขายโดยการแนะนำสินค้าที่ลูกค้ามักจะซื้อพร้อมกันบ่อย ๆ (cross-selling) ใช้ในการจัดสินค้าในร้าน เช่น วางสินค้าที่ลูกค้ามักจะซื้อพร้อม ๆ กันไว้ใกล้ๆ กัน หรือวางสินค้าไว้ใน Catalog ต่าง ๆ
บทที่ 6 Clustering : การจัดกลุ่มข้อมูล
ตัวอย่างแรก มีรูปผักและผลไม้หลายๆ ชนิด ถ้าอยากแบ่งข้อมูลรูปภาพพวกนี้ออกเป็น 2 กลุ่ม จะแบ่งได้จากอะไรบ้าง คำตอบ สี รูปทรง เช่น กลุ่มมีผักสีเขียว กลุ่มผักที่ไม่ใช่สีเขียว รูปทรง เช่น ผักทรงกลม ทรงแท่ง ทรงกระบอก
ตัวอย่างถัดมา พฤติกรรมการใช้งานโทรศัพท์ของคน 6 คน มีการใช้งานโทรศัพท์มากน้อย SMS มากน้อยขนาดไหน ถ้าต้องการแบ่งออกเป็น 3 กลุ่ม ใครอยู่กลุ่มเดียวกันบ้าง จากภาพพบว่า 1 คู่ 6 คือ โทรมาก และ 2 คู่ 3 โทรน้อย
ทั้งสองตัวอย่างนี้ คือการแบ่งกลุ่ม โดยการแบ่งกลุ่มสิ่งที่เหมือนกันอยู่กลุ่มด้วยกัน คุณสมบัติที่มีมากขึ้น พฤติกรรมเดียวกันอยู่กลุ่มเดียวกัน สั่งเกตุแต่ละกลุ่มจะเรียกว่า คลัสเตอร์ ที่มีข้อมูลแตกต่างกันตามกลุ่มที่แยก
วิธีการวัด ใช้ Euclidean distance ระยะห่างกันของกลุ่มที่แบ่ง
สูตรที่ได้ Euclidean distance ผลต่างแกน X กำลัง 2 บวกกับ ผลต่างของแกน Y ยกกำลัง 2
เราสามารถมีผลต่างได้มากว่า 3 มิติ โดยเอาผลต่างที่ได้มาถอดสแควรูด
ทำการ Clustering ลูกค้าตามพฤติกรรมการใช้งาน SMS และ Phone พอเรามา Map เป็นรูปภาพจะพบว่ามีกลุ่มที่ใช้งานโทรศัพท์มากๆ เป็นสีส้ม
เทคนิคที่ 1 ของ Clustering คื K-Means เป็นประเภท partitional clustering
นิยมใช้ในการทำ Clustering K คือจำนวน กลุ่ม ต้องการแบ่งกี่กลุ่มคือค่า K ตัวแทนแต่ละกลุ่ม ใช้เป็นค่าเฉลี่ยของสมาชิกในแต่ละกลุ่ม เลยเป็นค่า Means ขึ้นมาให้ โดยค่า Means ออกมาเรียกเป็นเซ็นพอย
วิธีการทำงาน
กำหนดจุดศูนย์กลางของแต่ละคลัสเตอร์ แล้วหาระยะห่างระหว่างข้อมูลแต่ละตัวกับจุดศูนย์กลาง มีน ของแต่ละคลัสเตอร์ แล้วกำหนดให้ข้อมูลที่อยู่ในคลัสเตอร์ที่ใกล้สุด แล้วคำนวณหาจุดศุนย์กลางของแต่ละคลัสเตอร์ใหม่ ทำซ้ำจนข้อมูลในคลัสเตอร์เดิมไม่มีการเปลี่ยนแปลง
เทคนิคที่ 2 ของ Clustering คือ Agglomerative Clustering เป็น Hierarchical clustering
(แอคเพอเมอร์ทีฟคลัสเตอร์ลิ่ง) เป็นการรวม Bottom up หมายความว่าดูข้อมูลแต่ละตัวเป็น 1 คลัสเตอร์ก่อนค่อยๆ รวมเป็นชุดที่ใหญ่ขึ้น ดูทีละคลัสเตอร์ มีเบอร์ 1-2-3-4-5-6 ไปเรื่อยๆ แล้วทำการเปรียบเทียบแต่ละตัวไปเรื่อยๆ 1,2,3,4,5,6 แล้วดูเป็นคู่ๆ มาจับเป็นกลุ่ม
- วัดระยะห่างเทียบกับข้อมูลที่อยู่ใกล้สุดในคลัสเตอร์ : Single Link
- วัดระยะห่างกับข้อมูลที่อยู่ไกลที่สุดในคลัสเตอร์ : Complete Link
- วัดระยะห่างเทียบกับข้อมูลทุกตัวในคลัสเตอร์ : Average Link
สุดท้ายมันจะทำการ Group เข้ามาเป็นคลัสเตอร์เดียว
สรุปว่า K-Mean มีข้อดีแต่ถ้ามีข้อมูลที่แปลกประหลาดมาก ๆ จะทำให้เกิดเป็นวง ๆ แตกออกมา เหมาะสำหรับกลุ่มที่มันเกาะกลุ่มกันจริงๆ ซึ่งจะมีการแบ่งข้อมูลที่มีการแบ่งเป็นวงกลมหรือวงกลมได้
เทคนิคที่ 3 ของ Clustering คือ เทคนิค DBSCAN Clustering เป็นเทคนิคการทำ Clustering ด้วยการพิจารณาจำนวนข้อมูลที่อยู่ในรัศมีที่กำหนด พารามิเตอร์ที่สำคัญ คือ
- Epsilon (แอพสลอน) คือ การระบุรัศมีรอบข้อมูล
- min pints คือ เป็นการระบุจำนวนข้อมูลในรัศมี
ถ้ามันอยุ่ใกล้กันมากพอถือว่าอยู่ในกลุ่มเดียวกัน จะขยับไปอยู่ที่ใกล้กัน ในตัวอย่างขยับไปด้านบนขวา เกิดเป็นเส้นประวงกลมเข้ม แล้วหาจุดที่มีมากพอไหมก็รวมกัน ทำไปเรื่อย ๆ จนสุดท้ายผลการแบ่งกลุ่มข้อมูลด้วยเทคนิค DBSCAN จะได้ผลที่อยู่ข้างในวงกลมในสุด
สรุป DBSCAN มันเป็นการทำ Clustering อย่างหนึ่งเหมาะสำหรับการทำข้อมูลที่แปลกๆ
คอนเซปคลัสเตอร์ลิ่ง คือ มันจะทำการจัดการแบ่งกลุ่มคล้ายๆ กันให้อยู่ในกลุ่มเดียวกัน แล้วจุดศูนย์กลางที่อยู่ในแต่ละกลุ่มมีอะไรบ้าง
สรุป Association Rule รวมกันใช้ในการอธิบายข้อมูลมากกว่าการคาดการณ์สิ่งที่เกิดขึ้นในอนาคตและเช่นเดียวกับการ Clustering ไม่สามารถคาดการณ์ในอนาคตได้ ทำได้แค่จัดกลุ่มใก้อยู่ในกลุ่มเดียวกันเท่านั้น
บทที่ 7 Classification
งานส่วนใหญ่ของ Data Mining จะเป็นในการทำ Classification ซึ่งสามารถพบในชีวิตประจำวัน เช่น การพยากรณ์อากาศ , เรื่อง Speech recognition , face recognition การอัพโหลดรูป แล้วบอกว่าเป็นหน้าใครเช่นในเฟสบุ๊ค , Spam e-mail
ตัวอย่างการทำ Spam e-mail classification
- ให้ระบุว่า e-mail ไหนบ้างที่เป็น spam e-mail เช่น Keyword ที่มีคำว่า won , FREE,cash
ในบทนี้นำความคิดมาสร้างเป็นโมเดลแล้วสร้างการทำนายข้อมูลที่มีมาใหม่ได้
- หา Keyword ที่ใช้บ่งบอกเป็น spam-email แล้วสร้างเป็นตารางประกอบด้วยคอลัมม์ FREE, Won, Cash , Type แล้วกำหนด Keyword Y,N
- สร้างเป็นโมเดล (Classification model) ได้ จากข้อมูล training data ซึ่งมีลาเบล (label) เป็นคำตอบไว้ก่อน บางทีเรียกว่าลาเบล หรือคลาส ถ้าลาเบลของเรื่องทำนายฝนตก คือ ตกหรือไม่ตก นศ.คนนี้ควรเรียนวิชาไหนดี ลาเบลคือคำตอบวิชา ฉะนั้นลาเบลคือคำตอบของการทำนายนั้น ๆ ตัวไหนที่เป็นคำตอบมันจะอยู่ล่าสุดของ Decision Tree โดยคำตอบเริ่มจากโหนดบนสุดก่อนไล่มาล่าสุดก็จะเจอคำตอบ สิ่งที่ต้องคำนึงถึงคือ ถ้าคำตอบเปลี่ยนโมเดลก็จะเปลี่ยนด้วย ถ้าข้อมูลมีมากขึ้นอาจจะมีข้อมูลที่คำนวณมากขึ้นตาม
- นำข้อมูลใหม่ (unseen data) ทำนายโดยใช้โมเดล จากตัวอย่างเบอร์ 11 และ 12 เป็น Spam ทั้งคู่
สรุป เอา Training Data à Model
Classification & Regression
- Regression คำตอบจะเป็นตัวเลข
- Classification คือตอบค่าไม่ใช่ตัวเลข เช่น คลาส , ลาเบล Y,N
ขั้นตอนการสร้างโมเดล
- Training Data
- Testing Data
ทั้งสองขั้นตอนมาจาก Training Data รวมใหญ่ทั้งคู่ หากผลการทำไม่เหมาะสมกับเทคนิคก็ต้องเปลี่ยนเทคนิคใหม่ เอา Test Data มาทดสอบว่าถูกต้องมากน้อยแค่ไหน Prediction Results ถ้าผลการทำนายออกมาตรงกันก็จะงานได้และวัดประสิทธิภาพผลการทำนายว่าได้กี่เปอร์เซ็นต์
ตัววัดประสิทธิภาพของโมเดล (Classification)
- Confusion Matrix เป็นการทำนายไว้ว่าถูกผิดเท่าไหร่
- Precision ดูสิ่งที่เรา Predict ออกมา แล้วทายถูกได้กี่เปอร์เซ็นต์
- Recall จำนวนที่ทำนายถูกกี่ตัว
- F-Measure ช่วยหาค่าเฉลี่ยของ Precision และ Recall
- Accuracy จำนวนข้อมูลที่ทำนายถูกของทุกคลาส
- ROC Graph & Area แสดงกราฟความสัมพันธ์ ทำนายถูกไปทางแกนตั้ง (Y) ถ้าทายผิดไปแนวแกนนอน (X)
- ROC Curve มีค่าเข้าใกล้ 1 จะแสดงว่ามีประสิทธิภาพดีกว่า จากกราฟ
- Area Under Curve พื้นที่ใต้กราฟ (AUC) ถ้าพื้นที่ใต้กราฟเข้าใกล้ 1 จะมีพื้นที่ใต้กราฟมาก ฉะนั้นมีค่ามาก (เข้าใกล้ 1) จะยิ่งดี
- สรุปแล้วเป็นตัววัดประสิทธิภาพเหล่านี้จะช่วยมองในมุมมองต่าง ๆ ได้
Validation การแบ่งข้อมูลเพื่อทดสอบประสิทธิภาพของโมเดล วิธีการทดสอบโมเดลแบ่งออกเป็น 3 ตัว
- Self-consistency test (use training set) เอา Training Data มาเป็นตัว Test เลย คือ ใช้ข้อมูลเดิมแล้วมันมีความถูกต้องมากน้อยแค่ไหน
- Split test แบ่งออกเป็น 2 ส่วนเลย คือ เป็นโมเดล และส่วนทดสอบ เช่น 70% สร้างโมเดล 30% ใช้ทดสอบ หรือ 80:20 ใช้ข้อมูล 2 ชุด เป็น Training data สำหรับสร้าง Model และ Testing Data สำหรับทดสอบ ถ้า Sampling มาดีก็ได้ข้อมูลทดสอบดี Split Test จะดีเมื่อมีข้อมูลมากๆ หมื่นหรือแสนตัวขึ้นไป
- Cross-validation test ใช้ค่อนข้างเยอะเหมือนกัน การทำ Split หลาย ๆ รอบ การทำคล้ายๆ กับ Split แต่แบ่งจำนวน N ชุดเท่าๆ กัน เช่น N=5 , N= 10 แล้วทำงานโดยการสร้างโมเดลทั้งหมด N ตัว จนครบ Split Test ทำรอบเดียวแล้วจบไป คือเก็บ1,2 ไว้ แต่ใน Cross จะเอา 3 ไปเป็นตัวทดสอบ แล้วใส่ 2 กลับเข้าไป แล้วเอา 1 เป็นตัวทดสอบ จะพบว่าทุกตัวจะถูกนำมาทดสอบหมด เราจะได้ความถูกต้องเฉลี่ยออกมาในแต่ละรอบ แต่ไม่เหมาะกับการทำแบบนี้กับกรณีที่ข้อมูลมากๆ ไม่เหมาะ
สรุปคือวัดประสิทธิภาพก่อนแล้วหาเทคนิคไหนเหมาะสม ระหว่ง A ,B, C ถ้าได้เทคนิคไหนดีที่สุดก็เอาไปสร้างเป็นโมเดลที่ใช้งานจริง
Classification Techniques
- เทคนิค Decision Tree การทำงานเป็นโหนด โหนดที่เป็นทั่วๆ ไป X , โหลดที่เป็นลีฟโหลดไม่มีอะไรมาต่อ Y โหนดบนสุด Root มีเส้นที่เชื่อมเรียก กิ่ง หรือ Branch , Internal Node ตัวอธิบายการตัดสินใจไปเรื่อย ๆ
ข้อดี คือสามารถแทนความหมายได้ง่าย
Decision Tree เป็นเทคนิคที่จำแนกทำการหาจาก Training Data ที่เรามี Attribute ทั่วไปที่มีเช่น มี Free, won ,Cash จาก Label ที่เรามี มันจะต้องมีการแบ่งแยกคำตอบได้อย่างชัดเจนที่สุด ด้วยการคำนวณค่า Entropy (เอ็นโทปี้) และ Information Gain (IG)
สูตร Entropy (c1) = -p(c1) log p(c1)
IG (parent, child) = Entropy (parent) – [p(c1) x Entropy(c1) + p(c2) x Entropy(c2)+…]
ลักษณะของค่า Entropy ถ้าค่าเหมือนกันหมดจะมีค่าเป็น ศูนย์ มาจากสูตร ความน่าจเป็น 1 แอททริบิวต์ไหนที่จะนำมาเป็น Root Node คือเอาแอทริบิวต์ที่สามารถแบ่งแยกคำตอบได้อย่างชัดเจนก่อน
- เทคนิค Naive Bayes : ใช้หลักการความน่าจะเป็น (Probablility) ไม่ต้องใช้ Tree
โอกาสที่เกิดเหตุการณ์จากเหตุการณ์ทั้งหมด ใช้สัญลักษณ์ P() หรือ Pr() เช่น การโยนเหรียนความน่าจะเป็นของการเกิดหัวและก้อย อีกอันคือ Joint Probability คือ ความน่าจะเป็นของ 2 เหตุการณ์ที่เกิดขึ้นร่วมกัน พร้อมกัน สุดท้ายคือใช้หลักการของ POP Probability Bayes Theorem โดย C คือ คลาส รู้ตัวแปล X แต่ไม่รู้ตัวแปล Y รู้คำตอบความน่าจะเป็นของ C สูตรที่ได้เกิดจากการ Training Data
- เทคนิค K-Nearest Neighbors (kNN) : ดูจำนวนที่ใกล้ที่สุด K ตัว
ตัวอย่างวิเคราะห์ข้อมูลการให้ยาของคนไข้โดยดูจากอายุและค่า Na/K เอาข้อมูล Training Data มาวิเคราะห์ได้ จำนวนข้อมูลตัวที่ใกล้มีมากสุดจะเป็นข้อมูลสีนั้น ๆ
- เทคนิค Linear Regression : การแสดงผลแนวเส้นตรง เป็นการสร้างสมการเพื่อแสดงความสัมพันธ์ของตัวแปรอิสระ (แอทริบิวต์) และตัวแปรตาม (คลาสคำตอบ) ตำตอบที่น่าสนใจเป็น “ค่าตัวเลข”
RMSE (Root Mean Square Error) สิ่งแรกที่มีต้องมี Error ก่อน แล้วนำมาเข้าสูตรการคำนวณ นำ Training Data ที่เตรียมไว้มาคำนวณ เอาจำนวน Error ทั้งหมดยกกำลังสองลบกับ Error ทั้งหมดถอด Square Loot ถ้าวัด Regression Error อยากให้มีค่าต่ำๆ น้อยๆ จะดี แต่ถ้าถามถึงความถูกต้องเลขผลที่ได้สูงๆ จะดีกว่า
- เทคนิค Neural Network : ทำงานกับข้อมูลที่มีความซับซ้อนได้ดีกว่า Linear
แบบ Basic คือโมเดลทางคณิตศาสตร์ที่เลียนแบบการทำงานของสมองมนุษญ์ แบ่งการทำงานเป็นวงกลม 1 วงกลม คือ 1 โหนด จะมีการเรียงตัวเป็นชั้นๆ บนสุดเรียก Input Node ชั้นสองเรียก Hidden node มันซ่อนอยู่สร้างข้อมูลให้ นอกสุดเป็น output node ที่เป็นตัวเลข ดูคำตอบตัวไหนมากกว่ากันเป็นคำตอบนั้นไป สังเกตจากโหนดสีแดง H1 มีเส้นเชื่อมเข้ามาหา การทำงานสำคัญคือค่าน้ำหนักที่ส่งไปให้แต่ละเส้นแต่ละโหนด มันจะมีค่าน้ำหนักอยู่ เช่น W11 คือ ค่าน้ำหนักจาก input node 1 ไปยัง hidden node1 พอมีเส้นเชื่อมไปยัง hidden node แต่ละตัวแล้วจะมีการทำงานข้างในแต่ละตัว เช่น Hidden node 1 จะมีค่าอยู่ข้างใน เข้าไปแล้วจะพบว่า ค่าน้ำหนังส่วนใหญ๋จะเป็ฯ sigmoid function แต่ละตัวแปรจะมีค่า A1, A2,A3,A4,A5 เส้น W1, W2,W3,W4,W5, แล้วมา Sum หาผลรวมเฉลี่ยออกไป มีค่าเป็น 0,1 โดยเรียกใช้ function ที่ใกล้เคียงที่สุดในนั้น คือ f(x) = 1(1+eยกกำลังลบ x)
ถ้า label ที่อยู่ในโหนด active function ผล output note ที่ได้จะมี active function ก็จะออกมาเป็น linear function
Neural Network โดยส่วนใหญ่จะมี 3 ชั้น input node , hidden node , output node การมี 3 ชั้นก็สามารถทำงานได้ดีแล้ว หากมีการซับซ้อน hidden node เข้ามากไปอีกมันจะเกิด Over fitting น้ำหนักบนเส้นแต่ละเส้นสำคัญกับคำตอบว่ามีผลมากน้อยแค่ไหน ซึ่งการทำงาน neural network จะเป็นการทำงานแบบ Back box มากกว่า
งานที่นำไปใช้เทคนิคนี้ไม่เหมาะกับการคาดการณ์ที่จะเอาไปอธิบายต่อ เช่น จะคาดการณ์ว่าใครโกงไม่โกงในการจะให้สินเชื่อกู้เงินควรเลือกใช้เทคนิคอื่นแทน
- เทคนิค Support Vector Machines (SVM) : ไอเดียคือเป็นเทคนิคที่ใช้สมาการเส้นตรงเส้นหนึ่งมาพัฒนา linear ที่แบ่งข้อมูลออกเป็น 2 คลาส (2ชุด)
ความยากคือกรณีมีหลายเส้น สิ่งที่เกิดขึ้นคือจุดตัดของขอบเส้นข้อมูลทั้ง 2 คลาส ตรงขอบของซ้ายและขวาทั้ง 2 คลาสเรียก Support Vector ของคลาส A และ Support Vector ของคลาส B ถ้าจุดของสีมีการข้ามเส้นฝั่งใดฝั่งหนึ่งมาจะทการเลือกโมเดลที่มีระยะห่างระหว่างคลาสมากที่สุด (หน้า 555)
SVM มีการใช้ Kernel function เพื่อทำการแปลงข้อมูลที่ไม่สามารถใช้โมเดล linear ไปอยู่มิติ (dimension) ที่สูงขึ้น โดยใช้ linear แบ่งข้อมูลได้ง่ายขึ้น (หน้า 559)
Kernel function ช่วยกรณีที่แบ่งข้อมูลไม่ได้มันจะทำการ Map dimension ที่ต่ำกว่าไปอยู่ dimension ที่สูงขึ้น แบ่งได้ง่ายขึ้นด้วยเส้นตรง
- เทคนิค Ensemble Classifiers (Vote) : เป็นการสร้าง Classification model มากกว่า 1 ตัวเพื่อช่วยกัน predict คำตอบเหมาะสำหรับ 6 เทคนิคก่อนหน้ามันตัดแล้ว ให้นำเทคนิค เอสเซมเปิ้ล คลาสซิไฟเออ โมเดลนี้มีประสิทธิภาพที่ดีกว่าการใช้ Classification model หนึ่งโมเดล โมเดลต่าง ๆ ต้อง independent กัน เทคนิคการสร้างใช้โมเดลร่วมกันเช่น Tree , k-nearest neighbors , Neural Network โดยจะเชื่อผลจากการโหวตแล้วว่า 2 ใน 3 มีค่าเหมือนกัน โดยแต่ละโมเดลต้องมีค่าความถูกต้องมากกว่า 50%
- เทคนิค Attribute Selection : การเลือกแอทริบิวต์ ทางที่ดีให้เลือกตัวแปรเฉพาะที่จำเป็นหรือสำคัญใช้งาน เลือกค่าแอททริบิวต์แล้วไปจับคู่ถัดไปเรื่อยๆ จาก 2 ไปเป็น 3 ถ้า 2 ให้ประสิทธิภาพได้ดีกว่าจับ 3 แสดงว่าใช้แค่ 2 ก็เพียงพอแล้ว แล้วทำการตัดค่าซอยย่อยออกมา ดูว่า 4 ดีกว่า 5 หรือไม่ หาก 3 ดีกว่า 4 แสดงว่าไม่ต้องลดแล้ว เนื้อหานี้อยู่ในเว็บไซต์ http:///datatrainingtrend.com เรียก Evolutionary , Genetic ทำเป็นลูกหลานต่อย่อยไปเรื่อยๆ โอเปอร์เรเตอร์ Optimize Weight (Evolutionary) ให้ผลการสุ่มดีกว่า Backward , Split-Validation แทนเพราะจะทำใช้ Test
สรุป เทคนิคการทำ Data Mining
- การหากฏความสัมพันธ์ association rule ต้องการค่าที่มันเกิดขึ้นร่วมกันบ่อยๆ ค่าที่เราสนใจ
- การจัดกลุ่มข้อมูลคล้าย ๆ กันไว้ด้วยกัน Clustering ลูกค้าซื้อสินค้าในกลุ่มเดียวกันไว้ด้วยกัน
- การสร้างสิ่งที่มีในอดีตมาทำนาย Classification มี Application ค่อนข้างหลายตัว
โดยทั้งหมดนี้เป็นการอ่านค่าเข้ามาเป็นในรูปแบบตารางเข้ามาพิจารณาการทำงานต่อยอด
บทที่ 8 Introduction to Text Mining
หลักการนำ 3 หลักการของ Data Mining มาใช้งาน ในตัวซอฟต์แวร์ Rapid Miner สามารถทำได้ รูปแบบข้อมูบมี 3 แบบคือ
- ข้อมูลที่มีโครงสร้างในรูปแบบตาราง excel , db
- ข้อมูลไม่มีโครงสร้าง ไม่มีอะไรบ่งบอกแถวหรือคอลัมม์ Unstructured Data
- รูปภาพ
ข้อมูลที่ไม่มีโครงสร้างที่เก็บข้อมูลในรูปแบบข้อความ รูปภาพ เสียงมีจำนวนมากถึง 80% กลุ่มคำที่คล้าย ๆ กัน ข่าวเดียวกันมาอยู่ในกลุ่มด้วยกันคล้ายการทำ clustering และการทำงานด้วย Sentiment การให้ความหมายของคำ คนที่มีทัศนคติอย่างไรจัดกลุ่มเดียวกันด้านบวกหรือลบ
- Text Representation: ในการวิเคราะห์ข้อมูลข้อความต้องทำการแปลงข้อมูลให้อยู่ในรูปแบบที่มีโครงสร้าง จัดว่าเป็นPositive , Negative ตัวอย่างข้อความจาก Twitter
- Text Representation : Bag of Words จำนวนความถี่ของคำที่เกิดขึ้นในข้อความ แล้วมาทำการตัดคำข้อความที่พบความถี่บ่อย แล้วทำการแปลงข้อความมาเป็นตาราง เรียกว่า Bag of words ภาษาอังกฤษสามารถทำได้ในเรื่องตัดคำเพราะมีจุด stop ข้อความ
- Text Representation : Stemming แปลงคำให้เป็นรากศัทพ์ (root) เช่น finding เป็น find การทำ Stemming ตัด e, se ,ing ทิ้ง
- Text Representation : Remove stopwords ตัดคำที่เป็น stop word ทิ้ง แล้วนำแอทริบิวติ์ที่ได้ไปทำงานต่อด้วย Convert text to structured data Binary occurrence ถ้ามีคำที่เกิดขึ้นในแต่ละเอกสารจะให้ค่าเป็น 1 ถ้าไม่เกิดขึ้นจะเป็น 0 สนใจดูว่าเกิดหรือไม่เกิด ตัวอย่าง หน้า 628 ข้อจำกัดคือ มันบอกได้แต่ว่า เกิดหรือไม่เกิด แต่ไม่สามารถบอกได้ว่าเกิดบ่อยแค่ไหน มันเลยมีวิธีการที่ 2 คือการหา Term Frequency มันคือ จำนวนครั้งที่คำนั้นเกิดขึ้นในเอกสารทั้งหมด เกิดขึ้นบ่อยแค่ไหน เกิดขึ้น 10 แสดง 10 ตัวเลขออกมา แต่มันก็มีข้อจำกัด เช่นคำ Common เกิดขึ้นบ่อยมากๆ ในหลายๆ เอกสาร แล้วเอกสารพวกนี้มันอยู่คนละ Label กัน เช่นเราจะทำ คำนั้นมันควรจะเกิดใน Positive , Negative อย่างเดียวแต่มันดันไปเกิดทั้ง สองอย่าง มันเลยมีการแก้ไขขึ้นด้วย TF-IDE คือ จำนวนครั้งจองคำที่เกิดขึ้นคูณกับจำนวนคำที่เกิดเฉพาะเอกสารในคลาส ซึ่งตัวนี้จะเป็นตัวที่นิยมใช้ แต่จะพบปัญหาเกี่ยวกับค่า แอททริบิวต์ที่มาก จึงจำเป็นต้องใช้เทคนิคการเลือกใช้ Attribute ที่สำคัญหรือต้องการจริง ๆ ออกมา
N-Gram sequences: จำนวนคำที่พิจารณาต่อกัน N ตัว
- Unigram พิจารณาการเกิดขึ้นของแต่ละคำ การดูทีละคำ
- Bi-gram พิจารณาการเกิดขึ้นของคำที่ติดกัน 2 คำ การดูสองคำติดกัน เช่น so good
- Tri-gram พิจารณาการเกิดขึ้นของคำที่ติดกัน 3 คำ เช่น smells so good
บทที่ 9 Introduction to Image Mining
ตัวอย่างการทำ detect ป้ายทะเบียนรถยนต์แบบอัตโนมัติ , การทำ detect ลายมือ , การแบ่งรูปภาพออกเป็นกลุ่ม ๆ ประเภทต่าง ๆ เช่น รูปกุหลาบ กระต่าย
Image Classification ในสายตามนุษย์สามารถบอกได้ว่าภาพไหนเป็นภาพชายทะเล หรือภาพป่าไม้ เวลาการประมวลผลจะแปลค่าสีเป็นเกสเกลก่อน ให้เป็นรูปขาวดำก่อน เห็นความแตกต่างของรูปอยู่ ในรูปเหล่านี้แบ่งเป็นพิเซลในช่องต่างๆ จะมีค่าอยุ่ อยู่ในช่วง 0-255 โดย 0 คือสีดำ 255 คือ ขาว ฉะนั้นสีใดเข้มเข้าใกล้ 0 ก็จะมีการ Convert image to structured data แปลงข้อมูลภาพมาเป็นข้อมูลที่มีโครงสร้างในรูปตาราง จัดเป็นค่าสี เช่น ผลที่ได้ 188.2 ผลรูปสีนี้ออกไปทางขาว เป็น ประเภทรูป beach ทะเล ตัวอย่างที่ 2 ได้ผล 52.41 ผลรูปที่ได้คือไปทางดำ ปรเภทรูปนี้เป็น forest รูปป่า แล้วทำการเก็บรูปไว้แล้วแปลงข้อมูลออกมา วิธีนี้ทำอย่างได้โดยการแปลงค่าข้อมูลภาพเป็น Pixel เมื่อได้ข้อมูลตารางแล้วก็นำไปสร้างโมเดล Classification ได้ เป็นรูป Tree คือ Mean ถ้ามากกว่า 98.833 เป็น beach แต่ถ้าไปทางน้อยกว่า 98.833 เป็นสีดำ