การเชื่อมต่อฐานข้อมูล MySQL กับ Weka


  • Import ARFF file
  • Import CSV file
  • เรียกใช้ข้อมูลที่อยู่ใน website  โดยระบุ URL ที่เก็บข้อมูล
  • Import ข้อมูลจากฐานข้อมูล

สำหรับ วันนี้จะอธิบายเกี่ยวกับการติดต่อฐานข้อมูล MySQL กับ Weka เพราะผู้ใช้งานส่วนใหญ่มักใช้ฐานข้อมูลในการเก็บข้อมูลอยู่แล้ว ซึ่งการ import data เข้า Weka โดยตรงจากฐานข้อมูลน่าจะสะดวกกว่าการแปลงข้อมูลให้อยู่ในรูปแบบ ARFF หรือ CSV file ค่ะ สำหรับขั้นตอนการ Import ข้อมูลจาก MySQL เข้าสู่ Weka สามารถทำได้ดังนี้ค่ะ
1.Download JDBC Driver สำหรับ MySQL (mysql-connector-java v5.1.10) และนำไปวางไว้กับ folder เดียวกับ weka.jar
 2.Download Properties file (DatabaseUtils.props) และนำไปวางไว้ที่ folder เดียวกับ weka.jar
 3.เปิด file DatabaseUtils.props และแก้ไขบรรทัดต่อไปนี้
# JDBC driver (comma-separated list)
jdbcDriver=com.mysql.jdbc.Driver
# database URL
jdbcURL=jdbc:mysql://localhost:3306/[ชื่อ database]
 4.เปิด file RunWeka.ini และแก้ไข “cp=%CLASSPATH%” เป็น
cp=%CLASSPATH%;mysql-connector-java-5.1.10-bin.jar
5.เปิดโปรแกรม Weka เพื่อเรียกใช้งาน จากนั้นเลือก Application เป็น Explorer และคลิกที่ OpenDB
6.
จะปรากฎหน้าต่าง SQL Viewer ให้คลิกที่ User… จากนั้นระบุ





  • Database URL เป็น jdbc:mysql://localhost:3306/[ชื่อ database]
  • Username และ Password ที่ใช้ login เพื่อใช้งาน MySQL
  • 7.Click ที่ปุ่ม Connect เพื่อทำการเชื่อมต่อกับฐานข้อมูล สังเกตว่าช่อง Info จะแสดงผลลัพธ์ของการเชื่อมต่อ
    8.ใส่คำสั่ง Query เพื่อทำการดึงข้อมูลจากฐานข้อมูลขึ้นมาแสดง จากนั้นกด Execute ผลลัพธ์ที่ได้จะแสดงในช่อง Result  สังเกตว่าในช่อง Info จะแสดงจำนวนผลลัพธ์ที่ทำการ Query ขึ้นมา สุดท้ายกดที่ปุ่ม OK เพื่อทำการ Import ข้อมูลดังกล่าวเข้า Weka ค่ะ
    9.ที่ หน้า Preprocess จะเห็นว่าข้อมูลที่ Import จาก MySQL จะมีหน้าตาเหมือนการ Import จาก ARFF หรือ CSV format ต่อจากนี้ไปก็สามารถใช้เทคนิค data mining ที่มีอยู่ใน Weka ทำการวิเคราะห์หรือสร้าง model ต่างๆ ได้แล้วค่ะ
    --> refer: http://open-miner.com/2010/02/07/import_mysql_weka/


    สามารถทำได้ครับ ผมขออธิบายเรื่องโปรแกรม Weka เพิ่มเติมสักนิดนะครับ โปรแกรม Weka เป็นโปรแกรมที่พัฒนาขึ้นมาจากภาษา Java และจะประกอบไปด้วย 4 ส่วนใหญ่ๆ คือ 

    1. Explorer 
    2. Expertmenter
    3. KnowledgeFlow 
    4. Simple CLI 

    ทั้ง 4 ส่วนนี้ ส่วนที่คนใช้เยอะคือส่วนของ Explorer ครับ ซึ่งคือส่วนของ GUI ที่ให้ user ทำการวิเคราะห์ข้อมูลด้วยเทคนิคทางด้าน data mining ได้ง่ายๆ ผ่านการคลิกๆ เมาส์นะครับ โดยจาก Explorer นี้ Weka ก็สามารถไปดึงข้อมูลจากฐานข้อมูล MySQL มาได้โดยอาศัย class JDBC ของ MySQL ครับ 
    อีกส่วนหนึ่งที่สำคัญแต่ user ส่วนใหญ่ไม่ค่อยได้เคยใช้คือ Simple CLI ครับส่วนนี้จะเป็นการเรียกใช้เทคนิคการวิเคราะห์ข้อมูลต่างๆ ผ่านทาง command line อาทิ เช่น DOS ใน Windows หรือ shell ใน Linux เป็นต้นครับ 

    เมื่อเราสามารถที่จะเรียก Weka ผ่านทาง command line ได้เราก็สามารถใช้ PHP มาเรียก Weka ผ่านทาง command line ได้เช่นกันครับ โดยใช้ คำสั่ง exec() หรือ system() ครับ ตรงนี้ก็จะช่วยตอบคำถามที่ว่าใช้ PHP กับ Weka ได้หรือไม่ครับ

    วิธีที่ง่ายที่สุดที่จะใช้ PHP+MySQL+Weka นะครับ คือ ใช้ PHP ดึงข้อมูลจาก MySQL แล้วนำข้อมูลที่ได้มาสร้างเป็นไฟล์ ARFF (ไฟล์ฟอร์แมตของ Weka ครับ) ให้ได้เสียก่อนหลังจากนั้นจึงไปเรียก Weka ผ่านทาง command line ครับ