使用最近的邻居获取没有目标变量的 3 个最近的邻居
Using nearest neighbours to fetch 3 closest neighbours without a target variable
我正在编写一个程序来为我的数据集中的每个数据点获取 3 个最近的邻居。我的数据集有 47 个特征,有 5000 行条目,没有目标变量。我正在使用这个 here 将我的整个数据集作为一个 numpy 数组。我正在开发以下代码,但似乎卡住了:
X = df.to_numpy()
from sklearn.neighbors import NearestNeighbors
def findsuccess(id):
nbrs = NearestNeighbors(n_neighbors=3)
nbrs.fit(X)
pred = nbrs.kneighbors(X,3)
for i in pred:
print "What should come here" ?? - I need to print my 3 neighbours here at this step
Post 这我想使用 findsuccess
函数来传递我正在寻找邻居的 id 并在 excel 中打印此列表。例如:
然后函数调用:# findsuccess(1234)
最终目标是从我的数据集中 id
1234 查看 3 个最近的邻居。最终目标是在这样的输出文件中打印这三个邻居:
id Neigh1 Neigh2 Neigh3
1234 1334 1444 1555
我认为 NearestNeighbors
的 kneighbors_graph
方法适合您。它 returns 1(如果特定点是 k 最近邻)或 0 矩阵。
>>> X = [[0], [3], [1]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(n_neighbors=2)
>>> neigh.fit(X)
NearestNeighbors(n_neighbors=2)
>>> A = neigh.kneighbors_graph(X)
>>> A.toarray()
array([[1., 0., 1.],
[0., 1., 1.],
[1., 0., 1.]])
你可以这样做:
from sklearn.neighbors import NearestNeighbors
X = df.to_numpy()
nbrs = NearestNeighbors(n_neighbors=3)
nbrs.fit(X)
def findsuccess(id):
neighbors_f_id = nbrs.kneighbors_graph([X[id]]).indices
print ('Neighbors of id', neighbors_f_id)
我正在编写一个程序来为我的数据集中的每个数据点获取 3 个最近的邻居。我的数据集有 47 个特征,有 5000 行条目,没有目标变量。我正在使用这个 here 将我的整个数据集作为一个 numpy 数组。我正在开发以下代码,但似乎卡住了:
X = df.to_numpy()
from sklearn.neighbors import NearestNeighbors
def findsuccess(id):
nbrs = NearestNeighbors(n_neighbors=3)
nbrs.fit(X)
pred = nbrs.kneighbors(X,3)
for i in pred:
print "What should come here" ?? - I need to print my 3 neighbours here at this step
Post 这我想使用 findsuccess
函数来传递我正在寻找邻居的 id 并在 excel 中打印此列表。例如:
然后函数调用:# findsuccess(1234)
最终目标是从我的数据集中 id
1234 查看 3 个最近的邻居。最终目标是在这样的输出文件中打印这三个邻居:
id Neigh1 Neigh2 Neigh3
1234 1334 1444 1555
我认为 NearestNeighbors
的 kneighbors_graph
方法适合您。它 returns 1(如果特定点是 k 最近邻)或 0 矩阵。
>>> X = [[0], [3], [1]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(n_neighbors=2)
>>> neigh.fit(X)
NearestNeighbors(n_neighbors=2)
>>> A = neigh.kneighbors_graph(X)
>>> A.toarray()
array([[1., 0., 1.],
[0., 1., 1.],
[1., 0., 1.]])
你可以这样做:
from sklearn.neighbors import NearestNeighbors
X = df.to_numpy()
nbrs = NearestNeighbors(n_neighbors=3)
nbrs.fit(X)
def findsuccess(id):
neighbors_f_id = nbrs.kneighbors_graph([X[id]]).indices
print ('Neighbors of id', neighbors_f_id)