【问题标题】:One hot encoding on protein sequence in pythonpython中蛋白质序列的一种热编码
【发布时间】:2019-09-25 16:49:53
【问题描述】:

enter image description here

我需要将序列作为训练数据,将输出列作为标签。但在我必须对序列应用一种热编码之前,如您所见,序列的长度各不相同 请建议我如何对所有氨基酸应用一种热编码以分配不同的整数值

【问题讨论】:

  • 分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
  • from sklearn.preprocessing import LabelEncoder from sklearn.preprocessing import OneHotEncoder from numpy import array #define example values = array(data) print(values) # integer encode label_encoder = LabelEncoder() integer_encoded = label_encoder.fit_transform (值)打印(整数编码)
  • 我使用的第二个代码是 df= pd.read_csv('C:/Users/alpha/Desktop/DATASET2.csv',names=('X1','Y'),delimiter=' ,') X=df.iloc[:,0].values Y=df.iloc[:,1:2].values from sklearn.preprocessing import LabelEncoder,OneHotEncoder labelencoder_X = LabelEncoder() # 编码值在0到之间的标签n_classes-1。 X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0]) # 所有行和第一列 onehotencoder = OneHotEncoder(categorical_features = [0]) X = onehotencoder.fit_transform(X).toarray() labelencoder_Y = LabelEncoder () Y = labelencoder_Y.fit_transform(Y)
  • 不要在 cmets 中发布代码 - 它实际上是不可读的!代码首先应该是您问题的一部分,因此请相应地编辑和更新您的问题!

标签: python machine-learning one-hot-encoding


【解决方案1】:

没有其他人可以确定对您的数据集进行分箱的最佳方法。这个决定只能由对目标和数据集有很好理解的人做出。 φ(x) - 你的特征向量 - 总是非常特定于你的数据。

例如,如果您有 DNA,您可能具有特定密码子是否存在的特征,或腺嘌呤数量的分类等,这是非常主观的,即使有很好的理解,调整也是一项不平凡的任务。

您必须非常小心,因为您可能会在您的数据中产生偏差,因为某些类别具有一定的长度、某些氨基酸的数量等,如果您生成该特征,这些偏差并不能真正代表您所分类的内容矢量错误。这可能会导致测试和训练错误率具有欺骗性并产生错误的结论。

老实说,如果您在上大学,我建议您请计算机科学系或其他类似部门的人帮助您的项目。虽然使用预烘焙的 sklearn 编码似乎很诱人,但它对于您的情况并不是一个好的解决方案。由于数据量有限,您很可能会在序列长度方面出现异常情况,并且尝试将每个字符变成它自己的特征会导致拟合性能不佳。

至于实际将数据读入 python,它是一个 csv,因此您可以使用 open() 和 split(',') 手动解析它,或者您可以使用一些流行的库来解析 csv 格式。 YMMV

【讨论】:

    猜你喜欢
    • 2020-12-22
    • 2013-01-16
    • 2013-09-18
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多