用scikit-learn存储新颖的功能

时间:2014-04-06 10:20:32

标签: python dictionary scikit-learn bioinformatics feature-extraction

我正致力于生物信息学序列研究,该研究涉及从多组序列(FASTA文件)中提取各种基于序列的特征。 我为序列生成各种功能,并单独处理每个序列(我将使用数万个序列)。我是编程和处理数据的新手。

存储和输出(即保存到csv文件中的矩阵)生成的功能的最佳方法是什么?

这些功能的名称对我来说很重要,所以除了需要输出的顺序与每个单独的序列保持一致之外,我还需要它们。

我计划用字典存储功能(每个序列),因为我知道scikit learn的“dictVectorizer”功能可能对此有用。 但是 - 一个字典是无组织的,我将逐个提取每个序列的特征,写出来,然后从下一个序列中提取 - 写出时它会保持相同的顺序吗? (所有的特征都是数字和连续的,但是许多特征的值可能为0,有些特征会有一个向量作为输出[E.G-400重叠双字母的频率计数]。

谢谢!

(我主要关注I / O而不是混合功能的输出。)

1 个答案:

答案 0 :(得分:0)

因此,最好的方法是pandasdill。我认为pandas是您更好的选择,但您可以同时使用它们。

import pandas as pd
import dill

如果您尝试使用标签存储矩阵,则说明DataFrames。您可以通过执行DataFrame从数组或字典轻松地在pandas DF = pd.DataFrame(array_object)中创建DF.columns = ["label1","label2",etc.],您可以按DF.index = ["A","B",etc.]设置列名,并使用相同的方法设置索引值{{1} }}。然后你可以通过执行DF.to_csv("filename.tsv",sep="\t")(我通常使用制表符分隔的b / c逗号很奇怪)将它存储到csv / tsv中,然后将其写入spreadhseet格式,以后可以通过{{1}轻松检索}。另一种方法是使用pd.read_table("filename.tsv",sep="\t")将您的环境变量存储到稍后可以加载的文件中(我为更复杂的对象执行此操作,但它适用于DataFrame或矩阵或任何您想要的)。如果您拥有dill中的DataFrame,则可以matrix/array存储该对象,然后使用dill.dump(DF,open("DF.obj","wb"))检索该对象。

我会使用dill.load(open("DF.obj","rb"))方法,因为你可以在Excel中打开这些东西(生物学家喜欢excel)。如果它们只是矩阵,那么使用pandas.DataFrame.to_csv()来存储对象是过度的。如果你为自己制作东西,但是将存储的dill对象传递给其他人可能会变得很讨厌,这是一个很好的工具。