วันเสาร์ที่ ๕ มกราคม พ.ศ. ๒๕๕๑

Data mining ตอนที่ 2 (CRISP-DM Model)

ในตอนที่แล้วได้กล่าวถึง data mining เบื้องต้นเอาไว้ ในครั้งนี้จะได้เขียนถึง CRISP-DM Model เป็นอะไร ใช้ทำอะไร เกี่ยวข้องอย่างไรกับ data mining

CRISP-DM ( http://www.crisp-dm.org/) เป็นเครื่องมือของการทำ data mining model ซึ่งเป็นของฟรี จากกลุ่มที่ทำ data mining ด้วยกัน เขาบอกว่า ใครใช้โมเดลของเขาทำตามที่เขาแนะนำ จะมีความถูกต้องกว่า เร็วกว่า น่าเชื่อถือกว่า ราคาถูกกว่าและบริหารจัดการได้ดีกว่า คุณเชื่อหรือไม่

CRISP_DM Model: The New Blueprint for Data Mining ได้กล่าวถึง กระบวนการทำ Data mining ว่ามี 6 ขั้นตอนด้วยกันคือ
1. การทำความเข้าใจในเรื่องธุรกิจที่จะทำ
2. การทำความเข้าใจกับข้อมูลที่จัดเก็บ
3. การเตรียมข้อมูล
4. การสร้างโมเดล
5. การประเมินผล
6. การนำไปใช้งาน

ขั้นตอนเหล่านี้ขอเรียกเป็นเฟส ตามเอกสารต้นฉบับก็แล้วกัน ซึ่งมีรายละเอียด ดังนี้

เฟสที่ 1 การทำความเข้าใจในเรื่องธุรกิจที่จะทำ


เฟสที่หนึ่งจัดได้ว่า เป็นเฟสที่มีความสำคัญมากที่สุด เป็นการเริ่มต้นการทำความเข้าใจต่าง ๆ ให้ถ่องแท้ก่อนจะทำเฟสอื่น ๆ ต่อไป ในขั้นตอนนี้จะเน้นที่เราต้องทราบวัตถุประสงค์ของการทำโปรเจ็คเหมืองข้อมูลขององค์กรของเราเสียก่อน จากนั้นจะเกิดองค์ความรู้ขึ้นมาเอง แล้วจึงแปลงองค์ความรู้เพื่อให้กำหนดคำนิยามปัญหาในการทำเหมืองข้อมูล ถัดจากนั้นจึ่งเริ่มวางแผนที่ดำเนินการในขั้นต้น วางแผนขั้นตอนวิเคราะห์ ขั้นตอนออกแบบ และหาวิธีการแก้ปัญหาในช่วงสุดท้าย ในขั้นตอนการทำความเข้าใจธุรกิจนั้น มีขั้นตอนย่อย ๆ อีก ได้แก่ การกำหนดวัตถุประสงค์ทางธุรกิจ แน่นอนว่าวัตถุประสงค์หลักทางธุรกิจคือ ผลกำไร อันนี้ทุกคนทราบดี แต่การได้มาซึ่งผลกำไรนั้นมาจากอะไรบ้าง เช่น 


  • มาจากการมีลูกค้ามาก ๆ และการรักษาลูกค้าเอาไว้ไม่ให้ไปหาคู่แข่งของเรานี่ซิ จะทำอย่างไร
  • มาจากการเพิ่มยอดขายให้กับสินค้า โดยให้ลูกค้าซื้อเพิ่มขึ้น เช่น ยาสีฟันที่มีขายเป็นแพ็คคู่ การโฆษณาของนมให้กินวันละ 2 กล่อง
  • มาจากการซื้อของที่ใช้ต่อเนื่อง หรือคู่กัน เช่น ซื้อไข่ ร่วมกับน้ำมันพืช

ยกตัวอย่างธุรกิจจำพวกธนาคาร ช่องทางให้บริการลูกค้าเพื่อผูกมัดลูกค้าให้อยู่กับเราตลอดนั้นมีหลายช่องทาง ได้แก่ เพิ่มตู้ ATM, เปิดสาขาใกล้บ้านหรือสำนักงาน หรือบริการผ่านอินเทอร์เน็ต เป็นต้น ขอยกตัวอย่างกรณีศึกษาของมหาวิทยาลัยราชภัฏสงขลาซึ่งเป็นลูกค้าของไทยธนาคาร เมื่อมหาวิทยาลัยฯ กำหนดนโยบายให้โอนเงินเดือนผ่านธนาคาร (ในสมัยนานมาแล้ว) มหาวิทยาลัยฯ จึงต้องให้อาจารย์ทุกคน เปิดบัญชีของไทยธนาคาร เมื่อมหาวิทยาลัยฯ มีนโยบายให้นักศึกษาจ่ายค่าลงทะเบียนเรียนผ่านทางธนาคาร นศ. ทุกคนจำเป็นต้องเปิดบัญชีกับธนาคารแห่งนี้ ด้วยเหตุนี้ธนาคารจึงได้ลูกค้าไม่น้อยกว่าหนึ่งหมื่นคน มีเงินหมุนเวียนเป็นจำนวนมาก เมื่อมีธนาคารกรุงศรีฯ กรุงไทย ไทยพาณิชย์ มาเปิดใกล้มหาวิทยาลัย และพยายามเข้ามานำเสนอให้ทีมผู้บริหารเปิดรับธนาคารของตนเอง เข้ามาในรายการด้วย อยากทราบว่า ไทยธนาคารจะใช้ทฤษฎีกลยุทธ์ใดมารักษาลูกค้าเดิมเอาไว้ให้ได้ (ใช้กลยุทธ์แบบฝรั่งหรือแบบไทย ๆ อันนี้ฝากให้เป็นข้อคิด)

ทฤษฎีของฝรั่งจากเอกสาร "Journal of data warehouse Volume 5 Number 4 Fall 2000" บอกไว้ว่า การลดค่าธรรมเนียมนั้น หรือค่าธรรมเนียมที่ถูกกว่าคู่แข่งนั้นมีผลกระทบกับกลุ่มลูกค้าเพียงบางกลุ่มเท่านั้น


เฟสที่ 2 การทำความเข้าใจกับข้อมูลที่จัดเก็บ

ในขั้นตอนนี้ เราต้องทำอะไรบ้างกับข้อมูล

แน่นอนว่าองค์กรที่จะทำ Data mining นั้นจะต้องมีฐานข้อมูลเป็นของตนเอง ได้แก่ ฐานข้อมูลจากการขายของระบบจุดขายหน้าร้าน (point of sale: POS) และควรมีระบบบัตรสมาชิก จึงจะทำให้ data mining มีประสิทธิภาพสูงสุด ในขณะเดียวกัน อาจนำข้อมูลจากการสำรวจพฤติกรรมผู้บริโภคในแหล่งที่ตั้งเดียวกัน ข้อมูลจากงานวิจัยภายนอกองค์กร  ข้อมูลเหล่านี้มันจะมีแอตทริบิวต์ไม่ตรงกับฐานข้อมูลของเรา เช่น เพศ ของเราอาจเก็บ M กับ F แต่จากการสำรวจแบบสอบถามเขาอาจเก็บ ชาย หญิง ดังนั้น สิ่งที่เราจะต้องทำให้ขั้นตอนนี้ ได้แก่


  • รวบรวมข้อมูลที่เกี่ยวข้อง
  • ข้อมูลต้องถูกต้อง เชื่อถือได้
  • ปริมาณของข้อมูลต้องมากพอต่อการนำไปใช้ในการวิเคราะห์


เฟสที่ 3 การเตรียมข้อมูล

ดังได้กล่าวมาแล้วในเฟสที่ 2 ว่า ข้อมูลอาจจะมาหลายแหล่งเอามารวบรวมอยู่ในโครงสร้างเดียวกัน ดังนั้นกระบวนการเตรียมข้อมูลเพื่อให้ถูกต้อง เชื่อถือได้จึงต้องใช้เวลาในการทำนานมาก และใช้เวลามากที่สุดในกระบวนการทำ data mining ทั้ง 6 เฟส ดังนั้น บริษัทที่ฉลาด ๆ จึงทำเครื่องมือหรือซอฟต์แวร์สำหรับงานนี้ขึ้นมาโดยเฉพาะ เช่น RapidMiner, Weka, R, SPSS เป็นต้น

ในเฟส 3 นี้ มีขั้นตอนย่อยออกเป็น 3 ขั้นตอนย่อยอีก นั่นคือ

  • การคัดเลือกข้อมูล ข้อมูลตามแอตทริบิวต์ในฐานข้อมูลในระบบการขาย มีการเก็บไว้มากมาย เราจะเลือกเอาข้อมูลที่จำเป็นต้องใช้กับการวิเคราะห์เท่านั้น ประเด็นนี้ก็ต้องสอดคล้องกับเฟสที่ 1 และ 2 เช่น เราตั้งข้อสมมติฐานว่า เพศ อายุ ส่วนสูง น้ำหนักมีผลต่อการซื้อสินค้าเป้าหมายของเราหรือไม่ เราจำเป็นต้องเลือกแอตทริบิวต์เหล่านี้เข้าไปด้วย รวมทั้งสินค้าที่เขาซื้อไป สรุปสั้นในกระบวนการนี้ ได้แก่  1) กำหนดเป้าหมายว่าเราจะวิเคราะห์อะไร  2) เลือกใช้เฉพาะข้อมูลที่เกี่ยวข้องกับสิ่งที่จะทำการวิเคราะห์เท่านั้น เพื่อไม่ให้เสียเวลากับการเตรียมข้อมูล และการประมวลผลของเครื่องคอมพิวเตอร์
  • การทำให้ข้อมูลคลีน (clean) คลีน บางตำราแปลคำว่า "คลีน" ได้ว่า กลั่นกรอง เขาคลีนข้อมูลกันอย่างไร แล้วข้อมูลที่ไม่คลีน เป็นข้อมูลแบบไหน เช่น  1) ข้อมูลที่ซ้ำกัน คลีนด้วยการลบให้เหลือหนึ่งเดียว  2) ข้อมูลที่ผิดพลาด แก้โดยการทำให้ถูก เช่น วันที่เก็บผิดรูปแบบจาก 31 ธ.ค. 2559 หรือ  31/12/2016 เป็น 2016-12-31 3) ข้อมูลที่หายไป ก็เพิ่มเข้าไป เช่น จำนวนบุตร ถ้าไม่มีบุตรบางข้อมูลจะเว้นว่างเอาไว้ แก้โดยการใส่ 0 4) ข้อมูลที่ไม่เข้าพวก แปลกแยกออกไป แก้โดยการใส่ข้อมูลค่าเฉลี่ย หรือค่าปริยาย (default) 
  • แปลงข้อมูล เป็นขั้นตอนการแปลงข้อมูลในรูปแบบตารางฐานข้อมูลให้อยู่ในรูป item set เพื่อใช้สำหรับการวิเคราะห์ด้วยวิธีการของ data mining เช่น กฎความสัมพันธ์ หรือจำนวนความถี่ เป็นต้น

    เพื่อให้เห็นเด่นชัด เข้าใจในหัวข้อนี้ จึงขอแสดงรูปแบบการแปลงข้อมูลให้เห็น ดังตารางต่อไปนี้

    ตัวอย่างการแปลงจากตารางข้อมูลให้อยู่ในรูปของกฎความสัมพันธ์
  • IDProductsQuantity
    1ยาสีฟัน1
    1สบู่1
    1ผงซักฟอก1
    2ผงซักฟอก5
    2น้ำมันพืช2
    3ยาสีฟัน1
    3สบู่1
    3แปรงสีฟัน2
