@@ -806,8 +806,9 @@ def flatten(seqs): return sum(seqs, [])
806
806
# Functions for testing learners on examples
807
807
808
808
809
- def test (predict , dataset , examples = None , verbose = 0 ):
809
+ def err_ratio (predict , dataset , examples = None , verbose = 0 ):
810
810
"""Return the proportion of the examples that are NOT correctly predicted."""
811
+ """verbose - 0: No output; 1: Output wrong; 2 (or greater): Output correct"""
811
812
if examples is None :
812
813
examples = dataset .examples
813
814
if len (examples ) == 0 :
@@ -826,6 +827,12 @@ def test(predict, dataset, examples=None, verbose=0):
826
827
return 1 - (right / len (examples ))
827
828
828
829
830
+ def grade_learner (predict , tests ):
831
+ """Grades the given learner based on how many tests it passes.
832
+ tests is a list with each element in the form: (values, output)."""
833
+ return mean (int (predict (X ) == y ) for X , y in tests )
834
+
835
+
829
836
def train_and_test (dataset , start , end ):
830
837
"""Reserve dataset.examples[start:end] for test; train on the remainder."""
831
838
start = int (start )
@@ -863,8 +870,8 @@ def cross_validation(learner, size, dataset, k=10, trials=1):
863
870
(fold + 1 ) * (n / k ))
864
871
dataset .examples = train_data
865
872
h = learner (dataset , size )
866
- fold_errT += test (h , dataset , train_data )
867
- fold_errV += test (h , dataset , val_data )
873
+ fold_errT += err_ratio (h , dataset , train_data )
874
+ fold_errV += err_ratio (h , dataset , val_data )
868
875
# Reverting back to original once test is completed
869
876
dataset .examples = examples
870
877
return fold_errT / k , fold_errV / k
@@ -908,16 +915,6 @@ def score(learner, size):
908
915
return [(size , mean ([score (learner , size ) for t in range (trials )]))
909
916
for size in sizes ]
910
917
911
-
912
- def grade_learner (predict , tests ):
913
- """Grades the given learner based on how many tests it passes.
914
- tests is a list with each element in the form: (values, output)."""
915
- correct = 0
916
- for t in tests :
917
- if predict (t [0 ]) == t [1 ]:
918
- correct += 1
919
- return correct
920
-
921
918
# ______________________________________________________________________________
922
919
# The rest of this file gives datasets for machine learning problems.
923
920
0 commit comments