สร้างโมเดล ML สำหรับปัญหาต่างๆ เช่น การจำแนกประเภท, การถดถอย, และการจัดกลุ่ม

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

wightfall
PHP Full Member
PHP Full Member
โพสต์: 44
ลงทะเบียนเมื่อ: 22/04/2024 9:54 am

สร้างโมเดล ML สำหรับปัญหาต่างๆ เช่น การจำแนกประเภท, การถดถอย, และการจัดกลุ่ม

โพสต์ที่ยังไม่ได้อ่าน โดย wightfall »

การประยุกต์ใช้เทคนิคการเรียนรู้ของเครื่อง (Machine Learning) ได้รับความนิยมอย่างแพร่หลายในหลากหลายสาขาวิชา เนื่องจากความสามารถในการสร้างโมเดลที่สามารถจำแนกประเภท ทำนายค่า และจัดกลุ่มข้อมูลได้อย่างมีประสิทธิภาพ การประยุกต์ใช้เทคนิคเหล่านี้ช่วยให้องค์กรต่างๆ สามารถ วิเคราะห์ ข้อมูลขนาดใหญ่และซับซ้อนได้อย่างรวดเร็วและแม่นยำ ในบทความนี้ เราจะกล่าวถึงการสร้างโมเดล ML สำหรับปัญหาการจำแนกประเภท การถดถอย และ การจัดกลุ่ม พร้อมทั้งแสดงตัวอย่างโค้ดและอธิบายผลลัพธ์

การจำแนกประเภท (Classification)
การจำแนกประเภทเป็นกระบวนการในการกำหนดให้ข้อมูลอยู่ในหมวดหมู่หรือคลาสต่างๆ โดยอาศัยลักษณะเฉพาะของข้อมูลนั้น การจำแนกประเภทมีประโยชน์ในหลากหลายสถานการณ์ เช่น การตรวจจับอีเมลสแปม การวินิจฉัยโรค และการระบุรูปแบบการฉ้อโกง ในตัวอย่างต่อไปนี้ เราจะสร้างโมเดลเพื่อจำแนกประเภทดอกไม้จากข้อมูลคุณลักษณะต่างๆ

โค้ด: เลือกทั้งหมด

from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# โหลดข้อมูลดอกไม้ไอริส
iris = load_iris()
X = iris.data  # คุณลักษณะของดอกไม้
y = iris.target  # ประเภทของดอกไม้

# แบ่งข้อมูลออกเป็นชุดสำหรับฝึกสอนและทดสอบ
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# สร้างโมเดล KNN
knn = KNeighborsClassifier(n_neighbors=5)

# ฝึกสอนโมเดล
knn.fit(X_train, y_train)

# ทำนายผลบนชุดข้อมูลทดสอบ
y_pred = knn.predict(X_test)

# คำนวณค่าความแม่นยำ
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")
ในตัวอย่างนี้ เราใช้อัลกอริธึม K-Nearest Neighbors (KNN) เพื่อสร้างโมเดลจำแนกประเภทดอกไม้ไอริส โดยใช้ชุดข้อมูลมาตรฐานจาก scikit-learn ผลลัพธ์จะแสดงค่าความแม่นยำของโมเดลในการจำแนกประเภทดอกไม้บนชุดข้อมูลทดสอบ
การถดถอย (Regression)
การถดถอยเป็นเทคนิคที่ใช้ในการพยากรณ์ค่าต่อเนื่องจากข้อมูลคุณลักษณะต่างๆ การถดถอยมีประโยชน์ในหลายสถานการณ์ เช่น การคาดการณ์ราคาบ้าน การพยากรณ์ยอดขาย และการวิเคราะห์ความสัมพันธ์ระหว่างตัวแปรต่างๆ ในตัวอย่างต่อไปนี้ เราจะสร้างโมเดลเพื่อคาดการณ์ราคาบ้านจากข้อมูลคุณลักษณะต่างๆ

โค้ด: เลือกทั้งหมด

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

