学习人工神经网络属性?

时间:2016-12-27 12:19:02

标签: neural-network artificial-intelligence

我有一个数据集,每个项目大约有50,000个属性。 (大多数值介于0和1之间,根本没有离散值)

属性未标记,并假设彼此无关。 +我事先知道大多数房产都没用。 (其中99%)

我的任务是在神经网络中使用尽可能少的属性,这样它就能知道如何区分5种项目类型。

理论上,我可以通过所有50K属性进入人工神经网络,并希望最好,但需要花费大量时间进行训练。 +千兆字节的RAM,我不确定我的服务器是否会崩溃。

是否有一个模型可以衡量参数的分类级别?

如果没有,以下是一个好主意吗?

  • 查看我的所有50K参数,训练50K ANNS,< 1,参数>
  • 获得最高精度ANN,并重新开始,有3个输入:< 1,previous-property,property>等等,直到我达到95%的准确度然后停止

我认为没有理由它不会起作用,但培训至少10 * 50,000人工神经网络也不理想。

修改

每个类别我有12个例子。共60项。 (我知道它很小,但我无法获得更多。)

1 个答案:

答案 0 :(得分:2)

特征选择

我会回避神经网络来解决这个问题。如果您与神经网络理念联系在一起,那么就可以将50000 x 60数据矩阵插入到网络中,因为这根本不会占用很多内存。如果您使用L1正则化器,然后分析所有0个条目的网络权重,您可以确定哪些功能没用。

还有许多其他功能选择方法。例如,LASSO算法试图以与上述神经网络方法非常相似的方式解决这个问题。

另一个众所周知的算法是前向选择回归,您一次只使用一个属性执行回归。然后,选择最佳分隔类的属性,修复该属性,然后一次使用两个属性再次选择(最后一次扫描的最佳属性,以及每次一个属性)。你重复这个过程,直到添加另一个属性没有给出更好的类分离。如果大多数功能真的没用,我就不会关心训练这个模型的时间。使用线性回归(因为它有一个封闭的形式解决方案)应该几乎没有时间在这个大小的数据集上。

特征提取

更有原则的方法是某种形式的主成分分析(PCA)。这将显示数据集具有多少共线属性,并将提取少量属性来描述您的数据。