簡體   English   中英

具有字符/字符串特征的二進制分類

[英]Binary Classification with char/string features

我目前正在研究蛋白質的二元分類問題。 目標是弄清楚突變是否會將蛋白質 function 從活躍變為不活躍。 突變可以發生在構成蛋白質的氨基酸鏈中的 4 個不同但固定的位置。 所以我的特征向量由長度為 4 的字符代碼組成,其中每個字符代表發生突變的 4 個位置之一的氨基酸。 總共有 21 種可能的氨基酸。

我的問題是如何將這 4 個字符的字符串轉換為用於我的分類的數字。 到目前為止,我嘗試將每個 cahr 轉換為代表該字符大寫字母的 ASCII 十進制數(例如 A->65),但這給了我只有平庸的結果。

我發現了一些關於一種熱編碼的信息,但我不知道如何使用它,因為除了關於突變中出現的總共 21 個氨基酸中的 4 個的信息之外,它們發生的 position 在我的情況下也很重要。

這是訓練數據的樣本:

在此處輸入圖像描述

我的特征向量由長度為 4 的字符代碼組成.. .. 它們出現的 position 在我的情況下很重要

將您的四字符字符串展開為四個一字符字符串。 這樣每個站點將有一個功能(我們稱它們為“S1”、“S2”、“S3”和“S4”)。

這樣每個蛋白質位點將獨立於其他位點。

我如何將這 4 個字符的字符串轉換為用於我的分類的數字。

只需將 one-hot-encoding 應用於這些單字符功能中的每一個。 假設您在 Scikit-Learn 環境中工作,您可以使用sklearn_pandas.DataFrameMappersklearn.compose.ColumnTransformer執行此映射:

mapper = DataFrameMapper([
  (["S1", "S2", "S3", "S4"], OneHotEncoder())
])
classifier = LogisticRegression()
pipeline = Pipeline([
  ("mapper", mapper),
  ("classifier", classifier)
])
pipeline.fit(X, y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM