การใช้ Python จำแนกมะนาว ง่ายๆ
ในบทความนี้เราจะใช้ Python ร่วมกับไลบรารี
scikit-learn
เพื่อสร้างโมเดลที่สามารถจำแนกมะนาวจากข้อมูลคุณสมบัติที่มี เช่น น้ำหนักและขนาด โดยจะใช้โมเดล Logistic Regression ในการฝึกฝนและทำนายผล
ขั้นตอนที่ 1: ติดตั้งไลบรารีที่จำเป็น
ก่อนอื่นเราต้องติดตั้งไลบรารีที่จำเป็นในการทำงานนี้คือ
scikit-learn
ซึ่งเป็นไลบรารีสำหรับการเรียนรู้ของเครื่อง (Machine Learning) ที่นิยมใช้ในงานต่าง ๆ
!pip install scikit-learn
ขั้นตอนที่ 2: สร้างชุดข้อมูลตัวอย่าง
เราจะเริ่มต้นด้วยการสร้างข้อมูลตัวอย่างที่เกี่ยวกับคุณสมบัติของมะนาว เช่น น้ำหนักและขนาด เพื่อใช้เป็นข้อมูลในการฝึกโมเดล โดยที่ตัวแปร
X
จะเก็บคุณสมบัติของมะนาว (น้ำหนัก, ขนาด) และ
y
จะเป็นป้ายจำแนก (0 = มะนาว, 1 = ไม่มะนาว)
import numpy as np
# ตัวอย่างข้อมูล (น้ำหนัก, ขนาด)
X = np.array([[150, 6], [160, 6.5], [145, 6], [170, 7], [155, 6.2], [180, 7.2], [160, 6.4]])
# 0 = มะนาว, 1 = ไม่มะนาว
y = np.array([0, 0, 0, 1, 0, 1, 0])
Code language: PHP (php)
ขั้นตอนที่ 3: แบ่งข้อมูลเป็น training และ testing
เราจะแบ่งข้อมูลออกเป็นสองชุด คือ ชุดข้อมูลสำหรับฝึกฝน (training set) และชุดข้อมูลสำหรับทดสอบ (testing set) โดยใช้ฟังก์ชัน
train_test_split
จาก
scikit-learn
from sklearn.model_selection import train_test_split
# แบ่งข้อมูลเป็น training และ testing
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Code language: Python (python)
ขั้นตอนที่ 4: สร้างโมเดล Logistic Regression
จากนั้นเราจะสร้างโมเดล Logistic Regression ซึ่งเป็นโมเดลที่เหมาะสมกับการจำแนกประเภท (classification) เช่น การจำแนกมะนาวจากข้อมูลคุณสมบัติที่เรามี
from sklearn.linear_model import LogisticRegression
# สร้างโมเดล Logistic Regression
model = LogisticRegression()
Code language: Python (python)
ขั้นตอนที่ 5: ฝึกโมเดล
เราจะใช้ข้อมูล
X_train
และ
y_train
ในการฝึกโมเดล
# ฝึกโมเดล
model.fit(X_train, y_train)
Code language: Python (python)
ขั้นตอนที่ 6: ทำนายผลบนข้อมูลทดสอบ
หลังจากที่โมเดลถูกฝึกแล้ว เราจะนำข้อมูลจาก
X_test
มาทดสอบเพื่อให้โมเดลทำนายผล
from sklearn.metrics import accuracy_score
# ทำนายผลบนข้อมูลทดสอบ
y_pred = model.predict(X_test)
Code language: PHP (php)
ขั้นตอนที่ 7: ประเมินผลลัพธ์
หลังจากทำนายผล เราจะประเมินผลลัพธ์โดยใช้ความแม่นยำ (accuracy) ซึ่งเป็นเปอร์เซ็นต์ที่โมเดลทำนายถูกต้อง
# ประเมินผลลัพธ์
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
Code language: PHP (php)
ขั้นตอนที่ 8: ทำนายข้อมูลใหม่
สุดท้าย เราสามารถใช้โมเดลที่ได้ฝึกแล้วในการทำนายข้อมูลใหม่ เช่น ข้อมูลมะนาวที่มีน้ำหนัก 165 กรัมและขนาด 6.3 เซนติเมตร
# ทำนายข้อมูลใหม่
new_data = np.array([[165, 6.3]]) # น้ำหนัก 165, ขนาด 6.3
prediction = model.predict(new_data)
print("Prediction (0 = มะนาว, 1 = ไม่ใช้มะนาว):", prediction[0])
Code language: PHP (php)
ตัวอย่างโค้ดทั้งหมด
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# ขั้นตอนที่ 2: สร้างชุดข้อมูลตัวอย่าง (ตัวแปร X คือคุณสมบัติของมะนาว, y คือป้ายจำแนก)
# เช่น ขนาด, น้ำหนัก หรือ คุณสมบัติอื่น ๆ ของมะนาว
# ตัวอย่างข้อมูล (น้ำหนัก, ขนาด)
X = np.array([[150, 6], [160, 6.5], [145, 6], [170, 7], [155, 6.2], [180, 7.2], [160, 6.4]])
# 0 = มะนาว, 1 = ไม่มะนาว
y = np.array([0, 0, 0, 1, 0, 1, 0])
# ขั้นตอนที่ 3: แบ่งข้อมูลเป็น training และ testing
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# ขั้นตอนที่ 4: สร้างโมเดล Logistic Regression
model = LogisticRegression()
# ขั้นตอนที่ 5: ฝึกโมเดล
model.fit(X_train, y_train)
# ขั้นตอนที่ 6: ทำนายผลบนข้อมูลทดสอบ
y_pred = model.predict(X_test)
# ขั้นตอนที่ 7: ประเมินผลลัพธ์
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
# ขั้นตอนที่ 8: ทำนายข้อมูลใหม่ (ตัวอย่างมะนาวใหม่)
new_data = np.array([[165, 6.3]]) # น้ำหนัก 165, ขนาด 6.3
prediction = model.predict(new_data)
print("Prediction (0 = มะนาว, 1 = ไม่ใช้มะนาว):", prediction[0])
Code language: PHP (php)
สรุป
ด้วยการใช้โมเดล Logistic Regression เราสามารถสร้างระบบที่สามารถจำแนกมะนาวจากข้อมูลคุณสมบัติต่าง ๆ ได้อย่างมีประสิทธิภาพ และสามารถทำนายผลลัพธ์ของข้อมูลใหม่ได้ แม้ว่าข้อมูลตัวอย่างจะค่อนข้างจำกัดก็ตาม