15.4 创建一个基于半径的最近邻分类器
问题描述
对于分类未知的观察值,根据一定距离范围内所有观察值的分类来确定其分类。
解决方案
使用RadiusNeighborsClassifier:
讨论
在KNN分类器中,观察值的分类是根据它的k个邻居的分类来预测的;而在不太常用的基于半径的最近邻分类器中,观察值的分类是根据某一半径r范围内所有观察值的分类来预测的。在scikit-learn中,RadiusNeighborsClassifier与KNeighborsClassifier很相似,除了两个参数。第一个参数是radius,在RadiusNeighborsClassifier中,我们需要指定一个半径来确定某个观察值能不能算作目标观察值的邻居。除非你有很充分的理由要把radius设为某个值,否则最好像对待其他的超参数一样在模型选择期间对它进行调整。第二个有用的参数是outlier_label,它用来指定如果一个观察值周围没有其他观察值在半径radius的范围内,这个观察值应该被标记为什么。这是一个有用的分辨界外点的方法。
本书评论