fix: change couting iterations to couting updating
This commit is contained in:
parent
843cd726d6
commit
a6039216ca
@ -1,5 +1,5 @@
|
|||||||
# 26696.5 26399.0 27074.0
|
# 1063.0
|
||||||
# [1204.8199999999993, 3279.9473790382926, -17453.52050319462, 20734.836596930876, -19276.958435444365, -11703.66716416129, -29009.135804905836, 17108.712660770405, -11751.94058615113, -4730.670939823587, 15953.080371721595, -6169.31607964013, -10440.140127478617]
|
# [1092.2199999999993, 3051.922507549896, -15613.841537063543, 18802.99559498076, -17113.540540993912, -10687.976818076537, -26180.86407586591, 15575.121450136705, -10674.54133415231, -4220.047076038129, 14460.732130644228, -5803.682172610006, -9355.444131276588]
|
||||||
|
|
||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -10,6 +10,7 @@ class PLA():
|
|||||||
self.data = data
|
self.data = data
|
||||||
self.dim = len(self.data[0]['x'])
|
self.dim = len(self.data[0]['x'])
|
||||||
self.w = [0] * self.dim
|
self.w = [0] * self.dim
|
||||||
|
self.update_time = 0
|
||||||
|
|
||||||
def iterate(self):
|
def iterate(self):
|
||||||
'''
|
'''
|
||||||
@ -36,6 +37,7 @@ class PLA():
|
|||||||
Outputs:
|
Outputs:
|
||||||
None
|
None
|
||||||
'''
|
'''
|
||||||
|
self.update_time += 1
|
||||||
for i in range(self.dim):
|
for i in range(self.dim):
|
||||||
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
||||||
|
|
||||||
@ -99,18 +101,16 @@ if __name__ == '__main__':
|
|||||||
random.seed(datetime.now().timestamp())
|
random.seed(datetime.now().timestamp())
|
||||||
pla = PLA(data)
|
pla = PLA(data)
|
||||||
|
|
||||||
counter = 0
|
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
while 1:
|
while 1:
|
||||||
mistake = pla.iterate()
|
mistake = pla.iterate()
|
||||||
counter += 1
|
|
||||||
if mistake:
|
if mistake:
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
else:
|
else:
|
||||||
stopping_counter += 1
|
stopping_counter += 1
|
||||||
if stopping_counter == (5*len(data)):
|
if stopping_counter == (5*len(data)):
|
||||||
break
|
break
|
||||||
log.append(counter)
|
log.append(pla.update_time)
|
||||||
|
|
||||||
sorted_log = sorted(log)
|
sorted_log = sorted(log)
|
||||||
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# 25428.0 25891.5 26446.5
|
# 1033.0
|
||||||
# [1002.1399999999994, 223.21665372403237, -1291.848080071952, 1515.5600276924624, -1404.8070879687737, -887.5562485642265, -2129.790874533273, 1268.8912058979067, -893.1255882425288, -358.771941045434, 1161.2662431910446, -499.8519798398823, -806.2229919825804]
|
# [1002.1399999999994, 216.11291841429357, -1301.4167675562321, 1512.4649945244046, -1427.7817814479358, -886.1484075845601, -2140.768525926459, 1249.8721111462523, -897.899263501955, -351.5475838258068, 1145.923025081835, -480.0859819295738, -784.0335831624924]
|
||||||
|
|
||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -10,6 +10,7 @@ class PLA():
|
|||||||
self.data = data
|
self.data = data
|
||||||
self.dim = len(self.data[0]['x'])
|
self.dim = len(self.data[0]['x'])
|
||||||
self.w = [0] * self.dim
|
self.w = [0] * self.dim
|
||||||
|
self.update_time = 0
|
||||||
|
|
||||||
def iterate(self):
|
def iterate(self):
|
||||||
'''
|
'''
|
||||||
@ -36,6 +37,7 @@ class PLA():
|
|||||||
Outputs:
|
Outputs:
|
||||||
None
|
None
|
||||||
'''
|
'''
|
||||||
|
self.update_time += 1
|
||||||
for i in range(self.dim):
|
for i in range(self.dim):
|
||||||
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
||||||
|
|
||||||
@ -99,18 +101,16 @@ if __name__ == '__main__':
|
|||||||
random.seed(datetime.now().timestamp())
|
random.seed(datetime.now().timestamp())
|
||||||
pla = PLA(data)
|
pla = PLA(data)
|
||||||
|
|
||||||
counter = 0
|
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
while 1:
|
while 1:
|
||||||
mistake = pla.iterate()
|
mistake = pla.iterate()
|
||||||
counter += 1
|
|
||||||
if mistake:
|
if mistake:
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
else:
|
else:
|
||||||
stopping_counter += 1
|
stopping_counter += 1
|
||||||
if stopping_counter == (5*len(data)):
|
if stopping_counter == (5*len(data)):
|
||||||
break
|
break
|
||||||
log.append(counter)
|
log.append(pla.update_time)
|
||||||
|
|
||||||
sorted_log = sorted(log)
|
sorted_log = sorted(log)
|
||||||
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# 26184.0, 26893.0
|
# 1058.0
|
||||||
# [93, 271.62041274205694, -1299.0824702542302, 1581.364721945991, -1414.3324363288546, -921.8008924538738, -2246.111150883575, 1307.67736423112, -900.7139136505582, -357.75401412080953, 1239.9915965507037, -514.1026403861741, -799.7272198274563]
|
# [100, 259.3545730056009, -1512.3600819664614, 1716.1152938189734, -1672.818122897704, -970.519199560146, -2403.921658236915, 1394.6452345918879, -980.1711087815969, -389.09446341125613, 1270.5568919545074, -489.7829998466402, -814.814832351026]
|
||||||
|
|
||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -11,6 +11,7 @@ class PLA():
|
|||||||
self.dim = len(self.data[0]['x'])
|
self.dim = len(self.data[0]['x'])
|
||||||
self.w = [0] * self.dim
|
self.w = [0] * self.dim
|
||||||
self.choose = random.randint(0, len(self.data)-1)
|
self.choose = random.randint(0, len(self.data)-1)
|
||||||
|
self.update_time = 0
|
||||||
|
|
||||||
def iterate(self):
|
def iterate(self):
|
||||||
'''
|
'''
|
||||||
@ -41,6 +42,7 @@ class PLA():
|
|||||||
Outputs:
|
Outputs:
|
||||||
None
|
None
|
||||||
'''
|
'''
|
||||||
|
self.update_time += 1
|
||||||
for i in range(self.dim):
|
for i in range(self.dim):
|
||||||
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
||||||
|
|
||||||
@ -104,18 +106,16 @@ if __name__ == '__main__':
|
|||||||
random.seed(datetime.now().timestamp())
|
random.seed(datetime.now().timestamp())
|
||||||
pla = PLA(data)
|
pla = PLA(data)
|
||||||
|
|
||||||
counter = 0
|
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
while 1:
|
while 1:
|
||||||
mistake = pla.iterate()
|
mistake = pla.iterate()
|
||||||
counter += 1
|
|
||||||
if mistake:
|
if mistake:
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
else:
|
else:
|
||||||
stopping_counter += 1
|
stopping_counter += 1
|
||||||
if stopping_counter == (5*len(data)):
|
if stopping_counter == (5*len(data)):
|
||||||
break
|
break
|
||||||
log.append(counter)
|
log.append(pla.update_time)
|
||||||
|
|
||||||
sorted_log = sorted(log)
|
sorted_log = sorted(log)
|
||||||
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
||||||
|
|||||||
10
hw1/hw1_9.py
10
hw1/hw1_9.py
@ -1,5 +1,5 @@
|
|||||||
# 26744.0, 27177.0, 26982.0
|
# 1079.0
|
||||||
# [99, 289.36156150772626, -1438.5724638894396, 1665.4574907561664, -1563.7272899602135, -988.4793846879909, -2412.181094351847, 1355.672859940388, -948.9745573599807, -384.40018958384206, 1279.5203042150952, -537.1648580135336, -807.3189828731862]
|
# [95, 285.2487249980525, -1367.3418540080593, 1589.2052117825442, -1478.7323817564538, -955.6295924529131, -2320.962589901439, 1293.6714506433996, -906.717334545829, -367.70136429666866, 1229.4928486608778, -528.5489452376239, -769.5165085360281]
|
||||||
|
|
||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -10,6 +10,7 @@ class PLA():
|
|||||||
self.data = data
|
self.data = data
|
||||||
self.dim = len(self.data[0]['x'])
|
self.dim = len(self.data[0]['x'])
|
||||||
self.w = [0] * self.dim
|
self.w = [0] * self.dim
|
||||||
|
self.update_time = 0
|
||||||
|
|
||||||
def iterate(self):
|
def iterate(self):
|
||||||
'''
|
'''
|
||||||
@ -36,6 +37,7 @@ class PLA():
|
|||||||
Outputs:
|
Outputs:
|
||||||
None
|
None
|
||||||
'''
|
'''
|
||||||
|
self.update_time += 1
|
||||||
for i in range(self.dim):
|
for i in range(self.dim):
|
||||||
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
self.w[i] = self.w[i] + self.data[index]['y'] * self.data[index]['x'][i]
|
||||||
|
|
||||||
@ -99,18 +101,16 @@ if __name__ == '__main__':
|
|||||||
random.seed(datetime.now().timestamp())
|
random.seed(datetime.now().timestamp())
|
||||||
pla = PLA(data)
|
pla = PLA(data)
|
||||||
|
|
||||||
counter = 0
|
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
while 1:
|
while 1:
|
||||||
mistake = pla.iterate()
|
mistake = pla.iterate()
|
||||||
counter += 1
|
|
||||||
if mistake:
|
if mistake:
|
||||||
stopping_counter = 0
|
stopping_counter = 0
|
||||||
else:
|
else:
|
||||||
stopping_counter += 1
|
stopping_counter += 1
|
||||||
if stopping_counter == (5*len(data)):
|
if stopping_counter == (5*len(data)):
|
||||||
break
|
break
|
||||||
log.append(counter)
|
log.append(pla.update_time)
|
||||||
|
|
||||||
sorted_log = sorted(log)
|
sorted_log = sorted(log)
|
||||||
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
print("medium: {}".format((sorted_log[499]+sorted_log[500])/2))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user