Как уже упоминалось ранее, любая модель принимает только цифры в качестве входных данных.По этой причине обычно мы создаем функцию предварительной обработки, которая может быть применена одновременно как к поездам, так и к тестовым наборам.
В этом случае вам необходимо определить функцию, которая преобразует входной вектор в числовой вектор, которыйможет быть дополнительно введено в вашу модель машинного обучения:
Inputs -> Preprocessing -> Model
Эта предварительная обработка должна быть такой же, как и та, которую вы использовали для обучения, чтобы достичь желаемых результатов.
Поэтому, как правило, когда вы создаете модель, ваша полная «Модель» может фактически быть оберткой вокруг фактической модели, которую вы используете.Например:
class MyModel():
def __init__(self,):
# Inputs and other variables like hyperparameters
self.model = Model() # Initialise a model of your choice
def preprocess(self, list_to_preprocess):
# Preprocess this list
def train(self, train_set):
X_train, y_train = preprocess(X_train)
self.model.fit(X_train, y_train)
def predict(self, test_set):
# If X_test is a vector, reshape and then preprocess
X_test, y_test = preprocess(test_set)
pred = self.model.predict(X_test)
# Evaluate using pred and y_test
Итак, чтобы предсказать, вы используете функцию MyModel.predict()
, а не Model.predict()
для достижения того, чего хотите.