1.简述一下KNN算法的原理
kNN算法称为K最近林分类算法。所谓k最近邻,就是最接近K的数据,用他们的最大特征结果来表示。
改算法设计3个主要因素:分类决策规则,距离与相似的衡量,k大小。
KNN做分类预测时,一般是选择多数表决法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类数的类别。而KNN做回归时,一般是选择平均法,即最近的K个样本的样本输出的平均值做为回归预测值。
对于距离的肚量,我们有很多距离肚量方法,但是最常用的是欧式距离。
k值得选择,过小则容易过拟合,过大则容易欠拟合,可以用交叉试验法去K值。
2.Knn算法优点和缺点?
优点:
1.思想简单,理论成熟,既可以用来做分类也可以用来做回归。
2.可以用于非线性分类。
3.训练时间复杂度为O(n);
4.准确度高,对数据没有假设,对离群值不敏感。
缺点:
1.计算量大;
2.样本不平衡问题(即有些类别的样本数量很多,而其他样本的数量很少)
3.需要大量内存。
3.不平衡样本可以给KNN预测结果造成哪些问题,有没有什么好的解决方式?
可能造成大数量的样本占多数,但是这类样本不接近目标样本。而数量小的这类样本很靠近目标样本。KNN不关心这个问题,他只关心哪类样本的数量最多,而不去把距离远近考虑在内。
改进方法:和该样本距离小的邻居权值大,远的权值小,有次讲距离远近因素也考虑在内,避免一个样本过大导致误判的情况。
4.为了解决KNN算法计算量过大问题,可以使用