问题可能是您拥有的数据集太小。假设您有 10 个变量,每个变量有 10 个值的范围。这些变量有 10^10 种可能的配置。您的数据集不太可能有这么大,更不用说涵盖所有可能的配置了。诀窍是将变量缩小到最相关的变量,以避免这个巨大的潜在搜索空间。
第二个问题是某些变量组合可能比其他变量更重要。
J48 算法尝试使用树中每个级别的熵来找到最相关的变量。通过树的每条路径都可以被认为是一个 AND 条件:V1==a & V2==b ...
这涵盖了由于联合互动而产生的重要性。但是如果结果是 A&B&C 或 W&X&Y 的结果呢?J48 算法只会找到一个,并且当单独考虑时,它将是选择的第一个变量将具有最大整体意义的那个。
因此,要回答您的问题,您不仅需要找到一个涵盖“一般”人群中最常见变量配置的训练集,还需要找到一个能够忠实代表这些训练案例的算法。忠实的意思它通常适用于看不见的情况。
这不是一件容易的事。许多人和很多钱都参与了体育博彩。如果它像选择正确的训练集一样简单,那么您可以肯定它现在已经找到了。
编辑:
评论中询问了如何找到合适的算法。答案就像大海捞针一样。没有固定的规则。您可能很幸运并偶然发现了它,但在大型搜索空间中,您永远不会知道是否有。这与在非常复杂的搜索空间中找到最佳点是相同的问题。
一个短期的答案是
但这假设手头的数据在某种程度上没有偏见。
第二个陷阱是让测试结果偏向于您构建模型的方式。例如,尝试不同的模型参数,直到获得可接受的测试响应。使用 J48 不容易让这种偏见蔓延,但如果确实如此,那么您只是将您的测试集用作辅助训练集。
- 继续收集更多数据;尽可能长时间地测试。即使完成了上述所有操作,除非您可以观察其在未来案例中的表现,否则您仍然不会知道该算法有多有用。当看起来不错的模型开始表现不佳时,就该回到绘图板上了。
令人惊讶的是,有大量领域(主要是软科学)看不到用未来数据验证模型的必要性。但这是一个在别处讨论得更好的问题。
这可能不是您正在寻找的答案,但事情就是这样。
总之,
- 训练数据集应涵盖“重要”变量配置
- 您应该根据看不见的数据验证模型
识别(1)和做(2)是棘手的部分。没有可遵循的切干食谱。