我需要将序列作为训练数据,并将输出列作为标签。但在此之前,我必须对序列进行独热编码,如您所见,序列的长度各不相同。请建议我如何对所有氨基酸应用独热编码,以便为它们分配不同的整数值。
回答:
没有人能决定将您的数据集分箱的最佳方式。这是一个只有对目标和数据集有深入了解的人才能做出的决定。ϕ(x)——您的特征向量——总是非常具体地针对您的数据。
例如,如果您有DNA,您可能需要特征来判断某个密码子是否存在,或者为腺嘌呤的数量设置分箱,这非常主观,即使有很好的理解,调整也是一个非平凡的任务。
您必须非常小心,因为如果您错误地生成特征向量,可能会在数据中为某些类别创建偏见,如特定长度、某些氨基酸的数量等,这些偏见可能并不真正代表您要分类的内容。这可能会导致测试和训练误差率具有欺骗性,并得出错误的结论。
坦白说,如果您在大学,我建议您寻求计算机科学系或其他类似部门的人帮助您的项目。虽然使用预制的sklearn编码可能看起来很诱人,但这对您的案例来说并不是一个好的解决方案。由于数据量有限,您很可能会遇到序列长度的异常情况,试图将每个字符转化为其自身的特征会导致拟合性能不佳。
至于实际将数据读入Python,因为它是一个CSV文件,您可以手动使用open()和split(‘,’)来解析,或者使用一些流行的CSV格式解析库。您的里程可能会有所不同。