【问题标题】:machine learning training data structure机器学习训练数据结构
【发布时间】:2017-04-06 03:48:00
【问题描述】:

我有一个关于机器学习训练数据的问题。

有没有办法构造数据,以便算法学会在数据点之间建立关联。例如,如果我假设我想训练关于猫吃什么的算法,我该如何构建训练数据,以便算法学会将猫与它们吃的食物联系起来?

谢谢。

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    看来您开始学习机器学习了。让我们扩展您的示例。我想你可能会在这里问两个问题

    (1) 如何判断猫喜欢吃什么? (2) 如果我知道一些关于猫的额外事实,我如何预测猫会吃什么?我如何构建数据来实现这一点?

    (1) 这是 Thomas Pinetz 所指的解释。要回答“猫喜欢吃什么”这个问题,您不需要大多数人认为的“机器学习”。您可以进行调查,然后使用统计关联测试。但我不认为这是你在这里要求的......

    (2) 这是机器学习。这不仅仅是结构化数据。 请注意,以下所有内容都过于简单化了。 机器学习的训练数据通常以“实例”的形式构建。假设你有两种食物(“kibbles”和“tuna”)并考虑这个例子:

    Cat / Features | eye-color | coat-color | ear-length-cm | **food**  | 
    ----           | ----      | ----       | ----          |  ---      | 
    Socks          | "green"   | "brown"    | 3.0           | "kibbles" | 
    Jimmy          | "blue"    | "gray"     | 3.7           | "tuna"    |
    Snowball       | "green"   | "white"    | 2.9           | "kibbles" |
    MrTumnus       | "blue"    | NA         | 3.1           | "tuna"    | 
    Tosca          | "blue"    | "orange"   | 3.2           | "kibbles" | 
    ...            | ...       | ...        | ...           | ...       | 
    

    (希望有比这更大的训练集...) 上面的每一行都是一个“实例”。中间的三列是关于每只猫的特征和事实。最后一列是有问题的猫喜欢吃的食物,通常称为“类别标签”。第一栏是猫的名字,我是为了好玩而编的。这是无用的信息,但它让我们在这里更容易地引用我们的实例。

    在这种情况下,您的目标是使用中间三列(即您的特征)来预测类别标签。像这样结构化的数据是机器学习问题的常见起点。

    现在,当您选择一种解决问题的方法时,您将面临一些额外的问题: (1) MrTumnus 实例缺少数据,他的“外套颜色”为 NA。 (2) 你有连续的(耳朵长度-厘米)和离散的(眼睛颜色,毛色)特征,取决于你在这个问题上抛出的算法,使用这两种数据可能很困难。

    假设您只考虑离散特征(眼睛颜色和外套颜色)。我们可以想象的一些机器学习算法可能会获取这些数据,并计算如下概率:

    1. P(eye-color = "green", food = "kibbles")
    2. P(外套颜色 = “白色”,食物 = “金枪鱼”)
    3. P(coat-color = "white", eye-color="blue", food="tuna")
    4. 等。你可以看到这是怎么回事。

    这给了我们一个模型 CatFood(eye-color, coat-color),它可以返回猫最有可能喜欢的食物,给定眼睛颜色和被毛颜色。更多问题:如果提供了我们以前从未见过的眼睛颜色或毛色怎么办?刮擦表面。

    然后,当你面前有一只新猫,你想根据它的眼睛颜色和毛色来了解它可能喜欢吃什么,你会收集你需要的数据,然后申请你的模型。这是您的新实例:

    Cat / Features | eye-color | coat-color | **food**  | 
    ----           | ----      | ----       |  ---      | 
    Oswald         | "blue"    | "orange"   |    ?      |
    

    假设现在我们应用我们的模型 CatFood("blue", "organge")。它可以追溯到根据我们的训练数据计算的概率,并会告诉我们根据模型,猫最有可能想吃什么食物。

    【讨论】:

    • 非常感谢您的回答并花时间编写此示例。它帮助我理解了很多。如果我想训练算法在两个元素之间建立关联,我可以采用相同的方法吗?例如,给定特定问题的最佳行动方案?那么,给定问题 A,解决方案 B 是最好的吗?
    • 如果您想评估一种方法 A 的性能,并将其与另一种方法 B 进行比较,您需要“验证”。有很多方法可以做到这一点;最简单的(解释)是拥有一个 second 独立数据集,您知道该数据集的类别标签,并且您将其用于训练。然后,您可以在这个新数据集上评估 A、B 的性能(准确性、误报、误报等),并决定哪种方法最适合您的应用程序。
    • 非常感谢您的帮助。我有另一个想问的情况。如果我想训练一个关联两个元素的模型,我将如何构建训练数据。例如,一种食物及其食谱,然后能够将食谱传递给模型并让它输出食物,反之亦然。所以,如果我输入纸杯蛋糕的食谱,模型能够告诉我这个食谱对应的食物是纸杯蛋糕,或者如果我输入纸杯蛋糕,模型能够输出食谱。谢谢。
    • 上一页。评论是偶然的,威尔德尔。首先,如果映射到“纸杯蛋糕”的食谱是不变的,那么这不是机器学习。我想你想将一堆纸杯蛋糕(红色天鹅绒、巧克力、香草)的食谱映射到“纸杯蛋糕”,然后映射“纸杯蛋糕”到一些“基本配方”等。不用想太多,也许(1)两个模型,应用一个或另一个,或者(2)你想在模型的架构中添加额外的层,想想它就像一个决策树/图表(例如,首先确定查询是食谱还是食物,......等等)。听起来您正在朝着神经网络的方向努力。
    【解决方案2】:

    这是纯粹的统计数据。机器学习是对事物的未来进行预测的艺术。如果您想预测您的猫接下来要吃什么,则可以应用机器学习算法。

    但是你想发现猫吃什么之间的对应关系。如果你真的想知道这一点,你应该问几个有猫的人他们在吃什么,并使用一些统计模型来找到平均值。

    【讨论】:

    • 非常感谢您的回答。
    猜你喜欢
    • 2017-06-25
    • 2020-06-15
    • 2020-02-21
    • 2011-02-15
    • 1970-01-01
    • 2014-12-27
    • 2019-07-03
    • 2019-07-15
    • 1970-01-01
    相关资源
    最近更新 更多