Как установить p <1 в метрике Минковского в КНН? - PullRequest
0 голосов
/ 24 февраля 2019

Когда я пытаюсь определить значение p меньше 1 для метрики Минковского в алгоритме KNN, я сталкиваюсь с ошибкой ниже. Может ли кто-нибудь дать мне знать, как я могу настроить значение p меньше 1 для метрики Минковского

sc=StandardScaler()
p_kn =Pipeline([('sc',sc),('kn',KNeighborsClassifier())])
grid_kn={'kn__n_neighbors':np.arange(3,30),'kn__weights':['uniform','distance'],'kn__p':[1,2,0.5]}
KN=GridSearchCV(p_kn,grid_kn,'accuracy',cv=cv)
KN.fit(x,y)

Ошибка ниже значения

Ошибка значения: p должно быть больше единицы для метрики Минковского

1 Ответ

0 голосов
/ 24 февраля 2019

Вы не можете просто потому, что для p < 1 расстояние Минковского не является метрикой, следовательно, оно бесполезно для любого основанного на расстоянии классификатора, такого как kNN;из Википедия :

При p ≥ 1 расстояние Минковского является метрикой в ​​результате неравенства Минковского.Когда p <1, расстояние между (0,0) и (1,1) равно <code>2^(1 / p) > 2, но точка (0,1) находится на расстоянии 1 от обеих этих точек.Поскольку это нарушает неравенство треугольника, для p <1 это не метрика </strong>.

...