KNN 预测与 L1(曼哈顿距离)
KNN prediction with L1 (Manhattan distance)
我可以 运行 使用默认分类器(L2 - 欧氏距离)的 KNN 分类器:
def L2(trainx, trainy, testx):
from sklearn.neighbors import KNeighborsClassifier
# Create KNN Classifier
knn = KNeighborsClassifier(n_neighbors=1)
# Train the model using the training sets
knn.fit(trainx, trainy)
# Predict the response for test dataset
y_pred = knn.predict(testx)
return y_pred
但是,我想使用 L1(曼哈顿)距离作为我的距离函数。
以下内容无效(尽管我认为我是在遵循文档):
def L1(trainx, trainy, testx):
from sklearn.neighbors import NearestNeighbors
from sklearn.neighbors import DistanceMetric
dist = DistanceMetric.get_metric('manhattan')
# Create KNN Classifier
knn = NearestNeighbors(n_neighbors=1, metric=dist)
# Train the model using the training sets
knn.fit(trainx, trainy)
# Predict the response for test dataset
y_pred = knn.predict(testx)
return y_pred
NearestNeighbors没有predict(),我使用metric=dist也是错误的
我 want\need 使用 KNN 和曼哈顿距离函数进行预测。这可能吗?
指标必须作为字符串传递。
def L1(trainx, trainy, testx):
from sklearn.neighbors import KNeighborsClassifier
# Create KNN Classifier
knn = KNeighborsClassifier(n_neighbors=1, metric='manhattan')
# Train the model using the training sets
knn.fit(trainx, trainy)
# Predict the response for test dataset
y_pred = knn.predict(testx)
return y_pred
我可以 运行 使用默认分类器(L2 - 欧氏距离)的 KNN 分类器:
def L2(trainx, trainy, testx):
from sklearn.neighbors import KNeighborsClassifier
# Create KNN Classifier
knn = KNeighborsClassifier(n_neighbors=1)
# Train the model using the training sets
knn.fit(trainx, trainy)
# Predict the response for test dataset
y_pred = knn.predict(testx)
return y_pred
但是,我想使用 L1(曼哈顿)距离作为我的距离函数。
以下内容无效(尽管我认为我是在遵循文档):
def L1(trainx, trainy, testx):
from sklearn.neighbors import NearestNeighbors
from sklearn.neighbors import DistanceMetric
dist = DistanceMetric.get_metric('manhattan')
# Create KNN Classifier
knn = NearestNeighbors(n_neighbors=1, metric=dist)
# Train the model using the training sets
knn.fit(trainx, trainy)
# Predict the response for test dataset
y_pred = knn.predict(testx)
return y_pred
NearestNeighbors没有predict(),我使用metric=dist也是错误的
我 want\need 使用 KNN 和曼哈顿距离函数进行预测。这可能吗?
指标必须作为字符串传递。
def L1(trainx, trainy, testx):
from sklearn.neighbors import KNeighborsClassifier
# Create KNN Classifier
knn = KNeighborsClassifier(n_neighbors=1, metric='manhattan')
# Train the model using the training sets
knn.fit(trainx, trainy)
# Predict the response for test dataset
y_pred = knn.predict(testx)
return y_pred