Каков наилучший алгоритм обучения механической обработке в моей ситуации? - PullRequest
0 голосов
/ 27 февраля 2019

Предположим, что турист не имеет ни малейшего представления о городе для посещения, я хочу порекомендовать 10 лучших городов , основываясь на его характеристиках города (budgetToTravel, isCoastel, isHitorical, withFamily и т. Д.),Мой набор данных содержит функции для каждого города, например:

  1. Венеция Италия (budgetToTravel = '5000', isCoastel = 1, isHistorical = 1, withFamily = 1, ...)
  2. Берлин, Германия (BudgetToTravel = '6000', isHistorical = 1, isCoastel = 0, withFamily = 1, ...).

Я хочу знать лучший алгоритм машинного обучения, чтобы рекомендовать топ-10 городов для посещения на основе особенностей туриста.

Ответы [ 3 ]

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

k-означает, может быть полезно для вашей проблемы.K-NearestNeigbours не подходит, потому что это контролируемый алгоритм машинного обучения, вы должны дать некоторую метку (рейтинг одних городов), чтобы оценить другие.

0 голосов
/ 02 марта 2019

Вы можете использовать (неконтролируемый) алгоритм кластеризации, такой как Иерархическая кластеризация или Кластеризация K-средних, чтобы иметь кластеры по 10, а затем вы можете сопоставить особенности человека (туриста) с кластерами.

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

Как сказал Пьер С., вы можете начать с KNearestNeigbours

Этот алгоритм позволит вам делать именно то, что вы хотите, делая:

n_cities_to_recommend = 10
neigh = NearestNeighbors(2, radius=1.0) # you need to play with radius here o scale your data to [0, 1] with [scaler][2]
neigh.fit(cities)

user_input = [budgetToTravel, isCoastel, isHistorical, withFamily, ...]

neigh.kneighbors([user_input], n_cities_to_recommend, return_distance=False) # this will return you closest entities id's from cities
...