我有一个训练有素的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个邻居-最好的方法是什么?