机器学习的应用

时间:2012-11-19 21:27:41

标签: machine-learning data-mining

我在这里看到了一些机器学习问题所以我想我会发布一个相关的问题: 假设我有一个随机生成的食物清单,其中包括主菜,甜点和饮料。一个例子是鸡肉,芝士蛋糕,橙汁。用户将按照1-5的等级对他们个人喜欢这种组合的方式进行排名。达到评级后,会出现另一组随机食物。

我的问题是,我将使用什么机器学习技术/算法来预测用户将从之前的所有数据中对随机生成的集进行排名?实质上,使用他们的意见来预测他们对新食物的评级。任何可能有帮助的网站/书籍?

7 个答案:

答案 0 :(得分:3)

您已经说过回归问题,因为您正在尝试预测连续的数值。

对于每个数据实例,您可以提取要素并关联值(1-5)。这些特征可以是用餐期间菜肴的存在(例如has_cheesecake,has_orange_juice),其中每个特征都是布尔值。假设有N种可能的菜肴;然后每餐是具有N个特征和相关值的数据实例(也称为特征向量)。下面是N = 12的示例,其中最后一个(第13个)列是值。

0 0 0 1 1 0 0 0 1 0 0 0 5
1 0 0 1 0 1 0 0 0 0 0 0 3
0 0 0 0 0 0 1 1 0 0 0 1 4

然后,您可以将其提供给像Weka这样的机器学习程序,它将为您创建回归模型。然后,当您想要预测用户对新餐的排名时,您会输入一个新的向量,其中最后一列未知,如下所示:

0 0 1 0 0 0 1 0 0 0 0 1 ?

软件会向您返回一个值,例如3.9。

答案 1 :(得分:2)

你所问的基本上是sentiment detection,它已经变得非常受欢迎,比如预测用户对产品的态度。这是一个seminal paper,取决于你的学术倾向。

您可以将此视为回归问题,但很多时候人们忽略了类之间存在序数关系这一事实。如果你没有关于这些食物的信息而不是他们的名字,我不确定我会期待你做得很好。如果可能的话,您应该寻找课程的特征表示,以提高您预测价值的能力。

答案 2 :(得分:1)

我会调查运筹学,因为通常它是最小化或最大化的问题。

答案 3 :(得分:1)

由于您的分类列是优先级列,因此您可以尝试使用决策树。

答案 4 :(得分:1)

要选择最佳分类器,您应该估计的问题有几个其他特征,例如属性值的近似数量(即,可以选择多少主菜,甜点和饮料)以及大致如何在进行预测之前,您希望提供许多培训示例。并非所有分类器都善于处理稀疏数据。

如果你有大量的训练样例(相对于属性值的数量),decision tree classifier是一个很好的起点。决策树的一个好处是学习树的结构是直观的,并提供了对重要属性(和属性组合)的简单解释。

答案 5 :(得分:1)

有许多算法可以适合您的问题,其中一些可以是decision treesneural netssupport vector machines

但是,当您处理用户意见时,在某些情况下,您可能无法获得所有产品的用户意见(他们可以跳过)。我不知道这是不是你的情况,也许你强迫他们对所有产品进行排名。但是,如果您向用户提供跳过选项,则最终会得到一些尚未标记的产品。在这种情况下,您可以使用协作过滤。即使在我解释的情况下,此方法也会预测新用户的估计选择。

您可以在Ng's course找到一个好的教程。

答案 6 :(得分:0)

如果您想根据用户的相似性(相同的用户相同的食物)创建模型,请使用协作过滤创建模型。 (对每个用户来说都是矢量)诸如keras,scikit learning和pandas之类的库非常有用和容易。 如果您想编写自己的模型,那么矩阵分解可能会有所帮助。