6

您如何为给定问题找到最佳学习规则,例如多类别分类?

我正在考虑使用遗传算法,但我知道性能方面存在问题。我正在寻找您没有使用教科书学习规则的真实世界示例,以及您是如何找到这些学习规则的。

4

2 回答 2

9

好问题顺便说一句

分类算法可以使用许多特征进行分类, 例如:

  1. 该算法强烈偏爱什么(或最适合该算法的数据类型)。
  2. 训练开销。(是否需要很多时间来训练)
  3. 什么时候有效。(大数据 - 中数据 - 少量数据)。
  4. 它可以提供的分析的复杂性。

因此,对于您分类多个类别的问题,我将使用在线逻辑回归 (FROM SGD) ,因为它非常适合中小型数据量(少于数千万个训练示例),而且速度非常快。

另一个例子:

假设您必须对大量文本数据进行分类。那么朴素贝叶斯就是你的宝贝。因为它非常喜欢文本分析。即使SVMSGD更快,而且我体验过更容易训练。但是当数据大小被认为是中等或小而不是大时,可以应用这些规则“SVM 和 SGD” 。

一般来说,任何数据挖掘人员在开始任何ML 或 Simple挖掘项目时都会问自己上述四点。

之后你必须测量它的AUC或任何相关的,看看你做了什么。因为您可能会在一个项目中使用不止一个分类器。或者有时当你认为你已经找到了完美的分类器时,使用一些测量技术的结果似乎并不好。因此,您将开始再次检查您的问题,以找出您出错的地方。

希望我有所帮助。

于 2013-01-06T03:18:16.327 回答
5

当您将向量输入x网络时,网络将根据所有权重(向量w)给出输出。输出和真实答案之间会有错误。平均误差 ( e) 是 的函数,w比方说e = F(w)。假设你有一层二维网络,那么图像F可能是这样的:

在此处输入图像描述

当我们谈论训练时,我们实际上是在谈论找到w最小的e。换句话说,我们正在寻找一个函数的最小值。训练就是搜索

所以,你的问题是如何选择搜索的方法。我的建议是:这取决于表面的F(w)外观。越波动,应该使用越随机的方法,因为基于梯度下降的简单方法将有更大的机会引导你被局部最小值困住——这样你就失去了找到全局最小值的机会。另一方面,如果表面F(w)看起来像一个大坑,那就忘记遗传算法。在这种情况下,简单的反向传播或任何基于梯度下降的东西都会非常好。

你可能会问,我怎么知道表面的样子?这是一种经验技能。或者您可能想要随机采样一些w,并计算F(w)以获得表面的直观视图。

于 2013-01-06T05:31:51.670 回答