แปลงให้อยู่ในรูปกฎอัลกอริทึมความสัมพันธ์ ได้ดังตารางต่อไปนี้


IDยาสีฟันสบู่ผงซักฟอกน้ำมันพืชแปรงสีฟัน
1TRUETRUETRUE--
2--TRUETRUE-
3TRUETRUE--TRUE

ส่วนการแปลงในรูปแบบอัลกอริทึมจำนวนความถี่ จะขอยกตัวอย่างกรณี สำรวจหรือค้นหาข้อความ ข้อมูลจากอินเทอร์เน็ต เช่น เราค้นหาคำว่า สถานที่ท่องเที่ยวทางทะเล ใน google.com แล้วเขียนโปรแกรมให้นับคำจำนวนที่ซ้ำ ๆ กัน เอาไปใส่ในตาราง หน้าตาของตารางออกมาแนวนี้


IDภูเก็ตสมุยเสม็ดหลีเป๊ะพะงัน
154312
2...............







เฟสที่ 4. การสร้างโมเดล

เป็นขั้นตอนการวิเคราะห์การวิเคราะห์ข้อมูลด้วยเทคนิค data mining กันเลย ซึ่งมีอยู่ด้วยกันหลายเทคนิค ได้แก่


  1. classification การคลาสซิฟายหรือการจำแนก แจกแจง เป็นโมเดลที่ใช้สำหรับนำข้อมูลที่มีอยู่มาทำนายอนาคต เช่น การพยากรณ์การขายสินค้า A ในฤดูฝนที่จะถึง หรือการพยากรณ์อากาศ เป็นต้น 
  2. clustering เป็นการแบ่งกลุ่ม หรือจัดกลุ่มในพวกเดียวกัน คล้ายคลึงกัน เช่น การแบ่งสินค้าตามรูปร่าง แบ่งสินค้าตามราคา หรือแบ่งสินค้าตามชนิดการใช้งาน
  3. association rules เป็นการหาความสัมพันธ์ของข้อมูลที่เกิดร่วมกัน เช่น ค้นหาสินค้าที่มีการซื้อร่วมกันบ่อย ๆ แล้วนำเสนอให้ลูกค้ารายใหม่ ที่ใช้ใน amazon.com เป็นต้น

    สำหรับผู้อ่านที่สามารถเขียนโปรแกรมได้ สามารถหาไลบรารี ที่รวบรวมอัลกอริทึมต่าง ๆ มาให้เป็นเครื่องมือสำหรับใช้งาน เราสามารถเขียนคำสั่ง ไปประยุกต์ได้ สำหรับ association rules มีอัลกอริทึมของ Apriori และ FP-Growth ให้ใช้  ลองนำคำนี้ค้นหาใน google ก็สามารถหาเจอ และนำไปใช้ได้ โดยเฉพาะภาษาไพธอน มีให้ดาวน์โหลดนำไปใช้ได้ที่ https://pypi.python.org/pypi/apriori/1.0.0 (python apriori library)

    และที่ https://pypi.python.org/pypi/fp-growth/ (python FP-growth library)

