KNeighborsClassifier()

该函数是sklearn库中KNN算法的实现函数. 引入方式:

from sklearn.neighbors import KNeighborsClassifier

原型是

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

参数解读:

  • n_neighbors:
    • int,默认是5
    • 也就是KNN中的K值
  • weights
    • 该参数在对样本分类的过程中使用
    • 默认是uniform,含义是所有neighbor权重相同,所以计算k个neighbor的分类,类似于投票机制, 每个neighbor的类别的权重都是1
    • distance:权重与距样本的距离成反比,如何某个neighbor与样本距离较近,那么该neighbor的类别对样本最终的分类影响较大
    • 用户自定义函数:该函数的输入是样本与K个nneighbor 的距离,返回是k个权重
  • algorithm
    • 算法是用来计算最近邻的
    • ball_tree:使用BallTree算法
    • kd_tree:使用KDTree算法
    • brute:使用暴力搜索
    • auto:程序根据输入的数据集自动选择样本
    • 注意:如果输入是稀疏矩阵,那么算法强制使用brute方式进行计算
  • leaf_size
    • 如果上述algorithm参数使用了Tree相关算法进行计算,这里就需要指定树的叶节点数量
    • 默认值是30
    • 这个参数会影响树的构建速度,neighbor查询速度,以及存储树的内存
  • metric
    • 距离度量方式,可以使用字符串指定,默认使用"minkowski"
    • 也可以使用具体的对象,sklearn库中有DistanceMetric class,可以构建相应的对象传入
  • p
    • minkowski距离度量方式的指数,如果p=1就是街市距离(曼哈顿距离),如果p=2就是欧式距离
  • metric_params
    • metric函数的参数
  • n_jobs
    • 默认是-1, 搜索neighbor过程中并行的job设置成cpu的核心数

results matching ""

    No results matching ""