หน้าเว็บ

วันเสาร์ที่ 3 มีนาคม พ.ศ. 2555

เทคนิคต่าง ๆ ของ Data Mining

เทคนิคต่าง ๆ ของ Data Mining

1. Association rule Discovery
เป็นเทคนิคหนึ่งของ Data Mining ที่สำคัญ และสามารถนำไปประยุกต์ใช้ได้จริงกับงานต่าง ๆ หลักการทำงานของวิธีนี้ คือ การค้นหาความสัมพันธ์ของข้อมูลจากข้อมูลขนาดใหญ่ที่มีอยู่เพื่อนำไปใช้ในการวิเคราะห์ หรือทำนายปรากฏการณ์ต่าง ๆ หรือมากจากการวิเคราะห์การซื้อสินค้าของลูกค้าเรียกว่า “ Market Basket Analysis ” ซึ่งประเมินจากข้อมูลในตารางที่รวบรวมไว้ ผลการวิเคราะห์ที่ได้จะเป็นคำตอบของปัญหาซึ่งการวิเคราะห์แบบนี้เป็นการใช้กฎความสัมพันธ์”  ( Association Rule ) เพื่อหาความสัมพันธ์ของข้อมูล
ตัวอย่างการนำเทคนิคนี้ไปประยุกต์ใช้กับงานจริง ได้แก่ ระบบแนะนำหนังสือให้กับลูกค้าแบบอัตโนมัติ ของ Amazon ข้อมูลการสั่งซื้อทั้งหมดของ Amazon ซึ่งมีขนาดใหญ่มากจะถูกนำมาประมวลผลเพื่อหาความสัมพันธ์ของข้อมูล  คือ ลูกค้าที่ซื้อหนังสือเล่มหนึ่ง ๆ มักจะซื้อหนังสือเล่มใดพร้อมกันด้วยเสมอ ความสัมพันธ์ที่ได้จากกระบวนการนี้จะสามารถนำไปใช้คาดเดาได้ว่าควรแนะนำหนังสือเล่มใดเพิ่มเติมให้กับลูกค้าที่เพิ่งซื้อหนังสือจากร้าน ตัวอย่างเช่น                               buys ( x , database) -> buys ( x , data mining ) [ 80% , 60% ] หมายความว่า เมื่อซื้อหนังสือ database แล้วมีโอกาสที่จะซื้อหนังสือ data mining ด้วย 60 % และมีการซื้อทั้งหนังสือ database และหนังสือ data mining พร้อม ๆ กัน 80 %
อีกตัวอย่างคือ ในการซื้อสินค้าของลูกค้า 1 ครั้ง โดยไม่ต้องจำกัดว่าจะซื้อสินค้าในห้างร้าน หรือสั่งผ่านทางไปรษณีย์ หรือการซื้อสินค้าจากร้านค้าเสมือนจริง ( Virtual store ) บน web โดยปกติเราจะต้องการทราบว่าสินค้าใดบ้างที่ลูกค้ามักซื้อด้วยกัน เพื่อนำไปพิจารณาปรับปรุงการจัดวางสินค้าในร้าน หรือใช้เพื่อหาวิธีวางรูปคู่กันในใบโฆษณาสินค้า ก่อนอื่นขอกำหนดคำว่า กลุ่มรายการ ( itemset ) หมายถึง กลุ่มสินค้าที่ปรากฏร่วมกัน เช่น { รองเท้า , ถุงเท้า}, {ปากกา, หมึก} หรือ { นม , น้ำผลไม้} โดยกลุ่มรายการดังกล่าวนี้ อาจจะจับคู่กลุ่มลูกค้ากับสินค้าก็ได้เช่น วิเคราะห์หา   “ลูกค้าที่ซื้อสินค้าบางชนิดซ้ำ ๆ กัน อย่างน้อย 5 ครั้งแล้วกรณีนี้ฐานข้อมูลเรามีการเก็บรายการซื้อขายเป็นจำนวนมาก และคำถามข้างต้น (query ) นี้จำเป็นต้องค้นหาทุก ๆ คู่ของลูกค้ากับสินค้า เช่น { คุณ ก , สินค้า A}  , { คุณ ก , สินค้าB} , {คุณ ก , สินค้า C } , { คุณ ข , สินค้า B}  เป็นต้น นับเป็นงานที่หนักพอสมควรสำหรับ DBMS และถ้าจะเขียน query ข้างต้นเป็น SQL จะได้ว่า
                SELECT    P.custid , P.item , SUM( P.qty )
                FROM        Purchases P
                GROUP  BY P.custid , P.item
                HAVING     SUM(P.qty ) > 5
                หลังจากที่ DBMS ประมวลผล SQL นี้ เนื่องจากมีข้อมูลที่ต้องตรวจสอบมากมายหลายคู่และแต่ละคู่ต้องค้นหามาจากฐานข้อมูลเลย แต่ผลลัพธ์ของ query แบบนี้ มักจะมีจำนวนน้อยมาก เลยเรียก query ชนิดนี้ว่าเป็น “iceberg query” ซึ่งเปรียบกับสำนวนไทย คือ งมเข็มในมหาสมุทร
