gpt4 book ai didi

machine-learning - 如何为机器学习和预测建立良好的训练数据集?

转载 作者:行者123 更新时间:2023-11-30 08:41:16 25 4
gpt4 key购买 nike

我有一个学校项目,要编写一个使用Weka工具进行足球(足球)比赛预测的程序。

由于算法已经存在(J48算法),因此我只需要数据。我找到了一个免费提供足球比赛数据的网站,并在Weka进行了尝试,但预测结果很糟糕,因此我认为我的数据结构不正确。

我需要从源中提取数据并以另一种方式对其进行格式化,以便为模型创建新的属性和类。是否有人知道有关如何正确创建用于机器学习预测的属性和类的课程/教程/指南?是否有一个标准描述了选择用于训练机器学习算法的数据集属性的最佳方法?这有什么办法?

这是我目前拥有的数据的示例:http://www.football-data.co.uk/mmz4281/1516/E0.csv

列的含义如下:http://www.football-data.co.uk/notes.txt

最佳答案

问题可能是您拥有的数据集太小。假设您有十个变量,每个变量的范围是10个值。这些变量有10 ^ 10种可能的配置。您的数据集不可能这么大,更不用说涵盖所有可能的配置了。诀窍是将变量缩小到最相关的变量,以避免潜在的巨大搜索空间。

第二个问题是变量的某些组合可能比其他组合更重要。

J48算法尝试使用树中每个级别的熵来找到最相关的变量。穿过树的每个路径都可以被视为与条件:V1 == a&V2 == b ...

这涵盖了由于联合互动而产生的意义。但是,如果结果是A&B&C或W&X&Y的结果呢? J48算法只会找到一个,它将是第一个选择的变量在单独考虑时具有最全面的意义的算法。

因此,要回答您的问题,您不仅需要找到一个涵盖“一般”总体中最常见的变量配置的训练集,还需要找到一个能够忠实地代表这些训练案例的算法。忠实的含义通常适用于未见过的案件。

这不是一件容易的事。体育博彩涉及很多人和很多钱。如果只要选择合适的训练集一样容易,那么您可以确定现在可以找到它。

编辑:

评论中有人问您如何找到合适的算法。答案与您在大海捞针中找到针头的方式相同。没有固定的规则。您可能很幸运并且偶然发现了它,但是在广阔的搜索空间中,您永远不会知道自己是否拥有它。这与在非常复杂的搜索空间中找到最佳点是相同的问题。

短期的答案是


考虑一下该算法真正可以完成的工作。 J48(和类似的)算法最适合用于分类,其中变量对结果的影响是众所周知的,并且遵循层次结构。花卉分类就是其中一个可能会出类拔萃的例子。
根据训练集检查模型。如果在训练集上效果不佳,那么在看不见数据的情况下,性能可能会很差。通常,您应该期望模型对训练的性能超过对看不见的数据的性能。
该算法需要用从未见过的数据进行测试。针对训练集进行测试,同时进行快速淘汰测试,可能会导致过度自信。
保留一些数据进行测试。 Weka提供了一种方法。最好的情况是在除一种情况下(其余方法)建立模型,然后查看模型在这些情况下的平均表现。


但这是假设手头的数据没有任何偏差。

第二个陷阱是让测试结果偏向于构建模型的方式,例如,尝试不同的模型参数,直到获得可接受的测试响应为止。使用J48,让这种偏差蔓延并不容易,但是如果这样做的话,您只是将测试集用作辅助训练集。


继续收集更多数据;测试越长越好。即使经过以上所有操作,您仍然不会知道该算法的实用性,除非您可以在以后的情况下观察其性能。当看起来好的模型开始表现不佳时,就该回到绘图板上了。


令人惊讶的是,有很多领域(大多数是在软科学领域)未能看到需要使用未来数据来验证模型的需求。但这是在其他地方更好讨论的问题。

这可能不是您要寻找的答案,但事实就是如此。

综上所述,


训练数据集应涵盖“重要”变量配置
您应该针对看不见的数据验证模型


识别(1)和执行(2)是棘手的位。没有可遵循的干法配方。

关于machine-learning - 如何为机器学习和预测建立良好的训练数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36179454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com