data_set_copy=list(data_set)
whilelen(train_set)best_prob:
best_label=class_val
best_prob=probability
returnbest_label
定义准确性评估函数,在测试数据上评估分类器的准确率。
In[9]:defget_predictions(summaries,test_set):
predictions=[]
foriinrange(len(test_set)):
result=predict(summaries,test_set[i])
(result)
returnpredictions
defget_accuracy(predictions,test_set):
correct=0
forxinrange(len(test_set)):
iftest_set[x][-1]==predictions[x]:
correct +=1
return(correct/float(len(test_set)))*100.0
定义main函数,通过运行main函数,进行分类器的训练和在测试数据集上的准确率评估。
In[10]:defmain():
filename=''
split_ratio=0.67
data_set=load_csv_file(filename)
train_set,test_set=split_data_set(data_set,spli
t_ratio)
print('Split%srowsintotrainset=%sandtest
set=%srows'%(len(data_set),len(train_
set),len(test_set)))
summaries=summarize_by_class(train_set)
predictions=get_predictions(summaries,test_set)
accuracy=get_accuracy(predictions,test_set)
print('Accuracy:%s'%accuracy
In[11]:main()
最终可以看到,在测试集上,分类器的准确率大概是73%(图4-4)。
图4-4 准确率