其他相关文章
DS&ML_关联分析笔记
DS&ML_分类算法笔记之支持自动机SVM模型
DS&ML_分类算法笔记之随机森林、梯度提升树、XGBoost模型
DS&ML_降维算法笔记之主成分分析PCA模型
DS&ML_分类算法笔记之朴素贝叶斯模型
DS&ML_聚类算法笔记之k-means模型
DS&ML_分类算法笔记之决策树模型
DS&ML_分类算法笔记之逻辑回归模型
对于k-近邻、KD-Tree模型的相关知识点的总结与整理
简单描述一下k-近邻的思想,KNN是什么?
思想:通过计算每个训练样例到待分类样品(待预测样例)的距离,取和待分类样品距离最近的K个训练样例,K个样品中哪个类别的训练样例占多数,则待分类样品就属于哪个类别(就是一个投票表决的过程 )。
K值的选取:先取一个较小的变量,再交叉验证法选择最优的K(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
数据的必要预处理:消除量纲的影响(避免发生数量级较大的变量有时“决定”距离数量级小的变量被“忽略”的情况)
- 归一化
将变量的大小映射到0-1之间:(X-Xmin)/(Xmax-Xmin) - 标准化
变量减去均值再除以标准差:(X-X均值)/std(X)
距离的计算
- 闵氏距离(由维度裂变为曼哈顿、欧式、切比雪夫距离)
- 对应Lp范数,p为参数
- 当维度等于1时候,其公式等价于曼哈顿距离。
- 维度等于2时候,其公式等价于欧式距离。
- 当维度大于2到无穷大时候,其公式等价于切比雪夫距离。
- 切比雪夫距离
- 欧氏距离只能直线走,而曼哈顿距离只能沿着划定的格子边缘走。而切比雪夫中说的距离则是两者的结合体(即可直线走,也可沿着格子走)。二个点之间的距离定义是其各坐标数值差绝对值的最大值。此距离中,加入了优化的成分,通过最值来定义距离。
- 欧式距离
- 度量两点之间的直线距离
- 对应L2-范数
- 曼哈顿距离
- 对应L1-范数
- 马氏距离
优点
- 适用于样本容量比较大的分类问题
- 效率较高
- 概念简单容易实现,可解释性强
- 与朴素贝叶斯一样支持“增量式训练”:只需要不断添加新的训练数据而不需要重复训练模型
缺点
- 对每一个个体的预测都是全局搜索,数据量特别大时计算量也会太大,影响效率
- 对于样本量分布不均衡的时候,会产生误分(重视多数类而忽视少数类)。
- 预测需要以来存储的训练数据集,存储成本较高
KD-Tree:高维平衡树–KNN的优化
kd树(K-dimension tree)是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。构造kd树相当于不断地用垂直于坐标轴的超平面将K维空间切分,构成一系列的K维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。利用kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量。(划分方法就是类似二分查找:给出一组数据:[9 1 4 7 2 5 0 3 8],先排序,然后以5为分界点,那么数据集就被划分为了左右两个“簇” [0 1 2 3 4]和[6 7 8 9]。因此,根本久没有必要进入第一个簇,可以直接进入第二个簇进行查找。把二分查找中的数据点换成k维数据点,这样的划分就变成了用超平面对k维空间的划分。空间划分就是对数据点进行分类,“挨得近”的数据点就在一个空间里面。)
核心就是中位数作为根,递归建树
使用KNN在树中查找
从根节点开始递归查找,若目标点当前维的坐标值小于切分点的坐标值,则移动到左子结点,否则移动到右子结点。直到子结点为叶结点为止
若到达叶节点则作为当前最优节点
- 回溯
- 若当前节点比当前最优更优,则更新当前最优节点
- 然后检查以最近距离为半径的圆是否和父节点的超平面相交.如果相交,可能在另一个子结点对应的区域内存在距离目标更近的点,移动到另一个子结点。接着,递归的进行最近邻搜索。如果不相交,向上回退
- 当回退到根结点时,搜索结束。最后的“当前最近点”即为x的最近邻点
复杂度O(根号n):一条边延展出去至多会与两个区域相交T(1)=O(1);T(n)=2+2*T(n/4);解出根号n
零碎的一些知识点积累
范数,是具有“长度”概念的函数,是矢量空间内的所有矢量赋予非零的正长度或大小。半范数可以为非零的矢量赋予零长度。
- 向量范数
- 1-范数
向量元素绝对值之和,matlab函数为norm(x,1) - 2-范数
向量各个元素平方和的1/2次方,即向量元素绝对值的平方和再开方。L2范数又称Euclidean范数或者Frobenius范数,matlab函数为norm(x,2) - -inf-范数
所有向量元素绝对值中的最大值,matlab调用函数norm(x, inf) - p-范数
向量元素绝对值的p次方和的1/p次幂,matlab调用函数norm(x, p)
- 1-范数
R语言class包:knn函数,k最近邻算法,欧式距离;kknn包,kknn函数,加权k最近邻算法,闵式距离(闵可夫斯基距离)
(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
visitor tracker