#format python import pyrobot.brain.psom as psom from pyrobot.brain.psom import vis MALE, FEMALE, SWAT, BMC, YES, NO = 0,1,0,1,1,0 ECON, CS, BIO, PSYCH, PHIL, WRITER, GENDER = .10, .25, .40, .55, .70, .85, 1.0 people =[ {"name":"lisa", "sex":FEMALE, "school":SWAT, "glasses":NO, "field":CS}, {"name":"doug", "sex":MALE, "school":BMC, "glasses":NO, "field":CS}, {"name":"wil", "sex":MALE, "school":BMC, "glasses":NO, "field":BIO}, {"name":"paul", "sex":MALE, "school":BMC, "glasses":YES, "field":BIO}, {"name":"anne", "sex":FEMALE, "school":BMC, "glasses":YES, "field":GENDER}, {"name":"karen", "sex":FEMALE, "school":BMC, "glasses":YES, "field":BIO}, {"name":"ted", "sex":MALE, "school":BMC, "glasses":YES, "field":BIO}, {"name":"rebekah", "sex":FEMALE, "school":BMC, "glasses":NO, "field":CS}, {"name":"mark", "sex":MALE, "school":SWAT, "glasses":YES, "field":ECON}, {"name":"geoff", "sex":MALE, "school":BMC, "glasses":YES, "field":CS}, {"name":"deepak", "sex":MALE, "school":BMC, "glasses":NO, "field":CS}, {"name":"rich", "sex":MALE, "school":SWAT, "glasses":YES, "field":CS}, {"name":"alan", "sex":MALE, "school":SWAT, "glasses":YES, "field":PHIL}, {"name":"jan", "sex":FEMALE, "school":BMC, "glasses":YES, "field":WRITER}, {"name":"rob", "sex":MALE, "school":BMC, "glasses":YES, "field":PSYCH} ] COLS = 4 ROWS = 3 MAXVALUE = 1 dataset = [] for person in people: dataset.append( (person["name"], person["sex"], person["school"], person["glasses"], person["field"]) ) mysom = vis.VisPsom(COLS, ROWS, dim=4, vis_vectortype = 'Hinton', opts=(MAXVALUE,)) mysom.init_training(0.02, 3, 100) # train: for i in range(30): for vector in dataset: name, data = vector[0], vector[1:] model = mysom.train( psom.vector(data) ) # add labels: for vector in dataset: name, data = vector[0], vector[1:] model = mysom.map( psom.vector(data) ) x, y = model.point.x, model.point.y mysom.add_label(x, y, label="\n" + name) mysom.win.mainloop()