Соотнесите прогнозируемое значение с его индексом/идентификационным номером

#python #pandas #machine-learning #cross-validation

#python #pandas #машинное обучение #перекрестная проверка

Вопрос:

Я обучаю модель предсказывать значение true или false на основе некоторых данных. Я удаляю номер продукта из списка функций при обучении и тестировании модели.

 X = df.drop(columns = 'Product Number', axis = 1)
y = df['result']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 42)

SVC = LinearSVC(max_iter = 1200)
SVC.fit(X_train, y_train)
y_pred = SVC.predict(X_test)
  

Есть ли у меня какой-либо способ восстановить номер продукта и его характеристики для элемента, который прошел или не прошел? Как мне получить / связать результаты y_pred с тем, какому номеру продукта он соответствует?

Я также планирую использовать перекрестную проверку, чтобы данные перемешивались, будет ли у меня еще способ восстановить номер продукта для каждого тестового элемента?

Ответ №1:

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

Редактировать: для оценки без перекрестной проверки я удаляю нерелевантные столбцы только тогда, когда передаю их в классификатор, как показано ниже:

 cols = ['id', 'label']
X = train_data.copy()
y = train_data['label']
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=2)

knn = make_pipeline(StandardScaler(),KNeighborsClassifier(n_neighbors=10))
y_val_pred = knn.fit(X_train.drop(columns=cols), y_train).predict(X_val.drop(columns=cols))

X_val['y_val_pred'] = y_val_pred
  

Я присоединяюсь к y_val_pred после предсказания, чтобы проверить, какие точки данных были неправильно классифицированы.