t-viSNE: Interactive Assessment and Interpretation of t-SNE Projections
https://doi.org/10.1109/TVCG.2020.2986996
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
468 B
18 lines
468 B
# first line: 100
|
|
def neighborhood_hit(X, y, k, selected=None):
|
|
# Add 1 to k because the nearest neighbor is always the point itself
|
|
k += 1
|
|
|
|
y = np.array(y)
|
|
|
|
knn = KNeighborsClassifier(n_neighbors=k)
|
|
knn.fit(X, y)
|
|
|
|
if selected:
|
|
X = X[selected, :]
|
|
|
|
neighbors = knn.kneighbors(X, return_distance=False)
|
|
|
|
score = np.mean((y[neighbors] == np.tile(y[selected].reshape((-1, 1)), k)).astype('uint8'))
|
|
|
|
return score
|
|
|