У меня есть обученная модель классификации KNN, которую я могу использовать для вывода 5 ближайших соседей (категорий продуктов) для любого заданного значения индекса (категории продуктов):
query_index = np.random.choice(df.shape[0])
distances, indices = model_knn.kneighbors(df.iloc[query_index, :].values.reshape(1, -1), n_neighbors = 6)
for i in range(0, len(distances.flatten())):
if i == 0:
print ('Recommendations for {0}:\n'.format(df.index[query_index]))
else:
print ('{0}: {1}, with distance of {2}'.format(i, df.index[indices.flatten()[i]], distances.flatten()[i]))
Мой исходный кадр данных представляет собой матрицу сстрока для каждой категории и столбец для каждого клиента, заполненные 1
и 0
, чтобы указать погоду, когда клиент совершил покупку в этой категории.У меня есть 40+ категорий.
Что я хотел бы сделать, так это создать 5 лучших соседей для каждой категории - что было бы лучшим способом сделать это?