自组织映射Python-代码错误

自组织映射Python-代码错误,python,machine-learning,self-organizing-maps,Python,Machine Learning,Self Organizing Maps,我一直在使用代码为一个小数据集生成SOM。它产生了一个我无法理解的错误 from mvpa2.suite import * data = np.array( [[1,0,0,1,1,0,1,0,1,0], [1,0,0,0,1,0,1,0,1,1], [1,0,1,0,1,0,0,0,1,0], [0,1,1,1,0,1,0,1,0,0], [1,1,0,0,1,0,1,1,1,1], [0,0,1,0,1,1,0,1,0,0], [1,1,0,1,0,1,0,0,1,0],

我一直在使用代码为一个小数据集生成SOM。它产生了一个我无法理解的错误

from mvpa2.suite import *
data = np.array(
         [[1,0,0,1,1,0,1,0,1,0],
[1,0,0,0,1,0,1,0,1,1],
[1,0,1,0,1,0,0,0,1,0],
[0,1,1,1,0,1,0,1,0,0],
[1,1,0,0,1,0,1,1,1,1],
[0,0,1,0,1,1,0,1,0,0],
[1,1,0,1,0,1,0,0,1,0],
[1,0,0,0,1,0,1,1,1,1],
[0,1,1,0,1,0,1,0,0,0],
[1,1,0,1,0,1,0,1,1,0]])


data_names = \
        ['u1', 'u2', 'u3', 'u4',
         'u5', 'u6', 'u7', 'u8',
         'u9', 'u10']
som = SimpleSOMMapper((10, 10), 100, learning_rate=0.05)
som.train(data)
pl.imshow(som.K, origin='lower')
mapped = som(data)

pl.title('DATA SOM')

for i, m in enumerate(mapped):
    pl.text(m[1], m[0], data_names[i], ha='center', va='center',
           bbox=dict(facecolor='white', alpha=0.5, lw=0))
pl.show()
错误:

pl.imshow(som.K, origin='lower')
TypeError: Invalid dimensions for image data
理解这一点有什么帮助吗?

pl(pylab)告诉您,它不能显示编码为颜色的10维图像数据,不像pylab编码为rgb的3维图像数据

通过这段代码,我能够对数据进行集群,并生成合理的数据(见下文)

结果如下:

from mvpa2.suite import *
q = [[1,0,0,1,1,0,1,0,1,0], [1,0,0,0,1,0,1,0,1,1], [1,0,1,0,1,0,0,0,1,0], [0,1,1,1,0,1,0,1,0,0], [1,1,0,0,1,0,1,1,1,1], [0,0,1,0,1,1,0,1,0,0], [1,1,0,1,0,1,0,0,1,0], [1,0,0,0,1,0,1,1,1,1], [0,1,1,0,1,0,1,0,0,0], [1,1,0,1,0,1,0,1,1,0]]
q2 = []
for item in q:
    ri = []
    for x in item:
        ri.append(float(x))
    q2.append(ri)

data = np.array(q2)
data_names = ['u1', 'u2', 'u3', 'u4', 'u5', 'u6', 'u7', 'u8', 'u9', 'u10']
som = SimpleSOMMapper((10, 10), 100, learning_rate=0.05)
som.train(data)
mapped = som(data)

pl.title('DATA SOM')
pl.ylim([0,9])
pl.xlim([0,9])
for i, m in enumerate(mapped):
    print m[1],m[0],data_names[i]
    pl.text(m[1], m[0], data_names[i], ha='center', va='center',
           bbox=dict(facecolor='white', alpha=0.5, lw=0))
pl.savefig('b.png');