这是我用来在生物学领域做预测的脚本。你知道吗
我在研究一个肽和一个靶点之间的相互作用:我用一个热编码编码每个氨基酸序列(它们是肽的块,用字母表示),每个序列都有一个标签,叫做“Ki”(识别与靶点的亲和力有多好)。你知道吗
我得到的错误总是一样的:
Number of features of the model must match the input. Model n_features is 133 and input n_features is 131.
当试图预测数据集中不存在的新序列的“Ki”时,就会发生这种情况。你知道吗?先谢谢你。你知道吗
我认为这是一个问题的OHE,但似乎工作。我不知道问题是否出在输入部分。你知道吗
加载数据帧
df = pd.read_csv('sequences.csv', sep=';', header=None)
df = df.iloc[1:]
编码部分(仅序列)
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
encoder = LabelEncoder() cat = df.iloc[:, 1:-1]
cat_encoded = cat.apply(encoder.fit_transform)
encoder = OneHotEncoder(categories='auto', sparse=False) cat_1hot =
encoder.fit_transform(cat_encoded.values)
X = cat_1hot #shape (69, 133)
y = df.values[:, -1:].astype(float) #are number like 0.071, 1.935... shape(69, )
列车试验分割、RF回归、评估。。。加载新序列
test = pd.read_csv('test.csv', sep=';', header=None)
test_ = test.iloc[1:, :]
编码新序列
encoder = LabelEncoder()
cat = test_ cat_encoded = cat.apply(encoder.fit_transform)
encoder = OneHotEncoder(categories='auto', sparse=False)
cat_1hot = encoder.fit_transform(cat_encoded.values) test_ohe = cat_1hot #shape (X, 131) X = number of sequences I choose
测试
results = np.round(rf_reg.predict(test_ohe), decimals= 3)
最后一部分不起作用:(
这就是df的样子。
目前没有回答
相关问题 更多 >
编程相关推荐