def f(): exit(0) haty = [isotron.lin_xyz(ux, uy, dot(w, x)) for x in X] print "Our squared error:", sum([(haty[i] - Y[i])**2 for i in range(m)]) / (1. * m) print "0's squared error:", sum([(Y[i])**2 for i in range(m)]) / (1. * m) S = zeros((n, n)) a = max(w) b = min(w) for i in range(n): for j in range(n): S[i][j] = (w[to_in(i, j)] - b) / (a - b) mms = "GraphPlot[{" sr = [] for i in range(n): for j in range(i): sr.append((S[i][j], chr(97 + i) + chr(97 + j))) if S[i][j] > 0.3: mms += chr(97 + i) + "->" + chr(97 + j) + "," sr.sort() res = "" for (x, ab) in sr: res += " " + ab print res mms = mms[:-1] mms += "},VertexLabeling->True]" #print mms for i in range(n): res = chr(97 + i) + " " sr = [] for j in range(n): sr.append((S[i][j], chr(97 + j))) sr.sort(reverse=True) for (x, b) in sr: res += " " + b print res # plt.plot(ux,uy) # plt.plot(ux,[2/(1+exp(-.04*x))-1 for x in ux],'r') # plt.show() return S
def f(): exit(0) haty = [isotron.lin_xyz(ux,uy,dot(w,x)) for x in X] print "Our squared error:",sum([(haty[i]-Y[i])**2 for i in range(m)])/(1.*m) print "0's squared error:",sum([(Y[i])**2 for i in range(m)])/(1.*m) S = zeros((n,n)) a = max(w) b = min(w) for i in range(n): for j in range(n): S[i][j]=(w[to_in(i,j)]-b)/(a-b) mms = "GraphPlot[{" sr = [] for i in range(n): for j in range(i): sr.append((S[i][j],chr(97+i)+chr(97+j))) if S[i][j]>0.3: mms+=chr(97+i)+"->"+chr(97+j)+"," sr.sort() res = "" for (x,ab) in sr: res += " "+ab print res mms=mms[:-1] mms+="},VertexLabeling->True]" #print mms for i in range(n): res = chr(97+i)+" " sr = [] for j in range(n): sr.append((S[i][j],chr(97+j))) sr.sort(reverse=True) for (x,b) in sr: res += " "+b print res # plt.plot(ux,uy) # plt.plot(ux,[2/(1+exp(-.04*x))-1 for x in ux],'r') # plt.show() return S
def compute_S(M): n = 26 m = 2*(26*26*27)/2 X = zeros((m,(n*(n+1))/2)) Y = zeros(m) r = 0 for i in range(n): for j in range(n): for k in range(j+1): X[r][to_in(i,j)]=1. X[r][to_in(i,k)]=-1. Y[r] = M[i][j][k] r+=1 X[r][to_in(i,j)]=-1. X[r][to_in(i,k)]=1. Y[r] = M[i][k][j] r+=1 (w,ux,uy)=isotron.isotron(X,Y,30) haty = [isotron.lin_xyz(ux,uy,dot(w,x)) for x in X] print "Our squared error:",sum([(haty[i]-Y[i])**2 for i in range(m)])/(1.*m) print "0's squared error:",sum([(Y[i])**2 for i in range(m)])/(1.*m) S = zeros((n,n)) a = max(w) b = min(w) for i in range(n): for j in range(n): S[i][j]=(w[to_in(i,j)]-b)/(a-b) sr = [] for i in range(n): for j in range(i): sr.append((S[i][j],chr(97+i)+chr(97+j))) sr.sort() res = "" for (x,ab) in sr: res += " "+ab print res return S
def compute_S(M): n = 26 m = 2 * (26 * 26 * 27) / 2 X = zeros((m, (n * (n + 1)) / 2)) Y = zeros(m) r = 0 for i in range(n): for j in range(n): for k in range(j + 1): X[r][to_in(i, j)] = 1. X[r][to_in(i, k)] = -1. Y[r] = M[i][j][k] r += 1 X[r][to_in(i, j)] = -1. X[r][to_in(i, k)] = 1. Y[r] = M[i][k][j] r += 1 (w, ux, uy) = isotron.isotron(X, Y, 30) haty = [isotron.lin_xyz(ux, uy, dot(w, x)) for x in X] print "Our squared error:", sum([(haty[i] - Y[i])**2 for i in range(m)]) / (1. * m) print "0's squared error:", sum([(Y[i])**2 for i in range(m)]) / (1. * m) S = zeros((n, n)) a = max(w) b = min(w) for i in range(n): for j in range(n): S[i][j] = (w[to_in(i, j)] - b) / (a - b) sr = [] for i in range(n): for j in range(i): sr.append((S[i][j], chr(97 + i) + chr(97 + j))) sr.sort() res = "" for (x, ab) in sr: res += " " + ab print res return S
def compute_S(M): n = 26 m = 2 * (26 * 26 * 27) / 2 X = zeros((m, (n * (n + 1)) / 2)) Y = zeros(m) r = 0 for i in range(n): for j in range(n): for k in range(j + 1): X[r][to_in(i, j)] = 1. X[r][to_in(i, k)] = -1. Y[r] = M[i][j][k] r += 1 X[r][to_in(i, j)] = -1. X[r][to_in(i, k)] = 1. Y[r] = M[i][k][j] r += 1 (w, ux, uy) = isotron.isotron(X, Y, 30) haty = [isotron.lin_xyz(ux, uy, dot(w, x)) for x in X] print "Our squared error:", sum([(haty[i] - Y[i])**2 for i in range(m)]) / (1. * m) print "0's squared error:", sum([(Y[i])**2 for i in range(m)]) / (1. * m) S = zeros((n, n)) a = max(w) b = min(w) for i in range(n): for j in range(n): S[i][j] = (w[to_in(i, j)] - b) / (a - b) mms = "GraphPlot[{" sr = [] for i in range(n): for j in range(i): sr.append((S[i][j], chr(97 + i) + chr(97 + j))) if S[i][j] > 0.3: mms += chr(97 + i) + "->" + chr(97 + j) + "," sr.sort() res = "" for (x, ab) in sr: res += " " + ab print res mms = mms[:-1] mms += "},VertexLabeling->True]" #print mms for i in range(n): res = chr(97 + i) + " " sr = [] for j in range(n): sr.append((S[i][j], chr(97 + j))) sr.sort(reverse=True) for (x, b) in sr: res += " " + b print res # plt.plot(ux,uy) # plt.plot(ux,[2/(1+exp(-.04*x))-1 for x in ux],'r') # plt.show() return S
def compute_S(M): n = 26 m = 2*(26*26*27)/2 X = zeros((m,(n*(n+1))/2)) Y = zeros(m) r = 0 for i in range(n): for j in range(n): for k in range(j+1): X[r][to_in(i,j)]=1. X[r][to_in(i,k)]=-1. Y[r] = M[i][j][k] r+=1 X[r][to_in(i,j)]=-1. X[r][to_in(i,k)]=1. Y[r] = M[i][k][j] r+=1 (w,ux,uy)=isotron.isotron(X,Y,30) haty = [isotron.lin_xyz(ux,uy,dot(w,x)) for x in X] print "Our squared error:",sum([(haty[i]-Y[i])**2 for i in range(m)])/(1.*m) print "0's squared error:",sum([(Y[i])**2 for i in range(m)])/(1.*m) S = zeros((n,n)) a = max(w) b = min(w) for i in range(n): for j in range(n): S[i][j]=(w[to_in(i,j)]-b)/(a-b) mms = "GraphPlot[{" sr = [] for i in range(n): for j in range(i): sr.append((S[i][j],chr(97+i)+chr(97+j))) if S[i][j]>0.3: mms+=chr(97+i)+"->"+chr(97+j)+"," sr.sort() res = "" for (x,ab) in sr: res += " "+ab print res mms=mms[:-1] mms+="},VertexLabeling->True]" #print mms for i in range(n): res = chr(97+i)+" " sr = [] for j in range(n): sr.append((S[i][j],chr(97+j))) sr.sort(reverse=True) for (x,b) in sr: res += " "+b print res # plt.plot(ux,uy) # plt.plot(ux,[2/(1+exp(-.04*x))-1 for x in ux],'r') # plt.show() return S