Количество функций модели должно соответствовать входным. Ошибка Python - PullRequest
2 голосов
/ 10 апреля 2019

Это сценарий, который я использую для прогнозирования в области биологии.

Я изучаю взаимодействия между пептидом и мишенью: я использовал OneHotEncoding для кодирования каждой последовательности аминокислот (они являются блоками пептида, и они представлены буквами), и у меня есть метка длякаждая последовательность, которая называется 'Ki' (определяет, насколько хорошо сродство к цели).

Ошибка, которую я получаю, всегда одинакова:

Количество признаковМодель должна соответствовать входу.Модель n_features равна 133, а входное значение n_features равно 131.

Это происходит при попытке предсказать 'Ki' новых последовательностей, которых нет в наборе данных.Любая идея?Заранее спасибо.

Я думал, что это проблема ОХЭ, но, похоже, работает.Я не знаю, если проблема во входной части.

Загрузить DataFrame

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, )

Разделение теста поезда, РЧ-регрессия, оценка ... Загрузка новых последовательностей

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. This is to explain how the df and test are

...