Existe algum algoritmo de classificação que atribua um novo vetor de teste ao cluster de pontos cuja distância média é mínima?
Deixe-me escrever melhor: vamos imaginar que temos aglomerados de aponta cada. Para cada cluster k, calculo a média de todas as distâncias entre e , Onde é um ponto no cluster .
O ponto de teste é atribuído ao cluster com o mínimo dessas distâncias.
Você acha que esse é um algoritmo de classificação válido? Em teoria, se o cluster for "bem formado" como você tem após um mapeamento discriminante de pesca linear, poderemos ter uma boa precisão de classificação.
O que você acha desse algo? Eu tentei, mas o resultado é que a classificação é fortemente influenciada pelo cluster com o maior número de elementos.
def classify_avg_y_space(logging, y_train, y_tests, labels_indices):
my_labels=[]
distances=dict()
avg_dist=dict()
for key, value in labels_indices.items():
distances[key] = sk.metrics.pairwise.euclidean_distances(y_tests, y_train[value])
avg_dist[key]=np.average(distances[key], axis=1)
for index, value in enumerate(y_tests):
average_distances_test_cluster = { key : avg_dist[key][index] for key in labels_indices.keys() }
my_labels.append(min(average_distances_test_cluster, key=average_distances_test_cluster.get))
return my_labels
Respostas:
É uma boa idéia, mas tem uma falha importante - é muito sensível à disseminação dos dados.
Para esclarecer a questão, dadok clusters disjuntos C1,…,Ck , você pergunta se faz sentido classificar uma nova amostra x∗ de acordo com a regra
Observe que essa regra é realmente semelhante às regras que existem como algoritmos conhecidos, como que é de fato um dos vizinhos mais próximos, ou que é chamado , mas é usado pelo k-Means para atribuição de cluster e pode ser visto no LDA no caso em que a covariância subjacente matriz é a identidade (até escalar). (Observe que, em geral, o LDA também leva em consideração a forma [propagação + orientação] dos clusters).
sklearn
NearestCentroid
Em muitos casos, a regra proposta se comportará de maneira semelhante a
NearestCentroid
, especialmente se os clusters estiverem bem separados e tiverem variações semelhantes (nesse caso, acho que é possível limitar a distância média em termos da distância do centróide).No entanto, como calcula a média das distâncias em todos os pontos do cluster, ele é flagrantemente tendencioso em relação aos clusters de baixa variação. Eu acredito que é a verdadeira fonte do rótulo incorreto que você notou.
Para ilustrar esse efeito, podemos traçar o limite de decisão de nossos classificadores. Parcelas são descaradamente baseado em
sklearn
's exemplo .No gráfico anterior, eu gerei dois conjuntos de dados de diferentes distribuições normais. O violeta veio de e o amarelo veio de Então, cada ponto no espaço é colorido de acordo com a regra. A linha que separa as regiões é o limite da decisão. Existem 200 pontos no cluster violeta e 50 no cluster amarelo. As marcas do centróide de cada cluster. Observe que o cluster violeta não está alinhado com os eixos para enfatizar a diferença entre o LDA e o centróide mais próximo.
+
fonte