Open Miner Intelligence

27 Jun
2011

วิธีการเพิ่มจำนวนข้อมูล (Oversampling) ด้วย SMOTE ใน weka

Posted by: admin In: Classification|Data Mining|Preprocess|Weka|Weka

ในโจทย์ปัญหา Classification นั้น หลายท่านคงเคยพบกับปัญหาข้อมูลไม่เท่ากันในแต่ละ class หรือที่เรียกว่า Imbalance data set แน่นอนว่าหากเราเอาข้อมูลที่มีปริมาณแตกต่างกันอย่างชัดเจนนั้น มาเรียนรู้ด้วยวิธีการจำแนกประเภท เราย่อมได้โมเดลที่รู้จำรูปแบบของข้อมูลที่มีปริมาณมากได้เป็นอย่างดี ทำอย่างไรดีถึงจะได้โมเดลที่เป็นกลาง ? วิธีการหนึ่งที่ช่วยแก้ปัญหา Imbalance data set ได้ คือการทำ Undersampling หรือบางทีก็เรียกว่า Down Sampling เป็นวิธีการลดจำนวนข้อมูลของ class ที่เป็นเสียงข้างมาก (majority class) ให้น้อยลงจนมีปริมาณพอๆ กับ class ที่เป็นเสียงข้างน้อย (minority class) อย่างมีหลักการ  หรืออีกวิธีหนึ่งที่เป็นเหมือนกระจกเงา คือวิธีการที่เรียกว่า Oversampling หรืออีกชื่อหนึ่งคือ Up Sampling ซึ่งเป็นวิธีการในการเพิ่มจำนวนข้อมูลของ class ที่เป็น minority ให้มีปริมาณข้อมูลใกล้เคียงกับ class ที่เป็น majority นั่นเอง

 
ในบทความนี้เราจะลองแก้ปัญหา Imbalance data set ด้วยวิธีการ Oversampling ใน weka กันค่ะ โดยเราจะใช้ algorithm ที่ชื่อว่า SMOTE (Synthetic Minority Over-sampling Technique) ซึ่งสามารถเรียกใช้งานได้ดังนี้ค่ะ

  

1. Load ข้อมูลที่เป็น Imbalance dataset เข้าไปใน weka

2. Tab Preprocess > Filter > supervised > instance > SMOTE

โดย parameter ที่สามารถปรับเปลี่ยนได้แก่
  



classValue เป็นการระบุว่า class ลำดับที่เท่าไร ที่เป็น class ส่วนน้อย (minority class) ซึ่ง algorithm SMOTE จะใช้ในการพิจารณาเพื่อเพิ่มจำนวนข้อมูล (หากระบุค่าเป็น 0 ระบบจะ detect minority class ให้อัตโนมัติ)
nearestNeighbors algorithm SMOTE จะพิจารณาจำนวนสมาชิกที่อยู่ใกล้กับข้อมูลของ class minority ที่จะถูกใช้ในการทำ oversampling ตามจำนวนที่ระบุใน nearestNeighbors
percentage จำนวนข้อมูลที่เพิ่มขึ้น เช้น ถ้าระบุ 100% ระบบสร้างข้อมูลใหม่เท่ากับจำนวนข้อมูลของ minority class เป็นต้น พูดง่ายๆ ว่า ถ้าจำนวน minority class มี 10 instances ระบบจะสร้างข้อมูลใหม่เพิ่มอีก 10 instances ค่ะ
randomSeed เป็นการระบุค่าเริ่มต้นให้กับตัวแปร random ของ algorithm SMOTE
   






เรื่องที่เกี่ยวข้อง

coded by nessus

No Responses to "วิธีการเพิ่มจำนวนข้อมูล (Oversampling) ด้วย SMOTE ใน weka"

Comment Form

 

About

This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from.