【发布时间】:2012-04-30 14:32:02
【问题描述】:
我正在构建一个单层感知器,它具有相当长的特征向量 (30-200k),全部标准化。
假设我有 30k 个特征,这些特征在预测一个类时有些用处,但随后又添加了 100 个非常好的预测特征。预测的准确性只上升了微不足道的数量。但是,如果我手动增加 100 个优秀特征的权重(比如增加 5 倍),准确率会提高几个百分点。
我的印象是,训练过程的性质应该自然地赋予更好的特征更高的权重。然而,最好的功能似乎被更差的功能“淹没”了。
我尝试用更多的迭代来运行它,但这没有帮助。
如何以相当简单的方式使算法适应更好的权重特征?此外,一种相当快速的方式;如果我的功能较少,那么只运行算法会很容易,一次只留下一个,但对于 30k 来说这并不可行。
【问题讨论】:
-
我不是专家,但它的价值:我认为看细节很重要(i)确切的训练算法,(ii)训练示例的数量,(iii ) 示例的质量,(iv) 诸如所需类的线性可分性之类的问题。
-
想告诉我们您的训练算法吗?
-
找到最大化权重的类[class] * feature_vector。如果它是正确的类,则什么也不做。如果不正确,将 feature[i] 添加到所有 weight[realL_class][i] 并从所有 weight[predicted_class][i] 中减去 feature[i]。重复 x 次。完成后 x 的平均权重。
标签: algorithm perceptron