KNN算法
什么是knn算法
分类/回归算法
给定一个训练数据集,对新的的输入实例,在训练数据集中找到与该实例最邻近的的K个实例,这K个实例的多数属于某个类,就把该实例分为这个类。即寻找最近的k个数据,推测新数据的分类。
算法原理
通用步骤
-
计算距离(常用欧几里得距离或马氏距离)
-
欧几里得距离
c=(x1−x2)2+(y1−y2)2 c=\sqrt{\left(x_{1}-x_{2}\right)^{2}+\left(y_{1}-y_{2}\right)^{2}} c=(x1−x2)2+(y1−y2)2 -
曼哈顿距离
c=∣x1−x2∣+∣y1−y2∣ c=\left|x_{1}-x_{2}\right|+\left|y_{1}-y_{2}\right| c=∣x1−x2∣+∣y1−y2∣ -
马氏距离
DM(x,y)=(x−y)TΣ−1(x−y) D_{M}(x, y)=\sqrt{(x-y)^{T} \Sigma^{-1}(x-y)} DM(x,y)=(x−y)TΣ−1(x−y)
-
-
特征归一
-
升序排列
-
取前k个
-
加权平均
xˉ=x1f1+x2f2+⋯+xnfnn \bar{x}=\frac{x_{1} f_{1}+x_{2} f_{2}+\cdots+x_{n} f_{n}}{n} xˉ=nx1f1+x2f2+⋯+xnfn
k的选取
- k太大:导致分类模糊
- k太小:受个例影响,波动较大
如何选取k
-
经验
-
均方根误差
RMSE=1N∑i=1n(Xobs,i−Xmodel ,i)2 R M S E=\sqrt{\frac{1}{N} \sum_{i=1}^{n}\left(X_{o b s, i}-X_{\text {model }, i}\right)^{2}} RMSE=N1i=1∑n(Xobs,i−Xmodel ,i)2 -
均方误差
MSE=∑ei2n M S E=\frac{\sum e_{i}^{2}}{n} MSE=n∑ei2
13万+

被折叠的 条评论
为什么被折叠?



