supervised machine learning results {predictor{error_measure for error_measure in error_measuresfor predictor in predict allfor sample in range(num_samples)prob random random(training [ if random random()<prob else for in range(train_size)test [ if random random()<prob else for in range(test_size)for predictor in predict allprediction predictor(trainingfor error_measure in error_measuresresults[predictor][error_measure+sumerror_measure(prediction,actualfor actual in test)/test_size print( "for training size {train_size}:"print(predictor\ ","\tjoin(error_measure __doc__ for error_measure in error_measures),sep="\ "for predictor in predict allprint( {predictor __doc__}""\tjoin("{ }format(results[predictor][error_measure]/num_samplesfor error_measure in error_measures),sep="\ " if __name__ ="__main__"test_no_inputs(exercise which predictor works best for low counts when the error is (asquared error (babsolute error (clog loss you may need to try this few times to make sure your answer is supported by the evidence does the difference from the other methods get more or less as the number of examples growexercise suggest some other predictions that only take the training data does your method do better than the given methodsa simple way to get other predictors is to vary the threshold of bounded averageor to change the pseodocounts of the laplace method (use other numbers instead of and version june