(一)K-近邻算法
1.示例引入
2.概念与计算公式
K最近邻(k-Nearest Neighbor,KNN)分类算法,为给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。
3.k值的选择
4.K-近邻算法的缺点与改进
计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
5.K-近邻算法的代码实现
详情请参考这位博主:在这里
使用kd树进行改进: kd树本质是一个二叉树。
kd树的构建:
选择方差较大的维度作为根节点的选择维度。如上例题,x的方差为9-2,y的方差为7-2,所以选择x作为根节点。之后,根据y轴进行划分。
补充:
(二)切比雪夫问题
(三)曼哈顿问题
(四)闵可夫斯基距离
(五)欧式距离
(六)线性回归