-3

我有以下问题。我有一个包含一系列数字的训练数据集。每个数字都属于某个类别。有五个班。

范围:1...10

训练数据集:{1,5,6,6,10,2,3,4,1,8,6,...}

类:[1,2][3,4][5,6][7,8][9,10]

是否可以使用机器学习算法来查找类预测的可能性以及适合此的算法?

最好的,美国

4

1 回答 1

3

如问题评论中所述
I want to calculate the likelihood of a certain class to appear based on the given distribution of the training set
这个问题很简单,几乎不是机器学习问题
只需计算“训练集”中每个类的出现次数,Count_12,Count_34,... Count_910。给定类 xy 出现的可能性简单地由下式给出

   P(xy) = Count_xy  / Total Number of elements in the "training set"
         = Count_xy  / (Count_12 + Count_34 + Count_56 + Count_78 + Count_910)

一个更有趣的问题...
...将训练集视为一个序列,并猜测该序列中的下一个项目是什么。下一个项目来自给定类别的概率将不仅基于该类别的先验(上面计算的 P(xy)),而且还将考虑序列中位于它之前的项目。然后,这个问题的一个有趣部分将是计算出看起来有多“远”以及赋予前面的项目序列多少“权重”。

编辑(现在 OP 表示他/她对“更有趣的问题”感兴趣)。
这个“prediction-given-preceding-sequence”问题几乎直接映射到
机器学习算法用于预测事件顺序 StackOverflow问题。
细微的差别是这里的字母表有 10 个不同的代码(另一个问题中有 4 个),而且我们在这里尝试预测一代码,而不仅仅是代码本身。关于这里每个类 2 个代码的聚合,我们有几种选择:

  • 从一开始就使用类,即用其类替换序列中读取的每个代码,然后只考虑并跟踪类。
  • 仅使用代码,即创建 1-thru-10 代码的预测器,并且只考虑最后的类别,将组成一个类别的两个代码的概率相加,以产生下一个项目属于该类别的可能性班级。
  • 一些混合解决方案:考虑/使用代码,但有时会聚合到班级。

我个人的选择是首先尝试使用代码预测器(仅在最后进行聚合),如果从最初的尝试中获得的某种洞察力告诉我们可以简化或改进逻辑或其性能,则可能会从那里进行调整我们之前聚合。实际上,可以使用相同的预测器来尝试这两种方法,只需更改输入流,将所有偶数替换为前面的奇数。我猜当我们提早聚合时,有价值的信息(为了猜测即将到来的代码)会丢失。

于 2011-07-13T12:52:12.780 回答