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

2024-04-25 17:05:19 发布

您现在位置:Python中文网/ 问答频道 /正文

面对一个对我来说听起来很有挑战性的问题。有一个巨大的DNA数据集,有a,G,T,C结构,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-想从简单的一个现代和更深。典型的数字表示很容易由pandas、sklearn库用几行代码来完成,但对于如此庞大的数据集,将其转换为一个热编码似乎是一项有趣的任务。通过使用警察局的傻瓜从(101927041)形状我们得到(101954082),不明白为什么当我们有4个不同的字母时形状只增加了2倍。谢谢您!你知道吗


Tags: 数据pandas编码数字nnsklearn类别结构
1条回答
网友
1楼 · 发布于 2024-04-25 17:05:19

增加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


相关问题 更多 >