gpt4 book ai didi

machine-learning - 如何使用 cosine_similarity 运行 KNN?

转载 作者:行者123 更新时间:2023-12-03 08:19:43 26 4
gpt4 key购买 nike

我尝试使用 KNN Classifier 运行 cosine_similarity,但没有成功。

from sklearn.metrics.pairwise import cosine_similarity
knn = KNeighborsClassifier(n_neighbors=10, metric=cosine_similarity).fit(x, y)

x 的形状(150 个样本,具有 4 个特征):

(150, 4)

y 的形状:

(150,)

我收到错误:

ValueError: Expected 2D array, got 1D array instead

我尝试使用 reshape(-1,1)rehsape(1,-1) reshape x 但没有成功。

如何使用 cosine_similarity 在此数据集(x 有 4 个特征)上运行 KNN 分类器

最佳答案

问题是余弦相似度仅由最近邻算法的强力变体支持。您有两个选择可以实现此目的:

选项 1:通过 algorithm='brute' 显式指定使用暴力算法:

from sklearn.datasets import make_classification
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.neighbors import KNeighborsClassifier


X, y = make_classification(n_samples=150, n_features=4, random_state=42)

knn = KNeighborsClassifier(n_neighbors=10, algorithm='brute', metric=cosine_similarity)
knn.fit(X, y)

选项 2:指定 metric='cosine',它将自动选择暴力算法:

from sklearn.datasets import make_classification
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.neighbors import KNeighborsClassifier


X, y = make_classification(n_samples=150, n_features=4, random_state=42)

knn = KNeighborsClassifier(n_neighbors=10, metric='cosine')
knn.fit(X, y)

如果您想了解有关不同最近邻算法的更多信息,可以引用 user guide .

关于machine-learning - 如何使用 cosine_similarity 运行 KNN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68233136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com