KNN(K-Nearest-Neighbor)
KNN(K-Nearest-Neighbor)
模型介绍
KNN,K近邻算法,对于输入实例,从训练集中找到与其最邻近的K个实例,K实例的均值作为预测(回归模型),为监督模型。
KNN三要素
- K值
K值过小,可能导致过拟合;K值过大,可能导致欠拟合 - 距离计算方式
通常使用欧氏距离 - 决策函数
分类模型采用多数表决法,输出类别最多类;加权多数表决法,权重和距离成反比,输出最大权重的类别。
回归模型采用平均值法,输出K个近邻的均值;加权平均法,权重和距离成反比,计算均值时加权。
KNN特点
适用于样本容量较大的类域自动分类
对于样本不平衡问题,样本少的类别预测效果差
优点
- 既可以做分类模型,又可以做回归模型
- 可以天然解决多分类问题
- 非线性数据分类模型
- 训练时间复杂度比SVM低
- 准确率高,对异常点不敏感
不足
- 预测时计算量很大(KD树可以解决)
- 样本不平衡预测效果差(需要解决数据不均衡问题)
- 占用内存高
KD树(KNN寻找近邻优化)
KD-Tree从m个样本的n维特征中,分别计算n个特征值的方差,用方差最大的第k维特征作为根节点,选择中位数作为样本划分点,小于该值划分为左子树,大于等于划分右子树。