2. Classification & Prediction
- Classification
เป็นกระบวนการสร้าง model จัดการข้อมูลให้อยู่ในกลุ่มที่กำหนดมาให้ ตัวอย่างเช่น จัดกลุ่มนักเรียนว่า ดีมาก ดี ปานกลาง ไม่ดี  โดยพิจารณาจากประวัติและผลการรียน หรือแบ่งประเภทของลูกค้าว่าเชื่อถือได้ หรือไม่โดยพิจารณาจากข้อมูลที่มีอยู่ กระบวนการ classification นี้แบ่งออกเป็น 3 ขั้นตอน ดังรูปที่ 3



- Model Construction ( Learning ) 
                เป็นขั้นการสร้าง model โดยการเรียนรู้จากข้อมูลที่ได้กำหนดคลาสไว้เรียบร้อยแล้ว ( training data ) ซึ่ง model 
ที่ได้อาจแสดงในรูปของ
1.     แบบต้นไม้ ( Decision Tree)
2.   แบบนิวรอลเน็ต ( Neural Net)
- โครงสร้างแบบต้นไม้ของ Decision Tree
เป็นที่นิยมกันมากเนื่องจากเป็นลักษณะที่คนจำนวนมากคุ้นเคย ทำให้เข้าใจได้ง่าย มีลักษณะเหมือนแผนภูมิองค์กร  โดยที่แต่ละโหนดแสดง attribute แต่ละกิ่งแสดงผลในการทดสอบ และลีฟโหนดแสดงคลาสที่กำหนดไว้
                สมมติว่าบริษัทขนาดใหญ่แห่งหนึ่ง ทำธุรกิจอสังหาริมทรัพย์มีสำนักงานสาขาอยู่ประมาณ 50 แห่ง แต่ละสาขามีพนักงานประจำ เป็นผู้จัดการและพนักงานขาย พนักงานเหล่านี้แต่ละคนจะ    ดูแลอาคารต่าง ๆ หลายแห่งรวมทั้งลูกค้าจำนวนมาก บริษัทจำเป็นต้องใช้ระบบฐานข้อมูลที่กำหนดความสัมพันธ์ระหว่างองค์ประกอบเหล่านี้ เมื่อรวบรวมข้อมูลแบ่งเป็นตารางพื้นฐานต่าง ๆ เช่น ข้อมูลสำนักงานสาขา ( Branch ) ข้อมูลพนักงาน ( Staff ) ข้อมูลทรัพย์สิน ( Propety) และข้อมูลลูกค้า  ( Client ) พร้อมทั้งกำหนดความสัมพันธ์ ( Relationship) ของข้อมูลเหล่านี้ เช่น ประวัติการเช่าบ้านของลูกค้า ( Customer_rental ) รายการให้เช่า ( Rentals ) รายการขายสินทรัพย์ ( Sales ) เป็นต้น ต่อมาเมื่อมีประชุมกรรมการผู้บริหารของบริษัท ส่วนหนึ่งของรายงานจากฐานข้อมูลสรุปว่า
“ 40 % ของลูกค้าที่เช่าบ้านนานกว่าสองปี และมีอายุเกิน 25 ปี จะซื้อบ้านเป็นของตนเอง โดยกรณีเช่นนี้เกิดขึ้น 35 % ของลูกค้าผู้เช่าบ้านของบริษัทดังรูปที่ 4 แสดงให้เห็นถึง Decision Tree สำหรับการวิเคราะห์ว่าลูกค้าบ้านเช่าจะมีความสนใจที่จะซื้อบ้านเป็นของตนเองหรือไม่ โดยใช้ปัจจัยในการวิเคราะห์คือ ระยะเวลาที่ลูกค้าได้เช่าบ้านมา และอายุของลูกค้า 


ตัวอย่างของ Decision Tree เพื่อวิเคราะห์โอกาสที่ลูกค้าบ้านเช่าจะซื้อบ้าน

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

ตาราง Business_Info

Age

Rent_Period

Buy

23
36
20
27
20
50
36
36
22
3
1.5
1.5
2
1
2.5
1
2
2.5
No
No
No
Yes
No
Yes
No
Yes
no

SQL สำหรับ Decision Tree ของตัวอย่างนี้แบ่งเป็น 2 ชุด สำหรับปัจจัยแต่ละอย่าง
1.        SQL สำหรับ root node ดังนี้
SELECT  B.Rent_Period , B.Buy , COUNT(*)
FROM      Business_Info B

WHERE   B.Rent_Period > 2

GROUP BY  B.Rent_Period , B.Buy
ผลลัพธ์ของ SQL นี้คือ
Rent_Period
Buy
Yes
No
1
1.5
2
2.5
3
0
0
2
1
0
2
2
0
1
1


2.        SQL  สำหรับ node ที่เป็น  child ทางขวาของ root คือ
SELECT   B.Age , B.Buy , COUNT(*)

FROM    Business_Info B

WHERE    B.Age > 25
GROUP  BY  B.Age , B.Buy
ผลลัพธ์ของ SQL นี้คือ
Rent_Period
Buy
Yes
No
20
22
23
27
36
50
0
0
2
1
1
1
2
1
1
0
2
0


