операнды нельзя было транслировать вместе с формами

Я использовал этот код, но он показывает мне ошибку. Помогите мне решить это.

som=MiniSom(x=10,y=10,input_len=15,sigma=1.0,learning_rate=0.5)
som.random_weights_init(x)

som.train_random(data=x,num_iteration=100)

from pylab import bone, pcolor, colorbar, plot, show
bone()

pcolor(som.distance_map().T)

colorbar()

markers = ['o', 's']
colors = ['r', 'g']

for i, x1 in enumerate(x):
    w = som.winner(x)
    plot(w[0] + 0.5,
         w[1] + 0.5,
         markers[y[i]],
         markeredgecolor = colors[y[i]],
         markerfacecolor = 'None',
         markersize = 10,
         markeredgewidth = 2)

show()

person user9451544    schedule 15.06.2019    source источник


Ответы (1)


Строку w = som.winner(x) следует заменить на w = som.winner(x1)

MiniSom.winner() вычисляет координаты нейрона-победителя для выборки x, где выборка x — это одна строка вашего набора данных, а имя соответствующей переменной в вашем коде — x1.

Вы выполняете итерацию x1 по строкам x, но все еще пытаетесь использовать переменную набора данных x с методом som.winner().

person Cesar    schedule 30.06.2019