Задача B. Kernel trick

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Пусть заданы 4 набора точек: squares, circles, moons, spirals, которые можно скачать здесь.

Требуется на языке Python реализовать 4 функции, преобразующие соответствующие наборы точек так, чтобы они были идеально разделимы линейным методом опорных векторов, а именно sklearn.svm.SVC(kernel='linear').


import numpy as np

def transform_squares(X: np.ndarray) -> np.ndarray:
    pass

def transform_circles(X: np.ndarray) -> np.ndarray:
    pass

def transform_moons(X: np.ndarray) -> np.ndarray:
    pass

def transform_spirals(X: np.ndarray) -> np.ndarray:
    pass

При решении задачи запрещено использовать условные операторы и операторы сравнения.

Формат входных данных

Каждая функция принимает двумерный np.array, имеющий размеры (1200, 2). Функции проверяются в порядке их определения в задаче.

Формат выходных данных

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


0.200s 0.012s 17