我有以下数据
feat_1 feat_2 ... feat_n label
gene_1 100.33 10.2 ... 90.23 great
gene_2 13.32 87.9 ... 77.18 soso
....
gene_m 213.32 63.2 ... 12.23 quitegood
M
的大小是大的~30K行,N
的大小要小得多~10列。
我的问题是什么是适合学习的深度学习结构
然后像上面一样测试数据。在
在一天结束时,用户将给出一个基因表达载体。在
^{pr2}$系统将标记每个基因应用的标签,如great或soso等。。。在
我所说的结构是指:
如果你想把你的一个logistic标签理解为一个多元回归的问题,那就把它理解为一个多元回归的问题。(最高分取标签)。在
如果你一定要使用深度学习。
一个简单的前馈神经网络应该做到,通过反向传播来监督学习。输入层有N个神经元,可以添加一个或两个隐藏层,不能超过这个数目。无需对该数据进行“深度并添加更多层,存在使用更多层容易过度拟合数据的风险,如果这样做,则很难找出问题所在,并且测试精度将受到很大影响。在
如果您需要找出哪些特性是重要的(或可能存在的任何相关性),那么简单地绘制或可视化数据(即使用t-sne)可能是一个好的开始。在
然后你可以使用那些特征维度的更高的能力/或者增加他们的分数的权重。在
对于这样的问题,深度学习可能不太适合。但是,像这样一个简单的ANN架构应该能很好地工作,这取决于数据。在
如果您正在处理原始数据,并希望自动找到能够实现分类目标的特性,则建议使用深度学习结构。但是根据列的名称和数量(只有10个),您似乎已经设计了自己的特性。在
因此,您可以使用标准的多层神经网络,并使用监督学习(反向传播)。这样的网络将有与列数匹配的输入数(10),然后是隐藏层数,然后是输出层,输出层的神经元数与标签数匹配。你可以尝试使用不同数量的隐藏层,神经元,不同的神经元类型(乙状结肠,tanh,整流线性等等)等等。在
或者,您可以使用原始数据(如果可用的话),然后使用DBNs(众所周知,DBNs是健壮的,可以在不同的问题上获得良好的结果)或自动编码器。在
要扩展一下@sung kim的评论:
不过,与所有建模问题一样,我建议从最基本的模型开始寻找信号。在你担心深入学习之前,也许一个好的开始是Logistic Regression。在
如果你想尝试深度学习,无论出于什么原因。对于这种类型的数据,最好从基本的前馈网络开始。就深度学习而言,30k数据点并不是一个大数目,所以最好从一个小网络(1-3个隐藏层,5-10个神经元)开始,然后再变大。不过,在执行参数优化时,请确保您有一个像样的验证集。如果您是
scikit-learn
API的粉丝,我建议您从{a2}开始还有一点建议,在进行任何培训之前,您需要在类标签上使用OneHotEncoder。在
编辑
我从赏金和评论中看到,你想更多地了解这些网络是如何工作的。请参阅如何建立一个前馈模型和做一些简单的参数选择的例子
哪些输出
^{pr2}$相关问题 更多 >
编程相关推荐