เฟสที่ 5. การประเมินผล

เป็นขั้นตอนการประเมินผล หรือวัดหาประสิทธิภาพของการใช้โมเดลในเฟสที่ 4 ว่าโมเดลที่เลือกใช้งาน ใน data mining มีความถูกต้อง เชื่อมั่นได้เพียงไร 

ในขั้นตอนนี้จะใช้โมเดล decision tree หรือ neural network เป็นเครื่องมือในการประเมิน

  เฟสที่ 6. การนำไปใช้งาน

เมื่อได้ผลลัพธ์ที่ถูกต้อง ตามวัตถุประสงค์ทุกประการแล้ว ในขั้นตอนนี้จะเป็นการนำไปใช้งานจริง ตัวอย่างที่เราเห็นกัน ได้แก่ โฆษณาใน google หรือ amazon, lazada, youtube ระบบเล่นอัตโนมัติ เป็นต้น


Data mining ตอนที่ 1

สวัสดีปีใหม่ 2551 ครับ ผมตั้งใจว่าจะเขียนชุด Data mining เป็นตอน ๆ ตั้งแต่ปลายปีที่แล้ว แต่แล้วก็ยังไม่ได้เขียนซักที วันนี้ผมพอมีว่างเพราะพลาดการเดินทางโดยสารรถทัวร์ในช่วงหลังปีใหม่ ได้มีโอกาสเขียน เนื้อหา คงไม่เป็นในเชิงวิชาการมากนัก เพราะว่าการค้นคว้า การแปลเอกสารต้องใช้เวลานาน ผู้อ่านอย่าเพิ่งเชื่อในเนื้อหามากนัก ถ้าผิดพลาดหรือต้องการเพิ่มเติมเชิญ comment มาได้นะครับ สำหรับนักศึกษาจะเอาไปทำรายงานส่งอาจารย์ ต้องค้นคว้าเพิ่มเติมนะครับ ในตอนแรกจะกล่าวถึงความเป็นมา และแนะนำ data mining กันก่อน



