如何 运行 KNN 与 cosine_similarity?
How to run KNN with cosine_similarity?
我正在尝试 运行 cosine_similarity
和 KNN Classifier
但没有成功。
from sklearn.metrics.pairwise import cosine_similarity
knn = KNeighborsClassifier(n_neighbors=10, metric=cosine_similarity).fit(x, y)
x 的形状(具有 4 个特征的 150 个样本):
(150, 4)
y 的形状:
(150,)
我遇到错误:
ValueError: Expected 2D array, got 1D array instead
我尝试用 reshape(-1,1)
或 rehsape(1,-1)
重塑 x
但没有成功。
我如何 运行 KNN Classifier
使用 cosine_similarity
在这个数据集上(x 有 4 个特征)?
问题在于余弦相似度仅由最近邻算法的强力变体支持。你有两个选择来完成这项工作:
选项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。
我正在尝试 运行 cosine_similarity
和 KNN Classifier
但没有成功。
from sklearn.metrics.pairwise import cosine_similarity
knn = KNeighborsClassifier(n_neighbors=10, metric=cosine_similarity).fit(x, y)
x 的形状(具有 4 个特征的 150 个样本):
(150, 4)
y 的形状:
(150,)
我遇到错误:
ValueError: Expected 2D array, got 1D array instead
我尝试用 reshape(-1,1)
或 rehsape(1,-1)
重塑 x
但没有成功。
我如何 运行 KNN Classifier
使用 cosine_similarity
在这个数据集上(x 有 4 个特征)?
问题在于余弦相似度仅由最近邻算法的强力变体支持。你有两个选择来完成这项工作:
选项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。