- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个学校项目,要编写一个使用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/
简介 在上一篇文章《机器学习:神经网络构建(上)》中讨论了线性层、激活函数以及损失函数层的构建方式,本节中将进一步讨论网络构建方式,并完整的搭建一个简单的分类器网络。 目录 网络Netwo
简介 在本篇文章中,我们采用逻辑回归作为案例,探索神经网络的构建方式。文章详细阐述了神经网络中层结构的实现过程,并提供了线性层、激活函数以及损失函数的定义(实现方法)。 目录 背景介绍
简介 在前两篇文章中,我们详细探讨了如何利用采样数据来估计回归曲线。接下来,在本节中,我们将深入讨论如何处理分类问题。 章节安排 背景介绍 数学方法 程序实现 背景介绍 线
简介 在上一篇文章《机器学习:线性回归(上)》中讨论了二维数据下的线性回归及求解方法,本节中我们将进一步的将其推广至高维情形。 章节安排 背景介绍 最小二乘法 梯度下降法 程序
PyCaret是一个开源、低代码Python机器学习库,能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,极大地加快了实验周期,提高了工作效率。PyCaret本质上是围绕几个机器学习
在我的研究进展中,我现在已经将寄生虫从图像中分离出来。寄生虫看起来像蠕虫。我希望 MATLAB 读取所有输入图像,查找类似深紫色图像的蠕虫,如果检测到,则给出检测到的答复。我尝试使用直方图比较,但我认
目前我正在尝试了解机器学习算法的工作方式,但我没有真正了解的一件事是预测标签的计算准确度与视觉混淆矩阵之间的明显差异。我会尽量解释清楚。 这是数据集的片段(这里你可以看到 9 个样本(在真实数据集中大
第一章 绪论 机器学习 : 致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中, “经验” 通常以“数据“形式存在,因此,机器学习所研究的主要内容,是关于在计算
1. 算法原理(K-Nearest Neighbor) 本质是通过距离判断两个样本是否相似,如果距离够近就认为他们足够相似属于同一类别 找到离其最近的 k 个样本,并将这些样本称
前言 K-means是一种经典的无监督学习算法,用于对数据进行聚类。K-means算法将数据集视为具有n个特征的n维空间,并尝试通过最小化簇内平方误差的总和来将数据点划分为簇。本文将介绍K-m
目录 前言 介绍LightGBM LightGBM的背景和起源 L
前言 可以说掌握了机器学习,你就具备了与机器对话,充分利用机器为人类服务的能力。在人工智能时代,这将成为一项必备技能,就好比十年前你是编程大牛,二十年前你英语超好一样。因此,无论你是什么专业的
几个贯穿始终的概念 当我们把人类学习简单事物的过程抽象为几个阶段,再将这些阶段通过不同的方法具体化为代码,依靠通过计算机的基础能力-- 计算 。我们就可以让机器能够“学会”一些简单的事物。
1、选题背景 人脸识别技术是模式识别和计算机视觉领域最富挑战性的研究课题之一,也是近年来的研究热点,人脸性别识别作为人脸识别技术
每当我们在公有云或者私有云发布训练好的大数据模型,为了方便大家辨识、理解和运用,参照huggingface所制定的标准制作一个Model Card展示页,是种非常好的模型展示和组织形式。 下面就是一
2. 支持向量机 对偶优化 拉格朗日乘数法可用于解决带条件优化问题,其基本形式为: \[\begin{gather} \min_w f(w),\\ \mathrm{s.t.} \quad
我正在尝试运行以下代码: https://github.com/opencv/opencv/blob/master/samples/dnn/classification.cpp 我在这里找到所有经过预
我是机器学习新手。当我使用 scikit-learn 模块中的波士顿数据集练习具有默认参数的决策树回归模型时。 在此链接解决方案( How to Build a Decision tree Regre
我有用于训练的数据。当我将其输入神经网络时,该数据出现 3% 的错误。 我知道这些数据有一定的过度代表性 - 例如,第 5 类的示例大约是其他类的十分之一。 我的作业指出,我可以通过偏置训练数据(即删
我在 Python 的多类分类中使用 SVM 时遇到问题。事实上,问题在于性别分类(来自图像),其中训练数据集仅包含“y=1”或“ y=-1”作为类标签(二进制)。但是,在预测中,如果是男性,我必须预
我是一名优秀的程序员,十分优秀!