<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: robsterr</title>
    <description>The latest articles on DEV Community by robsterr (@kazumii).</description>
    <link>https://dev.to/kazumii</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3034710%2F92018a8c-1a6a-4100-bbb6-5ca5816a2207.jpg</url>
      <title>DEV Community: robsterr</title>
      <link>https://dev.to/kazumii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kazumii"/>
    <language>en</language>
    <item>
      <title>การวิเคราะห์ข้อมูลด้วย Decision Tree และ Random Forest</title>
      <dc:creator>robsterr</dc:creator>
      <pubDate>Wed, 09 Apr 2025 19:51:43 +0000</pubDate>
      <link>https://dev.to/kazumii/kaarwiekhraaahkhmuuldwy-decision-tree-aela-random-forest-31b6</link>
      <guid>https://dev.to/kazumii/kaarwiekhraaahkhmuuldwy-decision-tree-aela-random-forest-31b6</guid>
      <description>&lt;p&gt;Machine Learning คือ เทคโนโลยีที่ช่วยให้คอมพิวเตอร์สามารถเรียนรู้จากข้อมูลและทำการตัดสินใจได้ด้วยตนเอง หนึ่งในวิธีที่ได้รับความนิยมในการวิเคราะห์ข้อมูลคือการใช้โมเดลต้นไม้ เช่น Decision Tree และ Random Forest บทความนี้จะพาไปทำความเข้าใจหลักการทำงานของทั้งสองเทคนิค พร้อมแสดงตัวอย่างโค้ด Python และการประยุกต์ใช้งานจริง&lt;/p&gt;

&lt;p&gt;ในโลกของข้อมูลขนาดใหญ่และการตัดสินใจอย่างรวดเร็ว Machine Learning ได้เข้ามามีบทบาทสำคัญ โดยเฉพาะในด้านการทำนาย เช่น พฤติกรรม การแบ่งประเภท และการวิเคราะห์แนวโน้มของข้อมูล&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;บทความนี้นำเสนอเทคนิคพื้นฐาน 2 แบบ คือ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Decision Tree&lt;/p&gt;

&lt;p&gt;Random Forest&lt;/p&gt;

&lt;p&gt;ทั้งสองเทคนิคจัดอยู่ในกลุ่ม Supervised Learning ซึ่งหมายถึงโมเดลที่เรียนรู้จากข้อมูลที่มี &lt;br&gt;
"คำตอบ" อยู่แล้ว (เช่น ข้อมูลลูกค้าที่ซื้อ/ไม่ซื้อ, ผู้ป่วยที่เป็น/ไม่เป็นโรค ฯลฯ)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;หลักการของ Decision Tree และ Random Forest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Decision Tree : เป็นโมเดลที่ใช้โครงสร้างแบบต้นไม้ในการตัดสินใจ โดยแบ่งข้อมูลออกเป็นส่วนย่อย ๆ ตามเงื่อนไขต่าง ๆ ที่ลดความไม่แน่นอนให้มากที่สุด สามารถใช้งานได้ทั้ง Classification และ Regression &lt;/p&gt;

&lt;p&gt;การเลือกแยกข้อมูลจะใช้เกณฑ์อย่าง Gini Impurity หรือ Entropy เพื่อหาค่าที่ดีที่สุดในการแบ่งข้อมูล&lt;/p&gt;

&lt;p&gt;Random Forest : เป็นการรวมโมเดล Decision Tree หลาย ๆ ต้นเข้าด้วยกัน (Ensemble Learning) แล้วใช้การโหวตจากหลายต้นไม้เพื่อลดความเอนเอียง (Bias) และความแปรปรวน (Variance)&lt;/p&gt;

&lt;p&gt;จะมีการสุ่มเลือก feature และ subset ของข้อมูล (Bootstrapping) เพื่อฝึกแต่ละต้นไม้ ทำให้ผลลัพธ์โดยรวมมีความเสถียรกว่า&lt;/p&gt;

&lt;p&gt;จุดเด่นของ Decision Tree:&lt;br&gt;
เข้าใจง่าย มองภาพการตัดสินใจเป็นขั้น ๆ ได้&lt;/p&gt;

&lt;p&gt;ทำงานได้ทั้งข้อมูลจำแนกประเภท (Classification) และตัวเลข (Regression)&lt;/p&gt;

&lt;p&gt;จุดเด่นของ Random Forest:&lt;br&gt;
รวมหลาย Decision Tree เข้าด้วยกัน ทำให้ลดการ Overfitting&lt;/p&gt;

&lt;p&gt;มีความแม่นยำสูง ใช้งานได้ในระบบจริง&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ตัวอย่างการใช้งานจริง&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;การแพทย์: ใช้ Random Forest เพื่อวิเคราะห์ความเสี่ยงโรคเรื้อรัง เช่น เบาหวาน หรือหัวใจ&lt;/p&gt;

&lt;p&gt;การเงิน: ใช้ Decision Tree สำหรับวิเคราะห์เครดิต หรืออนุมัติวงเงินกู้&lt;/p&gt;

&lt;p&gt;อีคอมเมิร์ซ: ใช้ Random Forest เพื่อสร้างระบบแนะนำสินค้า หรือวิเคราะห์โอกาสในการซื้อซ้ำ&lt;/p&gt;

&lt;p&gt;เกษตรกรรม: ใช้ Decision Tree เพื่อพยากรณ์ผลผลิตจากสภาพแวดล้อมและดิน&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;การเปรียบเทียบ Decision Tree และ Random Forest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3cg3rj3e8cr5814epa9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3cg3rj3e8cr5814epa9.png" alt="Image description" width="430" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;การเรียกใช้ไลบรารี ที่จำเป็นจาก scikit-learn&lt;/p&gt;

