Обучите модель SVC() с разными ядрами: 'rbf', 'sigmoid', 'linear', 'poly'. Для полиномиального ядра используйте полином второй степени. Выведите на экран тип ядра и значения accuracy.
# импорт необходимых библиотек
import pandas as pd
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# объявляем константу random_state
RANDOM_STATE = 77
# объявляем переменную с данными
# выделяем целевой и входные признаки
data_test = pd.read_csv('orders_seafood_test.csv')
X = data_test.drop(columns=['target', 'client_id'])
y = data_test['target']
# делим данные на тренировочные и валидационные
X_train, X_test, y_train, y_test = \
train_test_split(X, y, test_size=0.25, random_state=RANDOM_STATE)
# стандартизируем выборки
scaler = StandardScaler()
X_train_scalled = scaler.fit_transform(X_train)
X_test_scalled = scaler.transform(X_test)
# с помощью цикла обучите SVC с разными ядрами
# получите предсказание на валидационной выборке и посчитайте accuracy
kernels = ['rbf','sigmoid', 'linear', 'poly']
for kernel in kernels:
if kernel!='poly':
svc = SVC(kernel = kernel)
else:
svc = SVC(kernel = kernel, degree = 2)
svc.fit(X_train_scalled, y_train)
y_pred = svc.predict(X_test_scalled)
accuracy = accuracy_score(y_test, y_pred)
print(kernel, accuracy)
Результат
rbf 0.72
sigmoid 0.66
linear 0.78
poly 0.66