#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
после предсказания, чтобы проверить, какие точки данных были неправильно классифицированы.