मैं लर्निंग एजेंट को लागू करने के लिए इस लाइब्रेरी का उपयोग कर रहा हूं ।
मैंने प्रशिक्षण मामलों को उत्पन्न किया है, लेकिन मुझे यकीन नहीं है कि सत्यापन और परीक्षण सेट क्या हैं।
शिक्षक कहते हैं:
70% ट्रेन मामले होने चाहिए, 10% परीक्षण मामले होंगे और बाकी 20% सत्यापन मामले होने चाहिए।
संपादित करें
मेरे पास प्रशिक्षण के लिए यह कोड है, लेकिन मुझे नहीं पता कि प्रशिक्षण कब रोकना है ।
def train(self, train, validation, N=0.3, M=0.1):
# N: learning rate
# M: momentum factor
accuracy = list()
while(True):
error = 0.0
for p in train:
input, target = p
self.update(input)
error = error + self.backPropagate(target, N, M)
print "validation"
total = 0
for p in validation:
input, target = p
output = self.update(input)
total += sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between target and output
accuracy.append(total)
print min(accuracy)
print sum(accuracy[-5:])/5
#if i % 100 == 0:
print 'error %-14f' % error
if ? < ?:
break
संपादित करें
मैं सत्यापन डेटा के साथ 0.2 की औसत त्रुटि प्राप्त कर सकता हूं, शायद 20 प्रशिक्षण पुनरावृत्तियों के बाद, वह 80% होनी चाहिए?
औसत त्रुटि = सत्यापन डेटा और सत्यापन डेटा के आकार को देखते हुए सत्यापन लक्ष्य और आउटपुट के बीच पूर्ण अंतर का योग।
1
avg error 0.520395
validation
0.246937882684
2
avg error 0.272367
validation
0.228832420879
3
avg error 0.249578
validation
0.216253590304
...
22
avg error 0.227753
validation
0.200239244714
23
avg error 0.227905
validation
0.199875013416