ผลลัพธ์ที่ได้จากแต่ละโหนดของ Decision Tree เรียกว่า AVC set ( Attribute Value , Class label ) จากตัวอย่างข้างตันจะเห็นว่ามี 2 AVC sets เพื่อใช้ในการจัดกลุ่มลูกค้า            
- นิวรอลเน็ต หรือ นิวรอลเน็ตเวิร์ก ( Neural Net)
เป็นเทคโนโลยีที่มีที่มาจากงานวิจัยด้านปัญญาประดิษฐ์ Artificial Intelligence:AI เพื่อใช้ในการคำนวณค่าฟังก์ชันจากกลุ่มข้อมูล วิธีการของ นิวรอลเน็ต ( แท้จริงต้องเรียกให้เต็มว่า Artificial  Neural Networks หรือ ANN ) เป็นวิธีการที่ให้เครื่องเรียนรู้จากตัวอย่างต้นแบบ แล้วฝึก
( train ) ให้ระบบได้รู้จักที่จะคิดแก้ปัญหาที่กว้างขึ้นได้ ในโครงสร้างของนิวรอลเน็ตจะประกอบด้วยโหนด ( node ) สำหรับ Input – Output และการประมวลผล กระจายอยู่ในโครงสร้างเป็นชั้น ๆ ได้แก่ input layer , output layer และ hidden layers การประมวลผลของนิวรอลเน็ตจะอาศัยการส่งการทำงานผ่านโหนดต่าง ๆ ใน layer เหล่านี้ สำหรับตัวอย่างรูปที่ 5 เป็นการวิเคราะห์แบบเดียวกับรูปที่ 4 ในโครงสร้างแบบนิวรอลเน็ต



- Model Evaluation ( Accuracy )
เป็นขั้นการประมาณความถูกต้องโดยอาศัยข้อมูลที่ใช้ทดสอบ( testing data )ซึ่งคลาสที่แท้จริงของข้อมูลที่ใช้ทดสอบนี้จะถูกนำมาเปรียบเทียบกับคลาสที่หามาได้จาก model เพื่อทดสอบความถูกต้อง     

- Model  Usage ( Classification )
เป็น Model สำหรับใช้ข้อมูลที่ไม่เคยเห็นมาก่อน ( unseen data ) โดยจะทำการกำหนดคลาสให้กับ object ใหม่ที่ได้มา หรือ ทำนายค่าออกมาตามที่ต้องการ

-Prediction
เป็นการทำนายหาค่าที่ต้องการจากข้อมูลที่มีอยู่ ตัวอย่างเช่น หายอดขายของเดือนถัดไปจากข้อมูลที่มีอยู่ หรือทำนายโรคจากอาการของคนไข้ในอดีต เป็นต้น

3. Database clustering หรือ Segmentation
เป็นเทคนิคการลดขนาดของข้อมูลด้วยการรวมกลุ่มตัวแปรที่มีลักษณะเดียวกันไว้ด้วยกัน ตัวอย่างเช่น บริษัทจำหน่ายรถยนต์ได้แยกกลุ่มลูกค้าออกเป็น 3 กลุ่ม คือ 
1.กลุ่มผู้มีรายได้สูง (>$80,000) 
2.กลุ่มผู้มีรายได้ปานกลาง ($25,000 to $ 80,000)
3.กลุ่มผู้มีรายได้ต่ำ (less than $25,000) 
และภายในแต่ละกลุ่มยังแยกออกเป็น
1.Have Children
2.Married
3.Last car is a used car
4.Own cars


จากข้อมูลข้างต้นทำให้ทางบริษัทรู้ว่าเมื่อมีลูกค้าเข้ามาที่บริษัทควรจะเสนอขายรถประเภทใด เช่น ถ้าเป็นกลุ่มผู้มีรายได้สูงควรจะเสนอรถใหม่ เป็นรถครอบครัวขนาดใหญ่พอสมควร แต่ถ้าเป็นผู้มีรายได้ค่อนข้างต่ำควรเสนอรถมือสอง ขนาดค่อนข้างเล็ก
4. Deviation Detection
                เป็นกรรมวิธีในการหาค่าที่แตกต่างไปจากค่ามาตรฐาน หรือค่าที่คาดคิดไว้ว่าต่างไปมากน้อยเพียงใด โดยทั่วไปมักใช้วิธีการทางสถิติ หรือการแสดงให้เห็นภาพ (Visualization) สำหรับเทคนิคนี้ใช้ในการตรวจสอบ ลายเซ็นปลอม หรือบัตรเครดิตปลอม รวมทั้งการตรวจหาจุดบกพร่องของชิ้นงานในโรงงานอุตสาหกรรม
5. Link Analysis
                จุดมุ่งหมายของ Link Analysis คือ การสร้าง link ที่รียกว่า “ associations” ระหว่าง recode เดียว หรือ กลุ่มของ recode ในฐานข้อมูล link analysis สามารถแบ่งออกเป็น 3 ชนิด คือ
- associations discovery
- sequential pattern discovery
- similar time sequence discovery 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น