Data mining ความหมายและวิวัฒนาการ



Data mining แปลตามตัว คือ เหมืองข้อมูล เพราะคำว่า mining แปลว่า การทำเหมือง(แร่) แต่ถ้าให้ความหมายตาม Pang-Ning Tan และคณะจะให้ความหมายว่า Data mining หมายถึง กระบวนการค้นหาให้ได้มาซึ่งสารสนเทศที่มีประโยชน์ในด้านต่าง ๆ ที่ต้องการจากแหล่งข้อมูลที่มีขนาดใหญ่ สารสนเทศที่ได้นิยมนำมาใช้การทำนาย แนวโน้ม พฤติกรรมต่าง ๆ ของลูกค้าได้ โดยใช้เทคนิคการสร้าง pattern


นับตั้งแต่มีการเก็บข้อมูลในระบบคอมพิวเตอร์ตั้งแต่ยุคแรก โดยการเขียนโปรแกรมในรูปแบบระบบไฟล์ (File System) แล้วเปลี่ยนมาเป็นระบบฐานข้อมูล (Database System) ซึ่งประกอบด้วยตารางที่ใช้เก็บข้อมูลในรูปแบบแถวและคอลัมน์แทน ดาต้าเบสส่วนใหญ่จะเก็บเป็นทรานเซคชั่น หรือธุรกรรม กิจกรรมการเก็บข้อมูล จากการขาย หรืออื่น ๆ ฐานข้อมูลในแต่ละระบบจะมีหลายตาราง เช่น ตารางสินค้าเก็บรายการสินค้าต่าง ๆ ประกอบด้วยฟิลด์ (คอลัมน์) P_ID, Name, Supplier, price, cost, #inlnven เป็นต้น และมีตาราง sale ใช้สำหรับเก็บข้อมูลการขายสินค้า

