В моих данных есть пользователи со списком лайков, я поместил эти лайки в отдельные файлы для каждого пользователя и хотел бы объединить их в группы.Все работает, за исключением того, что вывод имеет одинаковые лайки в нескольких кластерах.Я понимаю, что K-средства должны быть исключительными.Я полагаю, что проблема, возможно, в том, как я сбрасываю данные.Я также отбросил все лайки без пробелов, пока не смогу написать собственный токенизатор.Вот что я запускаю (из сценария ruby).
system("#{MAHOUT_CMD} seqdirectory -c UTF-8 -i data/users -o data/kmeans/converted")
system("#{MAHOUT_CMD} seq2sparse -i data/kmeans/converted -o data/kmeans/vectors")
system("#{MAHOUT_CMD} kmeans -i data/kmeans/vectors/tfidf-vectors -c data/kmeans/initial_clusters -o data/kmeans/kmeans_clusters -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -cd 0.1 -k 20 -x 20")
last_cluster_folder = Dir["data/kmeans/kmeans_clusters/*"].last.gsub("data/kmeans/kmeans_clusters/", "")
system("#{MAHOUT_CMD} clusterdump -s data/kmeans/kmeans_clusters/#{last_cluster_folder}/ -d data/kmeans/vectors/dictionary.file-0 -dt sequencefile -o data/kmeans/clusters.txt -n 1000")
В выводе перечислены «верхние термины» в каждом кластере, однако многие лайки происходят в каждом кластере (хотя и с разными весами).Является ли нормальный вывод для clusterdumper, мне нужно выяснить, к какому кластеру относится каждое слово по весу?
Спасибо