&lt;p&gt;load_iris() โหลดชุดข้อมูลดอกไม้ Iris&lt;/p&gt;

&lt;p&gt;DecisionTreeClassifier และ RandomForestClassifier ใช้สร้างโมเดล&lt;/p&gt;

&lt;p&gt;train_test_split() แบ่งข้อมูล&lt;/p&gt;

&lt;p&gt;accuracy_score() ใช้วัดความแม่นยำของโมเดล&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkb20gi1rusz8l37n4hh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkb20gi1rusz8l37n4hh.png" alt="Image description" width="701" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;แบ่งข้อมูลออกเป็น 70% สำหรับฝึก และ 30% สำหรับทดสอบ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjm6gejvvd6wvpf3q5lpf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjm6gejvvd6wvpf3q5lpf.png" alt="Image description" width="296" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;สร้าง Decision Tree และ ทำนาย&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo4rwn86rtyn7qdcd22p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo4rwn86rtyn7qdcd22p.png" alt="Image description" width="413" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;สร้าง Random Forest โดยใช้ต้นไม้ 100 ต้น&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y66a8gnpseyb5y7e0z4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y66a8gnpseyb5y7e0z4.png" alt="Image description" width="530" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;แสดงผลลัพธ์ความแม่นยำของทั้งสองโมเดล&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtrjf0wnkq1vta23p3pc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtrjf0wnkq1vta23p3pc.png" alt="Image description" width="712" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;หลังจากทดสอบ ข้อมูล Iris dataset และทำการทดสอบกับชุดข้อมูล X_test พบว่า ทั้งโมเดล Decision Tree และ Random Forest ให้ค่าความแม่นยำ (Accuracy) เท่ากับ 1.0 หรือ 100%&lt;br&gt;
นั่นหมายความว่าโมเดลสามารถทำนายข้อมูลในชุดทดสอบได้ถูกต้องทั้งหมด&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ตัวอย่างการประยุกต์ใช้งานจริง&lt;/strong&gt;&lt;br&gt;
ในตัวอย่างนี้ เราจะจำลองสถานการณ์ของเว็บไซต์ขายสินค้าออนไลน์ที่ต้องการทำนายว่าลูกค้าจะซื้อสินค้าหรือไม่จากพฤติกรรมการใช้งาน โดยใช้ขั้นตอนดังนี้:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 1:&lt;/strong&gt; เตรียมข้อมูลตัวอย่าง&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0jlf9xcysoi3codk683.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0jlf9xcysoi3codk683.png" alt="Image description" width="304" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 2:&lt;/strong&gt; แยกข้อมูลคุณลักษณะ (features) และผลลัพธ์ (target)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3gqdg8eqvtsy48z0k1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3gqdg8eqvtsy48z0k1f.png" alt="Image description" width="458" height="52"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 3:&lt;/strong&gt; สร้างโมเดล Random Forest &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdgu9p2qzp1m77iu9npz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdgu9p2qzp1m77iu9npz.png" alt="Image description" width="411" height="88"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ขั้นตอนที่ 4:&lt;/strong&gt; ทำนายลูกค้าใหม่&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzi6gay5ijb512wd5mce1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzi6gay5ijb512wd5mce1.png" alt="Image description" width="465" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ผลลัพธ์คือโมเดลจะทำนายว่าลูกค้าใหม่นั้นมีแนวโน้มจะซื้อหรือไม่ โดยอ้างอิงจากพฤติกรรมของลูกค้าคนก่อนหน้า (ซึ่งในกรณีโค้ดตัวอย่างนี้ผลลัพธ์การทำนาย คือ ไม่ซื้อ)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;สรุป&lt;/strong&gt;&lt;br&gt;
Decision Tree และ Random Forest เป็นเครื่องมือพื้นฐานที่มีประสิทธิภาพในการวิเคราะห์ข้อมูล และเหมาะสำหรับผู้เริ่มต้นศึกษา Machine Learning เนื่องจากเข้าใจง่ายและใช้งานได้หลากหลาย การเรียนรู้และทดลองด้วยโค้ดจริงจะช่วยให้เข้าใจแนวคิดเบื้องหลังของอัลกอริธึมเหล่านี้ได้ลึกซึ้งยิ่งขึ้น&lt;/p&gt;

&lt;p&gt;ในงานจริง การเลือกใช้ระหว่าง Decision Tree หรือ Random Forest ขึ้นอยู่กับวัตถุประสงค์ ความซับซ้อนของข้อมูล และความต้องการในการอธิบายผลลัพธ์ต่อผู้ใช้งาน เช่น:&lt;/p&gt;

&lt;p&gt;หากต้องการ "โมเดลที่ตีความง่าย" → ใช้ Decision Tree&lt;/p&gt;

&lt;p&gt;หากต้องการ "โมเดลที่แม่นยำสูงกว่า แม้ซับซ้อน" → ใช้ Random Forest&lt;/p&gt;

&lt;p&gt;ทุกคนสามารถลองสร้าง ลองทดสอบเล่นๆกันได้นะครับ 👏👏&lt;/p&gt;

&lt;p&gt;Reference&lt;br&gt;
&lt;a href="https://scikit-learn.org/stable/modules/tree.html" rel="noopener noreferrer"&gt;https://scikit-learn.org/stable/modules/tree.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://scikit-learn.org/stable/modules/ensemble.html#random-forests" rel="noopener noreferrer"&gt;https://scikit-learn.org/stable/modules/ensemble.html#random-forests&lt;/a&gt;&lt;br&gt;
&lt;a href="https://realpython.com/decision-tree-classifier-python/" rel="noopener noreferrer"&gt;https://realpython.com/decision-tree-classifier-python/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
