วันจันทร์ที่ 2 พฤศจิกายน พ.ศ. 2558

Machine Learning with R part IX (fancyRpartPlot)


วันนี้ขอเสนอวิธี Plot Decision Tree ให้สวยงามนะครับ

ปล. ถ้ารูปเล็กเกินไปก็คลิ๊กที่รูปเพื่อขยายได้ครับ


เริ่มต้นด้วยการ Import Library ที่จำเป็นก่อนครับ ได้แก่ rpart, rattle, rpart.plot และ RColorBrewer
หาก Import ไม่ได้ ก็ใช้คำสั่ง install.packages("ซื่อ Library") ก่อนครับ


Data Set ที่ใช้จะใช้ข้อมูลอากาศ ชื่อ weather




ตัด Column ที่ไม่ใช้งานได้แก่  Date, Location และ RISK_MM




แบ่งข้อมูลเป็น 2 ส่วน คือ Train และ Test สัดส่วน 70:30



สร้าง Model Decision Tree เพื่อหา RainTomorrow โดยใช้ข้อมูล train และทำการ Plot ด้วยคำสั่ง fancyRpartPlot





อ้างอิง 
http://www.rdocumentation.org/packages/rattle/functions/fancyRpartPlot

วันอาทิตย์ที่ 1 พฤศจิกายน พ.ศ. 2558

Machine Learning with R part VIII (Split the sets)


ในการทำ Model แบบ Unsupervised เราจะแบ่ง Data Set ออกเป็น 2 ส่วน คือ

1.Train Set เป็นข้อมูลใช้สำหรับสร้าง Model โดยสอนให้ Model รู้ว่าหากเราป้อน Input นี้แล้ว Output ควรจะได้อะไรออกมา

2. Test Set เป็นข้อมูลสำหรับทดสอบประสิทธิภาพของ Model โดยเปรียบเทียบ Output ที่ได้จาก Model กับ Output ที่ควรจะเป็น


ในตอนนี้เราจะสอนการแบ่งเป็นอัตราส่วน หากต้องการแบ่ง Train Set : Test Set เป็นแบบ 70:30 ทำได้ตามนี้

ปล. ถ้ารูปเล็กเกินไปก็คลิ๊กที่รูปเพื่อขยายได้ครับ


เริ่มต้นเราจะใช้ข้อมูลดอก iris เช่นเคย หากลองพิมพ์ iris จะแสดงข้อมูลทั้งหมดโดยแต่ละแถวเรียงตาม Species โดยเริ่มต้นที่ setosa, versicolor และ virginica ตามลำดับ





เพื่อให้ได้ Model ที่มีประสิทธิภาพเราจะต้อง Shuffle ข้อมูลก่อนแบ่ง โดยใช้คำสั่ง iris[sample(n),] โดย n กำหนดให้เป็นจำนวนแถว จากนั้นเก็บ Data Set ที่ Shuffle แล้วไว้ในตัวแปร shuffled



จากนั้นเราสามารถแบ่ง Train Set โดยแบ่งจาก shuffled ด้วยคำสั่ง shuffled[1:round(0.7 * n),] โดย n เป็นจำนวนแถว คำสั่งนี้จึงหมายเอาข้อมูลจาก shuffled ตัวที่ 1 ถึงตัวที่ 0.7*จำนวนแถว หรือ 70% ของข้อมูลทั้งหมดนั่นเอง เช่นเดียวกับ Test Set เราเพียงเปลี่ยนช่วงของข้อมูลโดยให้เริ่มจาก round(0.7 * n) + 1 ถึง n แทน ก็จะเป็น 30% ที่เหลือ