平均距離が最小のポイントのクラスターに新しいテストベクトルを割り当てる分類アルゴリズムはありますか?
もっと上手に書いてみましょう:それぞれにポイントの個のクラスターがあるとしましょう。各クラスターkについて、x(0)とx(i)の間のすべての距離の平均を計算します。ここで、x(i)はクラスターk内の点です。
テストポイントは、このような距離が最小のクラスターに割り当てられます。
これは有効な分類アルゴリズムだと思いますか?理論的には、クラスターが線形フィッシング判別マッピング後のように「整形式」である場合、良好な分類精度が得られるはずです。
このアルゴをどう思いますか?私は試しましたが、その結果、分類は要素数が最大のクラスターに強く偏っています。
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