def model(self, param): """Метод для моделирования исходных данных""" if param[2] == "N": return distr.normal(param[0], param[1], param[3]) elif param[2] == "LN": return distr.logNormal(param[0], param[1], param[3]) elif param[2] == "R": return distr.uniform(param[0], param[1], param[3]) elif param[2] == "G": return distr.gamma(param[0], param[1], param[3]) elif param[2] == "BS": return distr.birnbaumSaunders(param[0], param[1], param[3]) elif param[2] == "P": return distr.pareto(param[0], param[1], param[3]) else: return 0
del nodeList centralities = { 'Degree' : centrality.degree(network), 'Betweenness' : centrality.betweenness(network), 'Closeness' : centrality.closeness(network) } centralities['Hybrid'] = centrality.hybrid( [centralities[name] for name in centralities] ) results = 0 print '' for trial in range(numTrials): thresholds = [] if distro == 'UNIFORM': thresholds = distribution.uniform(network) elif distro == 'NORMAL': thresholds = distribution.normal(network) elif distro == 'LONGTAIL': thresholds = distribution.longtail(network, 20) else: print '\nDistribution should be UNIFORM, NORMAL, or LONGTAIL' quit() for i in range(len(thresholds)): #print 'thresholds[' + str(i) + '] = ' + str(thresholds[i]) network[i]['threshold'] = thresholds[i] if results == 0: results = {budget:{method:[] for method in centralities} for budget in budgets}
# FRANCE if __name__ == '__main__': import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from network import NG,SOM,DSOM from distribution import uniform, normal, ring n = 8 epochs = 20000 N = 10000 np.random.seed(123) samples = uniform(n=N) print 'Neural Gas' np.random.seed(123) ng = NG((n,n,2)) ng.learn(samples,epochs) print 'Self-Organizing Map' np.random.seed(123) som = SOM((n,n,2)) som.learn(samples,epochs) print 'Dynamic Self-Organizing Map' np.random.seed(123) dsom = DSOM((n,n,2), elasticity=1.75) dsom.learn(samples,epochs) fig = plt.figure(figsize=(21,8))
if __name__ == '__main__': import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from network import SOM, DSOM from distribution import uniform, normal, ring size = 8 epochs = 10000 n = 10000 np.random.seed(12345) samples_1 = uniform(n=n, center=(0.25,0.25), scale=(0.2,0.2)) samples_2 = uniform(n=n, center=(0.25,0.75), scale=(0.2,0.2)) samples_3 = uniform(n=n, center=(0.75,0.25), scale=(0.2,0.2)) samples_4 = uniform(n=n, center=(0.75,0.75), scale=(0.2,0.2)) mag = 1000 s1 = np.array([0,0]) for x in range(0,mag): v = x/float(mag) b = np.array([v, np.sin(7*v)/5 + np.random.random_sample()/3+ 0.3]) s1 = np.row_stack((s1,b)) s2 = np.array([0,0]) for x in range(0,mag): v = x/float(mag) b = np.array([v, np.sin(7*(v+.1))/5 + np.random.random_sample()/3+ 0.3])
if __name__ == "__main__": import numpy as np import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt from network import NG, SOM, DSOM from distribution import uniform, normal, ring n = 8 epochs = 20000 N = 10000 np.random.seed(123) samples = uniform(n=N) print "Neural Gas" np.random.seed(123) ng = NG((n, n, 2)) ng.learn(samples, epochs) print "Self-Organizing Map" np.random.seed(123) som = SOM((n, n, 2)) som.learn(samples, epochs) print "Dynamic Self-Organizing Map" np.random.seed(123) dsom = DSOM((n, n, 2), elasticity=1.75) dsom.learn(samples, epochs) fig = plt.figure(figsize=(21, 8))
if __name__ == '__main__': import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from network import NG,SOM,DSOM from distribution import uniform, normal, ring size = 8 epochs = 20000 n = 10000 np.random.seed(12345) samples_1 = uniform(n=n, center=(0.25,0.25), scale=(0.25,0.25)) samples_2 = uniform(n=n, center=(0.75,0.75), scale=(0.25,0.25)) samples_3 = uniform(n=n, center=(0.25,0.75), scale=(0.25,0.25)) samples_4 = uniform(n=n, center=(0.75,0.25), scale=(0.25,0.25)) print 'Neural gas' np.random.seed(12345) ng = NG((size,size,2)) ng.learn([samples_1, samples_2, samples_3, samples_4], [2*epochs//8, 2*epochs//8, 2*epochs//8, 2*epochs//8]) print 'Self-Organizing Map' np.random.seed(12345) som = SOM((size,size,2)) som.learn([samples_1, samples_2, samples_3, samples_4],