เมื่อฐานข้อมูลที่จัดเก็บข้อมูลทรานเซคชั่นทุก ๆ วันจึงมีข้อมูลเป็นจำนวนมากขึ้นเรื่อย ๆ จึงเกิดแนวคิดที่นำเอาข้อมูลเหล่านี้มาใช้ให้เกิดประโยชน์ได้อย่างไรบ้าง โดยเริ่มจากการใช้คำสั่ง เพื่อสรุปการขายสินค้าแต่ละชนิดในแต่ละวัน หรือนำมาจัดหมวดหมู่สินค้า กระบวนการนี้เรียกว่าการทำ analytical processing แต่บางคนเรียกกระบวนทั้งหมดว่าการทำ data warehouse

เมื่อมีการนำเอาฐานข้อมูลมาจัดทำสารสนเทศ สรุปผลต่าง ๆ ได้มากขึ้น หลังจากนั้นจึงมีการประยุกต์ เป็น data cube (จากข้อมูลเดิม 2 มิติ ทำเป็น 3 มิติ) หรือเรียกกันว่าการทำ OLAP = online analytical processing หลังจากนั้นจึงวิวัฒนาการพัฒนาเป็น Data mining ขึ้นในปัจจุบัน

Data mining จำแนกงานออกเป็น 2 แบบ
- Predictive tasks เป็นการนำเอาข้อมูลสารสนเทศมาทำนาย โดยอาศัยการทำโมเดล และใช้ข้อมูลเยอะ ๆ ยกตัวอย่างเช่น การทำนายชนิดของดอกไม้ โดยอาศัย species ที่แตกต่างกันของดอกไม้แต่ละชนิด
- Descriptive tasks เป็นการอธิบายข้อมูล เช่น มีลูกค้าอยู่กลุ่มหนึ่ง มีพฤติกรรมการซื้อสินค้า ที่พบบ่อย ๆ ว่าเขาชอบซื้อสินค้ากลุ่มใด ประเภทใด ควบคู่กับอะไรบ้าง เป็นต้น เป็นการอธิบายภาพรวม หรือหาสิ่งที่ไม่เคยเกิดขึ้นมาก็ได้


แต่ก่อนจะไปศึกษาในเนื้อหาเชิงลึก ในตอนต่อไปจะขอกล่าวถึง โมเดลที่เขานิยมนำมาอ้างอิงในการทำ Data mining กัน นั่นคือ โมเดล CRISP-DM ครับ โปรดติดตามตอนต่อไป

เอกสารอ้างอิง
Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Introduction to Data mining, Pearson International Edition;