例如,我得到的是下表,这对于20岁以上的人来说只是一个粗略的分布
年龄人数
然后通过使用相同的数据集,我可以构建另一个“更好”的表。
年龄人数
事实上,我可以使用相同的数据集制作更多包含不同年龄范围组合的表格。
现在我想知道如何才能找到最好的组合。我们可以用来衡量组合是否良好的可能的“善良功能”可能遵循以下三个原则:
由于这个问题代表的情况足以描述某种特定问题,因此应该已经有了一些复杂的解决方案。但我找不到它们。有人可以提出一些建议吗?
我已经通过了一些分类算法,如PCA,k-mean或“基于最大熵算法”,但似乎它们过于笼统,无法通过遵循以上三个原则来解决这个特定问题。
答案 0 :(得分:0)
我会做以下事情:
构建评估函数:
double goodness(double firstThreshold, double bucketWidth, int numBuckets)
根据您的原则返回良好分数。然后,我会强制参数的多个组合,并选择具有最佳良好分数的组合。如果我们为每个参数尝试4-10个值,那么暴力就会起作用,并且可能会为截止值提供很好的整数。如果你想变得更复杂或运行得更快,你可以尝试其他搜索方法,如爬山,光束搜索或模拟退火,但我认为这可能对你的情况有点过分。