为了账号安全,请及时绑定邮箱和手机立即绑定

神经网络的 DNA 数据输入,一种热编码

神经网络的 DNA 数据输入,一种热编码

犯罪嫌疑人X 2021-10-19 15:22:44
遇到了一个问题,这对我来说是一项具有挑战性的任务。有一个巨大的 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 GG G C C C C C C CT T C C C C C C CG G A A A A A A AT T C C C C C C CC C T T T T T T TT 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 库用几行代码完成,但将其转换为单热编码,对于如此庞大的数据集,看起来是一项有趣的任务。通过使用 pd.get_dummies 从 (1019, 27041) 形状我们得到 (1019, 54082),无法理解为什么当我们有 4 个不同的字母时形状只增加了 2 倍。谢谢!
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

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


查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信