มาเริ่มกันเลยดีกว่า การจำแนกประเภท (ยังเป็นที่รู้จักกันเป็นหมวดหมู่) เป็นตัวอย่างของการเรียนรู้ภายใต้การดูแล ในการเรียนรู้ภายใต้การดูแลของคุณ:
- โมเดล - สิ่งที่ใกล้เคียงกับโครงสร้างภายในในข้อมูลของคุณทำให้คุณสามารถใช้เหตุผลและทำการคาดการณ์ที่มีประโยชน์ (เช่นคลาสของวัตถุที่คาดการณ์) โมเดลปกติมีพารามิเตอร์ที่คุณต้องการ "เรียนรู้"
- ชุดการฝึกอบรมและการทดสอบ - ชุดของวัตถุที่คุณใช้สำหรับการฝึกอบรมแบบจำลองของคุณ (การหาค่าที่ดีสำหรับพารามิเตอร์) และการประเมินผลเพิ่มเติม
- อัลกอริทึมการฝึกอบรมและการจำแนก - ก่อนอธิบายวิธีการเรียนรู้รูปแบบจากชุดข้อมูลการฝึกอบรมที่สองแสดงให้เห็นถึงวิธีการได้รับคลาสของวัตถุใหม่ที่ได้รับการฝึกอบรมรูปแบบ
ทีนี้ลองจำแนกกรณีสแปมอย่างง่าย ชุดข้อมูลการฝึกอบรมของคุณคือคลังข้อมูลของอีเมล + ป้ายกำกับที่เกี่ยวข้อง - "สแปม" หรือ "ไม่ใช่จดหมายขยะ" ชุดข้อมูลการทดสอบมีโครงสร้างเดียวกัน แต่ทำจากอีเมลอิสระบางตัว (โดยปกติจะแยกชุดข้อมูลของเขาออกแล้วพูดว่า 9/10 ของชุดข้อมูลนั้นจะใช้สำหรับการฝึกอบรมและ 1/10 - สำหรับการทดสอบ) วิธีหนึ่งในการสร้างแบบจำลองอีเมลคือการแสดงแต่ละคำในรูปแบบชุด (ถุง) ของคำ หากเราคิดว่าคำต่าง ๆ เป็นอิสระจากกันเราสามารถใช้ตัวแยกแยะ Naive Bayesนั่นคือคำนวณความน่าจะเป็นก่อนหน้าสำหรับแต่ละคำและแต่ละคลาส (อัลกอริทึมการฝึกอบรม) จากนั้นใช้ทฤษฎีบทของเบส์เพื่อค้นหาความน่าจะเป็น ชั้นพิเศษ
ดังนั้นโดยพื้นฐานเรามี:
raw model + training set + training algorithm -> trained model
trained model + classification algorithm + new object -> object label
ตอนนี้โปรดทราบว่าเราแสดงวัตถุ (เอกสาร) ของเราเป็นถุงคำ แต่เป็นวิธีเดียวหรือไม่ ในความเป็นจริงเราสามารถดึงข้อมูลเพิ่มเติมจากข้อความดิบได้ ตัวอย่างเช่นแทนที่จะใช้คำเช่นเดียวกับที่เราสามารถใช้ลำต้นหรือบทแทรกของพวกเขา, โยนคำหยุดที่มีเสียงดัง, เพิ่มแท็ก POSของคำ, แยกหน่วยงานที่มีชื่อหรือแม้แต่สำรวจโครงสร้าง HTML ของเอกสาร ในความเป็นจริงเป็นตัวแทนทั่วไปมากขึ้นของเอกสาร (และโดยทั่วไปวัตถุใด ๆ ) เป็นเวกเตอร์คุณลักษณะ เช่นข้อความ
actor, analogue, bad, burn, ..., NOUN, VERB, ADJ, ..., in_bold, ... | label
0, 0, 1, 1, ..., 5, 7, 2, ..., 2, ... | not spam
0, 1, 0, 0, ..., 3, 12, 10, ..., 0, ... | spam
แถวแรกนี่คือรายการของคุณลักษณะที่เป็นไปได้และแถวที่ตามมาแสดงจำนวนครั้งที่คุณสมบัติเกิดขึ้นในเอกสาร เช่นในเอกสารแรกไม่มีคำว่า "นักแสดง" เกิดขึ้นคำที่ "เบิร์น" 1 คำนาม 5 คำนามคำคุณศัพท์ 2 คำและตัวอักษร 2 ตัว คอลัมน์สุดท้ายสอดคล้องกับเลเบลคลาสที่เป็นผลลัพธ์
การใช้คุณสมบัติเวกเตอร์คุณสามารถรวมคุณสมบัติใด ๆ ของข้อความของคุณได้ แม้ว่าการค้นหาชุดคุณสมบัติที่ดีอาจใช้เวลาพอสมควร
แล้วแบบจำลองและอัลกอริทึมล่ะ? พวกเราผูกพันกับ Naive Bayes หรือเปล่า ไม่ใช่เลย. การถดถอยโลจิสติก , SVM , ต้นไม้ตัดสินใจ - เพียงแค่พูดถึงตัวแยกประเภทยอดนิยมบางส่วน (โปรดทราบว่าเราพูดว่า "ตัวจําแนก" ในกรณีส่วนใหญ่เราหมายถึงรุ่น + อัลกอริทึมที่สอดคล้องกันสำหรับการฝึกอบรมและการจัดหมวดหมู่)
สำหรับการนำไปใช้งานคุณสามารถแบ่งภารกิจออกเป็น 2 ส่วนดังนี้
- การแยกคุณลักษณะ - แปลงข้อความดิบเป็นเวกเตอร์คุณลักษณะ
- การจำแนกวัตถุ - การสร้างและใช้แบบจำลอง
จุดแรกจะทำงานได้ดีออกมาในหลายห้องสมุด NLP ประการที่สองเป็นเรื่องเกี่ยวกับการเรียนรู้เครื่องดังนั้นขึ้นอยู่กับชุดของคุณคุณสามารถใช้ทั้งWekaหรือMLlib