Created
September 17, 2009 06:45
-
-
Save anonymous/188381 to your computer and use it in GitHub Desktop.
Revisions
-
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,72 @@ #!/usr/bin/env python import urllib import math def p(str): print(str) def single_perception(): try: fi = urllib.urlopen("http://aoki2.si.gunma-u.ac.jp/R/lr.data") data = fi.read() except IOError: print("url can't open") return data2 = [] dd2 = data.split('\r') header = dd2.pop(0).split() for dd in dd2[1:]: dd3 = dd.split() if(len(dd3) < 3): continue #print dd3 dd3[0] = float(dd3[0]) / 1000 dd3[1] = float(dd3[1]) / 1000 dd3[2] = float(dd3[2]) data2.append(dd3) header = data2.pop(0) """p("header:"), p(header) p( data2 )""" def perception(x1,x2,a0,a1,a2): s = a0 + a1*x1 + a2*x2 o = math.exp(s)/(1+math.exp(s)) return o def deda0(data,a0,a1,a2): tmp_a = 0 for dd in data: (x1, x2, y) = dd tmp_a += y-perception(x1,x2,a0,a1,a2) return tmp_a def deda1(data,a0,a1,a2): tmp_a = 0 for dd in data: (x1, x2, y) = dd tmp_a += (y-perception(x1,x2,a0,a1,a2)) * x1 return tmp_a def deda2(data,a0,a1,a2): tmp_a = 0 for dd in data: (x1, x2, y) = dd tmp_a += (y-perception(x1,x2,a0,a1,a2)) * x2 return tmp_a a0 = 0.1 a1 = 0.1 a2 = 0.1 alpha = 0.1 for i in range(100000): a0 = a0 + alpha * deda0(data2,a0,a1,a2) a1 = a1 + alpha * deda1(data2,a0,a1,a2) a2 = a2 + alpha * deda2(data2,a0,a1,a2) p("a0,a1,a2=%f,%f,%f" % ( a0, a1, a2 )) if __name__ == "__main__": single_perception()