存在一组点(或项目,没关系)。每个点a
与集合中的其他点有特定距离。可以通过功能retrieve_dist(a, b)
检索距离。
这个问题是关于(在Python中)编程从该组点中选择一个点进行替换的算法。选择点:
i)必须与所有已经选择的点保持最大距离,同时要遵守(ii)中的要求
ii)在该计算中,样本中已经选择的点出现的次数必须承载重量。即选择频率更高的点应该更重。例如假设a
和b
已被选择(分别为100和10次)。然后,当要选择下一个点时,与a
的距离比其与b
的距离要重要得多,这与已经选择的样本中a
的出现频率一致。
我可以尝试的方法:
如果没有重量/频率,这将很容易实现。我可以做到:
distances = defaultdict(int)
for new_point in set_of_points:
for already_selected_point in selected_points:
distances[new_point] += retrieve_dist(new_point, already_selected_point)
然后,我按每个元组中的第二个条目对distances.items()
进行排序,然后将得到所需的项目进行选择。
但是,当已经选择的点的频率开始起作用时,我似乎无法解决这个问题。
专家可以帮忙吗?预先感谢。
答案 0 :(得分:0)
解决您的问题的方法是将new_model = tensorflow.keras.models.load_model('path_to_my_model.h5')
设为selected_points
,而不是list
。在这种情况下,每个新点与set
和a
(以及所有其他点)的比较次数已经达到发现的次数。
如果每个点通常被发现多次,则可以使用b
来提高性能,键为点,而值为每个点被选择的次数。在那种情况下,我认为您的算法将是
dict