Я хочу сравнить одну переменную в разных кластерах, используя гистограмму.
from collections import Counter
def plot_histogram(feature_values, cluster_assignment , labels):
histogram = Counter()
for cl in range(7):
for val in feature_values[cluster_assignment==cl]:
histogram[val] += 1
sorted_key_val_pairs = sorted(list(histogram.items()))
sorted_keys, sorted_vals = zip(*sorted_key_val_pairs)
plt.bar(range(len(sorted_keys)), sorted_vals)
plt.xticks(range(len(sorted_keys)), [labels[key] for key in sorted_keys])
plot_histogram(drug_data[:, 0], gmm_cluster_assignments, {-0.95197: '18-24', -0.07854: '25-34', 0.49788: '35-44',
1.09449: '45-54', 1.82213: '55-64', 2.59171: '65+'})
, где drug_data [:, 0] - это столбец, с которым я хочу сравнить массив
([0.49788, -0.07854, 0.49788, ..., -0.07854, -0.95197, -0.95197])
и gmm_cluster_assignments - это присвоение кластера
array ([5, 3, 3, ..., 2, 2, 1], dtype =int64)
Кроме того, я ввожу метки для числового столбца, с которым я хочу сравнить.В настоящее время мой код дает мне вывод, подобный этому:
Я хочу 6 разных баров (разных кластеров) для каждой категории.