การจำแนกประเภท (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}")
การถดถอย (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}")
ผลลัพธ์จะแสดงค่าความคลาดเคลื่อนกำลังสองเฉลี่ย (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()
การประยุกต์ใช้เทคนิคการเรียนรู้ของเครื่องช่วยให้เราสามารถสร้างโมเดลที่มีประสิทธิภาพสำหรับ การจำแนกประเภท การถดถอย และ การจัดกลุ่มข้อมูล ได้ ในบทความนี้ เราได้แสดงตัวอย่างโค้ดพร้อมอธิบายผลลัพธ์สำหรับแต่ละประเภทของปัญหา ซึ่งจะช่วยให้เข้าใจหลักการทำงานของเทคนิคเหล่านี้ได้ดียิ่งขึ้น การเลือกใช้เทคนิคที่เหมาะสมจะขึ้นอยู่กับลักษณะของปัญหาและข้อมูลที่มีอยู่
อ้างอิง
https://www.geeksforgeeks.org/getting-started-with-classification/
https://realpython.com/k-means-clustering-python/
https://realpython.com/linear-regression-in-python/