默认参数

  1. KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
  2. metric_params=None, n_jobs=1, n_neighbors=5, p=2,
  3. weights='uniform')

网格搜索

灵活、简化语法。

更多的距离定义

https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.DistanceMetric.html#sklearn.neighbors.DistanceMetric

  • 向量空间余弦相似度 Cosine Similarity
  • 调整余玄相似度 Adjusted Cosine Similarity
  • 皮尔森相关系数 Pearson Correlatio
  • [x] Jaccard相似系数 Jaccard Coefficien

    KNN优点

  • [x] 简单

  • 可以解决多分类问题
  • 可以解决回归问题

KNN线性回归 https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsRegressor.html?highlight=kneighbor#sklearn.neighbors.KNeighborsRegressor

KNN缺点

  • 效率低下:m个样本,n个特征,时间复杂度为O(m*n)

优化:使用树结构:KD-Tree,Ball-Tree

  • 高度数据相关

如当K=3,就有2个数据是异常值或离群值,模型就有很大问题

  • 预测结果不具可解释性

为什么属于某个类别?

  • 维数灾难

随着维度的增加,相近的两个点之间的距离越来越大
解决方法:降维
image.png