Created
September 17, 2009 06:45
-
-
Save anonymous/188381 to your computer and use it in GitHub Desktop.
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 characters
#!/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() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment