Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
#Генерация данных
import numpy as np
def create_data():
features = np.array(
[[2.88, 3.05], [3.1, 2.45], [3.05, 2.8], [2.9, 2.7], [2.75, 3.4],
[3.23, 2.9], [3.2, 3.75], [3.5, 2.9], [3.65, 3.6], [3.35, 3.3]])
labels = ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B']
return features, labels
plt.figure(figsize=(5, 5))
plt.xlim((2.4, 3.8))
plt.ylim((2.4, 3.8))
x_feature = list(map(lambda x: x[0], features)) # Возвращает значение х характеристики каждого
из данных
y_feature = list(map(lambda y: y[1], features))
plt.scatter(x_feature[:5], y_feature[:5], c="b") # Нарисуйте точки данных метки «А» на холсте
plt.scatter(x_feature[5:], y_feature[5:], c="g")
plt.scatter([3.18], [3.15], c="r", marker="x") # Координаты проверяемой точки: [3.1, 3.2]
for each_data in train_data: # Используйте евклидово расстояние для расчета сходства данных
d = d_eucledian((test_data, each_data)
distances = np.append(distances, d)
class_count = {}
for i in range(k): # Большинство голосов
vote_label = labels[sorted_distance_index[i]]
class_count[vote_label] = class_count.get(vote_label, 0) + 1
final_label = majority_voting(class_count)
return final_label, r
# Классификационный прогноз
test_data = np.array([3.18, 3.15])
final_label, r = knn_classify(test_data, features, labels, 5)
final_label
plt.figure(figsize=(5, 5))
plt.xlim((2.4, 3.8))
plt.ylim((2.4, 3.8))
x_feature = list(map(lambda x: x[0], features)) # Возвращает значение х характеристики каждого
из данных
y_feature = list(map(lambda y: y[1], features))
plt.scatter(x_feature[:5], y_feature[:5], c="b") # Нарисуйте точки данных метки «А» на холсте
plt.scatter(x_feature[5:], y_feature[5:], c="g")
plt.scatter([3.18], [3.15], c="r", marker="x") # Координаты проверяемой точки: [3.1, 3.2]
plt.plot(k_circle_x, k_circle_y)
# Интерактивный модуль
from ipywidgets import interact, fixed
interact(change_k, test_data=fixed(test_data),
features=fixed(features), k=[3, 5, 7, 9])
Это получаю!