2015-11-23 2 views
0

Я использую алгоритм kNN для классификации. В weka они предоставили различные настройки параметров для kNN. Я заинтересован, чтобы узнать о расстоянии.Подробные данные Weka IBk (distanceWeighting, meanSquared)

В поле distanceWeight у нас есть три значения (без взвешивания, вес на 1/расстояние и вес на 1-е расстояние). Каковы эти ценности и каково их влияние?

Может кто-то пожалуйста, expalin меня? :)

+1

Этого вопроса о кластеризации и Knn, вы можете рассмотреть возможность добавления этих тегов – lanenok

ответ

0

Если вы используете «без взвешивания расстояний», то прогнозируемое значение для ваших точек данных является средним значением для всех k-соседей. Например

# if values_of_3_neigbors = 4, 5, 6 
# then predicted_value = (4+5+6)/3 = 5 

В 1/расстояние взвешивания, вес каждого neigbor обратно пропорциональна расстоянию до него. Идея такова: чем ближе сосед, тем больше она влияет на прогнозируемую ценность. Например,

# distance_to_3_neigbors = 1,3,5 
# weights_of_neighbors = 1/1, 1/3, 1/5 # sum = 1 + 0.33 + 0.2 = 1.53 
# normalized_weights_of_neighbors = 1/1.53, 0.33/1.53, 0.2/1.53 = 0.654, 0.216, 0.131 
# then predicted_values = 4*0.654 + 5*0.216 + 6*0.131 = 4.48 

Для 1-го расстояния это похоже. Это применимо только тогда, когда все ваши расстояния находятся в диапазоне [0,1].

Надеется, что это помогает

+0

мы можем проверить это 3 значение при к = 1? Или k> 1 использовать 1/расстояние взвешивания и 1-расстояние взвешивания? :) –

+0

Для k = 1 вы считаете только 1 сосед, поэтому взвешивание расстояний не имеет смысла. Если вы используете _some_, единственный эффект может немного замедлить ваш код – lanenok

+0

, можете ли вы рассказать мне идеальное значение K для начала? :) –

 Смежные вопросы

  • Нет связанных вопросов^_^