No.6. 我们之前计算待预测点与训练数据集中的每个点的距离,使用的都是"欧拉距离",即下图中参数p为2时的情况;当这个参数p的值为1时,这个距离称之为"曼哈顿距离";这个带参数p的距离公式称之为"明可夫斯基距离",这里的参数p也是一个"超参数",我们同样可以寻找最佳参数p
将参数p添加到业务逻辑中:

从运行结果来看,考虑距离权重的情况下,使用欧拉距离,并选择k值为3会使准确性更高
No.7. 上面的参数寻找过程存在一个问题:有些参数之间存在关联,我们想要寻找更佳的参数p的话,weights参数的值就必须选择为"distance",否则传入的参数p就会无效,sklearn提供了一种更好的参数搜索方式——网格搜索"Grid Search"
No.8. 在使用Grid Search之前,首先要定义我们的参数
进行参数搜索:

从上面搜索的结果来看,在考虑距离权重,且用于距离计算的参数p为3,k值为3的情况下准确性更好
No.9. 搜索得到最佳参数之后,我们需要使用这些最佳参数所以对应的分类器,来对测试数据进行预测
查看预测的准确率:

No.10. Grid Search中还有一些其它的参数,"n_jobs"用于指定进行搜索使用的CPU核心数,该参数设置为-1时会使用CPU的所有核心;"verbose"用于显示搜索的过程,指定的数值越大,显示的信息越详细
