zoukankan      html  css  js  c++  java
  • sklearn—无监督最近邻

    无监督最近邻

    NearestNeighbors (最近邻)实现了 unsupervised nearest neighbors learning(无监督的最近邻学习)。 它为三种不同的最近邻算法提供统一的接口:BallTreeKDTree, 还有基于 sklearn.metrics.pairwise 的 brute-force 算法。算法的选择可通过关键字 'algorithm' 来控制, 并必须是 ['auto', 'ball_tree', 'kd_tree', 'brute'] 其中的一个。当默认值设置为 'auto' 时,算法会尝试从训练数据中确定最佳方法。有关上述每个选项的优缺点,参见 `Nearest Neighbor Algorithms`_ 。

    找到最近邻

    为了完成找到两组数据集中最近邻点的简单任务, 可以使用 sklearn.neighbors 中的无监督算法:

    X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
    # k个最近的点中包含自己
    nbrs = NearestNeighbors(n_neighbors=3, algorithm='ball_tree').fit(X)
    #n_neighbors 指定包括本样本在内距离本样本最近的 n 个点
    #algorithm   指定最临近算法
    distances,indices = nbrs.kneighbors(X)
    #distances len(X)*n_neighbors的向量,每一行表示距离本样本距离由小到大的样本的index
    #distances len(X)*n_neighbors的向量,每一行表示最邻近的n_neighbors个样本距离本样本点的距离
    # k个最近点的下标,按升序排列
    print(indices)
    print(distances)
    plt.figure()
    plt.scatter(X[:,0],X[:,1])
    plt.xlim(X[:,0].min()-1,X[:,0].max()+1)
    plt.ylim(X[:,1].min()-1,X[:,1].max()+1)
    plt.title("Unsupervised nearest neighbors")
    plt.show()

    当然KDtree和ball_tree在sklearn中还有单独的实现方式具体操作请看链接

    http://sklearn.apachecn.org/cn/0.19.0/modules/neighbors.html#unsupervised-neighbors1.6.1.2

    sklearn.neighbors.KNeighborsClassifier

    X = [[0], [1], [2], [3]]
    y = [0, 0, 1, 1]
    from sklearn.neighbors import KNeighborsClassifier
    neigh = KNeighborsClassifier(n_neighbors=3)
    neigh.fit(X, y)
    KNeighborsClassifier(...)
    print(neigh.predict([[1.1]]))
    
    print(neigh.predict_proba([[4]]))
  • 相关阅读:
    c#4.0泛型接口和泛型委托的协变和逆变
    编码解析
    SQL入门(2)
    SQL入门(1)补充
    ADO两种连接方式
    SQL入门(3)
    ADO中SqlCommand的三种执行
    Huffman编码
    IE8单独样式错乱
    从 button列表中获得 commandrgument值
  • 原文地址:https://www.cnblogs.com/crawer-1/p/8549203.html
Copyright © 2011-2022 走看看