默认参数
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=1, n_neighbors=5, p=2,
weights='uniform')
网格搜索
更多的距离定义
- 向量空间余弦相似度
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个数据是异常值或离群值,模型就有很大问题
- 预测结果不具可解释性
为什么属于某个类别?
- 维数灾难
随着维度的增加,相近的两个点之间的距离越来越大
解决方法:降维