首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有字符/字符串特征的二进制分类

具有字符/字符串特征的二进制分类
EN

Stack Overflow用户
提问于 2020-06-02 06:29:48
回答 1查看 152关注 0票数 0

我目前正在研究蛋白质的二元分类问题。目的是弄清楚突变是否会改变蛋白质的功能,使其从活性变为非活性。这种突变可以发生在组成蛋白质的氨基酸链中的4个不同但固定的位置。因此,我的特征向量包含一个长度为4的字符代码,每个字符代表发生突变的四个地方之一的氨基酸。总共有21个可能的氨基酸。

我的问题是,我将如何将这串4个字符转化为一个数字,用于我的分类。到目前为止,我尝试的是将每个cahr转换为ASCII十进制,表示该字符的大写字母(例如A->65),但这只给了我平庸的结果。

我发现了一些关于一个热编码的东西,但我不知道如何使用它,因为除了信息之外,总共21个氨基酸中有4个发生在突变中,它们发生的位置对我来说也很重要。

以下是培训数据的样本:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-02 06:58:42

我的特征向量由一个长度为4的字符代码组成。。。在我的情况下,它们发生的位置很重要。

将您的四个字符字符串展开为四个一个字符的字符串。这样每个站点就有一个特性(让我们称它们为"S1“、"S2”、"S3“和"S4")。

这样,每个蛋白质位点将独立于其他位点。

,我将如何将这串4个字符转换成数字来进行分类。

只需将一个热编码应用于每一个单字符特性。假设您在Scikit-Learn环境中工作,您可以使用sklearn_pandas.DataFrameMappersklearn.compose.ColumnTransformer来执行此映射:

代码语言:javascript
复制
mapper = DataFrameMapper([
  (["S1", "S2", "S3", "S4"], OneHotEncoder())
])
classifier = LogisticRegression()
pipeline = Pipeline([
  ("mapper", mapper),
  ("classifier", classifier)
])
pipeline.fit(X, y)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62146099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档