是否可以在 sklearn 中使用字符串元素作为输入?
Is it possible to use string elements as input in sklearn?
我正在尝试使用 sklearn 分析我的数据,看看元素之间是否存在某种相关性。我的数据集是一个短的蛋白质基序,其序列非常多样化。我的输入如下所示:
1p 2p 3p 4p 5p genus
0 T V H F K Enterobacteriaceae
1 T V M F M Escherichia
2 E I H V K Enterobacteriaceae
3 K L M F K Enterobacteriaceae
位置 1-5 有 20 种不同的字母可能。
我想使用与 sklearn Iris set 中所示的类似方法来检查不同位置的氨基酸和细菌属之间的依赖性。换句话说,我想看看字母序列是否是特定于属的,以及单个位置的字母是否与其他位置的字母有某种关联。
问题是,据我所知,只有数字可以用作 sklearn 的输入。我尝试用数字代替字母:每个字母从 1e-10 到 1e10,但后来我在数据可视化方面遇到了问题。我希望有其他更有效的方式来使用这种输入数据。如果有一些提示,我将不胜感激。谢谢!
我建议使用 LabelEncoder
from sklearn.preprocessing import LabelEncoder
df
1p 2p 3p 4p 5p genus
0 T V H F K Enterobacteriaceae
1 T V M F M Escherichia
2 E I H V K Enterobacteriaceae
3 K L M F K Enterobacteriaceae
le = LabelEncoder()
le.fit(np.unique(df.drop('genus', axis=1)))
X = np.array([le.transform(samp) for samp in df.drop('genus', axis=1).values])
X
array([[7, 8, 2, 1, 4],
[7, 8, 6, 1, 6],
[0, 3, 2, 8, 4],
[4, 5, 6, 1, 4]])
从那里您应该能够检查相关性。
我正在尝试使用 sklearn 分析我的数据,看看元素之间是否存在某种相关性。我的数据集是一个短的蛋白质基序,其序列非常多样化。我的输入如下所示:
1p 2p 3p 4p 5p genus
0 T V H F K Enterobacteriaceae
1 T V M F M Escherichia
2 E I H V K Enterobacteriaceae
3 K L M F K Enterobacteriaceae
位置 1-5 有 20 种不同的字母可能。
我想使用与 sklearn Iris set 中所示的类似方法来检查不同位置的氨基酸和细菌属之间的依赖性。换句话说,我想看看字母序列是否是特定于属的,以及单个位置的字母是否与其他位置的字母有某种关联。
问题是,据我所知,只有数字可以用作 sklearn 的输入。我尝试用数字代替字母:每个字母从 1e-10 到 1e10,但后来我在数据可视化方面遇到了问题。我希望有其他更有效的方式来使用这种输入数据。如果有一些提示,我将不胜感激。谢谢!
我建议使用 LabelEncoder
from sklearn.preprocessing import LabelEncoder
df
1p 2p 3p 4p 5p genus
0 T V H F K Enterobacteriaceae
1 T V M F M Escherichia
2 E I H V K Enterobacteriaceae
3 K L M F K Enterobacteriaceae
le = LabelEncoder()
le.fit(np.unique(df.drop('genus', axis=1)))
X = np.array([le.transform(samp) for samp in df.drop('genus', axis=1).values])
X
array([[7, 8, 2, 1, 4],
[7, 8, 6, 1, 6],
[0, 3, 2, 8, 4],
[4, 5, 6, 1, 4]])
从那里您应该能够检查相关性。