# โหลดข้อมูลราคาบ้านบอสตัน
boston = load_boston()
X = boston.data  # คุณลักษณะของบ้าน
y = boston.target  # ราคาบ้าน

# แบ่งข้อมูลออกเป็นชุดสำหรับฝึกสอนและทดสอบ
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# สร้างโมเดลถดถอยเชิงเส้น
linear_regression = LinearRegression()

# ฝึกสอนโมเดล
linear_regression.fit(X_train, y_train)

# ทำนายผลบนชุดข้อมูลทดสอบ
y_pred = linear_regression.predict(X_test)

# คำนวณค่าความคลาดเคลื่อนกำลังสองเฉลี่ย (MSE) และสัมประสิทธิ์การตัดสินใจ (R^2)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"MSE: {mse:.2f}, R^2: {r2:.2f}")
ในตัวอย่างนี้ เราใช้การถดถอยเชิงเส้น (Linear Regression) เพื่อสร้างโมเดลคาดการณ์ราคาบ้านที่บอสตัน โดยใช้ชุดข้อมูลมาตรฐานจาก scikit-learn

ผลลัพธ์จะแสดงค่าความคลาดเคลื่อนกำลังสองเฉลี่ย (Mean Squared Error - MSE) และสัมประสิทธิ์การตัดสินใจ (R^2) ของโมเดลในการคาดการณ์ราคาบ้านบนชุดข้อมูลทดสอบ
การจัดกลุ่ม (Clustering)
การจัดกลุ่มเป็นเทคนิคที่ใช้ในการแบ่งกลุ่มข้อมูลตามความคล้ายคลึงกันของคุณลักษณะต่างๆ การจัดกลุ่มมีประโยชน์ในหลายสถานการณ์ เช่น การแบ่งกลุ่มลูกค้า การวิเคราะห์ข้อมูลจราจรทางไกล และการตรวจจับการฉ้อโกงบัตรเครดิต ในตัวอย่างต่อไปนี้ เราจะสร้างโมเดลเพื่อจัดกลุ่มข้อมูลลูกค้าตามพฤติกรรมการใช้จ่าย

โค้ด: เลือกทั้งหมด

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# สร้างข้อมูลจำลอง
X, y = make_blobs(n_samples=500, centers=4, n_features=2, random_state=42)

# สร้างโมเดล K-Means
kmeans = KMeans(n_clusters=4, random_state=42)

# ฝึกสอนโมเดล
kmeans.fit(X)

# ได้ฉลากกลุ่มของแต่ละตัวอย่าง
labels = kmeans.labels_

# พล็อตผลลัพธ์
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.show()
ในตัวอย่างนี้ เราใช้อัลกอริธึม K-Means เพื่อสร้างโมเดลจัดกลุ่มข้อมูลลูกค้าจำลอง โดยใช้ฟังก์ชัน make_blobs จาก scikit-learn เพื่อสร้างข้อมูลจำลองที่มี 4 กลุ่ม ผลลัพธ์จะแสดงภาพการจัดกลุ่มข้อมูลโดยใช้สีแทนกลุ่มต่างๆ

การประยุกต์ใช้เทคนิคการเรียนรู้ของเครื่องช่วยให้เราสามารถสร้างโมเดลที่มีประสิทธิภาพสำหรับ การจำแนกประเภท การถดถอย และ การจัดกลุ่มข้อมูล ได้ ในบทความนี้ เราได้แสดงตัวอย่างโค้ดพร้อมอธิบายผลลัพธ์สำหรับแต่ละประเภทของปัญหา ซึ่งจะช่วยให้เข้าใจหลักการทำงานของเทคนิคเหล่านี้ได้ดียิ่งขึ้น การเลือกใช้เทคนิคที่เหมาะสมจะขึ้นอยู่กับลักษณะของปัญหาและข้อมูลที่มีอยู่

อ้างอิง
https://www.geeksforgeeks.org/getting-started-with-classification/
https://realpython.com/k-means-clustering-python/
https://realpython.com/linear-regression-in-python/

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 15