NN的DNA数据输入,一种热编码



遇到了一个对我来说听起来具有挑战性的任务的问题。拥有庞大的 A、G、T、C 结构的 DNA 数据集,4 个完全不同的类别作为输入。它看起来像:

1 2 3 4 5 6 7 8 9 … 1.000+
A A G G G G G G G
G G C C C C C C C
T T C C C C C C C
G G A A A A A A A
T T C C C C C C C
C C T T T T T T T
T T C C C C C C C
…
30.000+

想询问有关数据处理的建议。它应该表示为具有如此巨大维度的数字还是一个热编码?[0,0,0,1]作为A,[0,0,1,0]作为G等,还是只是0,1,2,3?谈论 NN - 想从简单的开始到现代和更深入。典型的数值表示很容易由熊猫、sklearn 库在几行代码中完成,但对于如此庞大的数据集,将其转换为一种热编码似乎是一项有趣的任务。通过使用 (1019, 27041) 形状的pd.get_dummies,我们得到了 (1019, 54082),并且无法理解为什么当我们有 2 个不同的字母时形状只增加了 4 倍。谢谢!

增加 2 倍而不是增加 4 倍是因为每个系列中只有 2 个类别。(在您的示例中,A 和 G 在第一行,G 和 C 在第二行,T 和 C 在第三行,依此类推)

下面的示例将更好地了解附加列的数量

In [38]: df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'], 'C': [1, 2, 3]})                                                                       
In [39]: df                                                                                                                                                    
Out[39]: 
   A  B  C
0  a  b  1
1  b  a  2
2  a  c  3
In [40]: pd.get_dummies(df)                                                                                                                                    
Out[40]: 
   C  A_a  A_b  B_a  B_b  B_c
0  1    1    0    0    1    0
1  2    0    1    1    0    0
2  3    1    0    0    0    1

相关内容

  • 没有找到相关文章

最新更新