Алгоритм поиска кластеров с использованием конкурентных сетей - PullRequest
0 голосов
/ 24 октября 2018

ниже приложен алгоритм, который я реализую.(это хорошо известный алгоритм для конкурентного обучения)

Algorithm

это для кластеризации данных радужной оболочки с использованием конкурентного обучения (нейронная сеть).Я написал алгоритм для выше.но это не кластеризует данные точно.в большинстве случаев он группирует данные для 1-го кластера набора данных.Я пробовал с разными темпами обучения и взаимодействиями, но не могу улучшить точность.я сделал какую-то ошибку при написании вышеуказанного алгоритма?если нет, что я должен сделать, чтобы улучшить кластеризацию с помощью этого алгоритма?

#initialize wights randomly ( used 3 neurons as there are 3 clusters,4 variables )
W = np.random.rand(3,4)

#Weights normalization 
W = preprocessing.normalize(W)

#Normalize X
X = np.matrix(preprocessing.normalize(X))


t =[]
for i in range(len(X)):
    for j in range(1,500):
        wx = np.argmax(np.dot(W,X[i].getT()))
        #update winner neuron
        W[wx:] = W[wx:]+0.3*(X[i]-W[wx:])
        W = preprocessing.normalize(W)
    t.append(wx)
    #print(wx)
print(W)
...