У меня 5000 наблюдений, которые сгруппированы в 10 кластеров.Каждый кластер имеет 1000 истинных наблюдений.Наблюдения в реальной жизни 1000 в каждом кластере.Однако после того, как я запустил свой алгоритм кластеризации, он выглядит следующим образом:
Cluster #, true members, clustered members
0, 1000, 435
1, 1000, 234
2, 1000, 167
3, 1000, 654
4, 1000, 0
Другими словами, кластер 0 должен иметь 1000 членов, но из них только 435 правильно добавлены в этот кластер моим алгоритмом,Разница между 5000 и единицами в кластерах помещена в неправильный кластер.
Я хотел бы рассчитать коэффициент Джини и нашел следующий код:
def gini_ind(Number, Total):
return (1-(((Number/Total)**2)+(((Total-Number)/Total)**2)))
Кажетсяхорошо работать на тестах, которые я пробовал.Однако ни один из наборов данных, которые я нашел, не выглядел как мой.
Поэтому мой вопрос заключается в том, как рассчитать коэффициент Джини?
Если я сделаю следующее, я получу эти коэффициенты Джини для каждого кластера:
gini_ind(435,1000) -> 0.49155
gini_ind(234,1000) -> 0.3584
gini_ind(167,1000) -> 0.2782
gini_ind(654,1000) -> 0.4525
gini_ind(0,1000) -> 0
Это правильный коэффициент Джини для каждого из кластеров?
И получить средний коэффициент Джини;это просто среднее значение: (0,49155 + 0,3584 + 0,2782 + 0,4525 + 0) / 5?