假设一个游客对要访问的城市一无所知,我想根据他关于城市的特征(如旅行预算、是否沿海、是否历史悠久、是否与家人同行等)推荐前10个城市。我的数据集包含每个城市的特征,例如:
- 意大利威尼斯(旅行预算=’5000’,是否沿海=1,是否历史悠久=1,是否与家人同行=1,…)
- 德国柏林(旅行预算=’6000’,是否历史悠久=1,是否沿海=0,是否与家人同行=1,…)。
我想知道基于游客的特征,推荐前10个值得访问的城市的最佳机器学习算法是什么。
回答:
正如@人名 所说,你可以从KNearestNeigbours开始
这个算法将允许你通过以下方式精确地实现你的目标:
n_cities_to_recommend = 10neigh = NearestNeighbors(2, radius=1.0) # 你需要在这里调整半径或者使用[scaler][2]将数据缩放到[0, 1]neigh.fit(cities)user_input = [budgetToTravel, isCoastel, isHistorical, withFamily, ...]neigh.kneighbors([user_input], n_cities_to_recommend, return_distance=False) # 这将返回城市中最接近的实体的ID