跟着Leo机器学习:sklearn之Nearest Neighbors
一个很有趣的个人博客,不信你来撩 fangzengye.com
1.6. Nearest Neighbors
sklearn框架

1.6.1. Unsupervised Nearest Neighbors
1.6.1.1. Finding the Nearest Neighbors
from sklearn.neighbors import NearestNeighbors import numpy as np X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit(X) distances, indices = nbrs.kneighbors(X)
indices
distances
输出
>>> indices array([[0, 1], [1, 0], [2, 1], [3, 4], [4, 3], [5, 4]]...)>>> distances
array([[0. , 1. ],
[0. , 1. ],
[0. , 1.41421356],
[0. , 1. ],
[0. , 1. ],
[0. , 1.41421356]])>>> nbrs.kneighbors_graph(X).toarray()
array([[1., 1., 0., 0., 0., 0.],
[1., 1., 0., 0., 0., 0.],
[0., 1., 1., 0., 0., 0.],
[0., 0., 0., 1., 1., 0.],
[0., 0., 0., 1., 1., 0.],
1.6.1.2. KDTree and BallTree Classes
clf = neighbors.KNeighborsClassifier(n_neighbors, weights=weights)
1.6.3. Nearest Neighbors Regression
knn = neighbors.KNeighborsRegressor(n_neighbors, weights=weights)
1.6.5. Nearest Centroid Classifier
from sklearn.neighbors import NearestCentroid import numpy as np X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) y = np.array([1, 1, 1, 2, 2, 2]) clf = NearestCentroid() clf.fit(X, y)
print(clf.predict([[-0.8, -1]]))
1.6.6. Nearest Neighbors Transformer
from sklearn.manifold import Isomap
from sklearn.neighbors import KNeighborsTransformer
from sklearn.pipeline import make_pipeline
estimator = make_pipeline(
KNeighborsTransformer(n_neighbors=5, mode='distance'),
Isomap(neighbors_algorithm='precomputed'),
memory='/path/to/cache')
1.6.7. Neighborhood Components Analysis
1.6.7.1. Classification
from sklearn.neighbors import (NeighborhoodComponentsAnalysis, KNeighborsClassifier) from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.pipeline import Pipeline X, y = load_iris(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.7, random_state=42) nca = NeighborhoodComponentsAnalysis(random_state=42) knn = KNeighborsClassifier(n_neighbors=3) nca_pipe = Pipeline([('nca', nca), ('knn', knn)]) nca_pipe.fit(X_train, y_train)
print(nca_pipe.score(X_test, y_test))
我的个人博客fangzengye.com, 欢迎来撩哦!
原文博主: 热衷开源的宝藏Boy
版权声明: 自由转载-非商用-禁止演绎-保持署名| CC BY-NC-ND 3.0
浙公网安备 33010602011771号