(+84) 236.3827111 ex. 402

Thuật toán KNN_Phân loại điểm theo màu sắc


Phân loại điểm theo màu sắc

# Dữ liệu ban đầu: [x, y] và nhãn (0 = đỏ, 1 = xanh)

data = np.array([ [1, 2], [2, 3], [3, 1], [6, 5], [7, 7], [8, 6] ])

labels = np.array([0, 0, 0, 1, 1, 1])

code tham khảo:

import matplotlib.pyplot as plt

from sklearn.neighbors import KNeighborsClassifier

import numpy as np

# Dữ liệu ban đầu: [x, y] và nhãn (0 = đỏ, 1 = xanh)

data = np.array([

[1, 2], [2, 3], [3, 1], # Đỏ

[6, 5], [7, 7], [8, 6] # Xanh

])

labels = np.array([0, 0, 0, 1, 1, 1])

# Vẽ dữ liệu ban đầu

def plot_data(data, labels, newpoint=None, newlabel=None):

plt.figure(figsize=(6,6))

for i in range(len(data)):

if labels[i]==0: color='red'

else: color='green'

plt.scatter(data[i][0], data[i][1], c=color,s=100, edgecolor="k")

if newpoint is not None:

if newlabel==0: color='red'

else: color='green'

plt.scatter(newpoint[0], newpoint[1], c=color, s=200, edgecolor="blue", marker="X")

plt.xlim(0, 10)

plt.ylim(0, 10)

plt.grid(True)

plt.title('Phân loại điểm bằng KNN')

plt.xlabel('x')

plt.ylabel('y')

plt.show()

knn = KNeighborsClassifier(n_neighbors=3)

knn.fit(data, labels)

newpoint = np.array([[4, 4]])

# Dự đoán nhãn cho điểm mới

predicted = knn.predict(newpoint)

# Hiển thị biểu đồ với điểm mới

plot_data(data, labels, newpoint[0], predicted[0])