Линейно разделить спиральные данные

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

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

      def mapping(x, y):
    z = np.c_[(x, y)]

    z_1 = np.log(z[:,0]) * z[:,1]**2
    z_2 = -np.log(z[:,0]*z[:,1])
    z_3 = np.exp(z[:,1])*np.sqrt(2)

    trans_x = np.array([z_1, z_2, z_3])
    return trans_x

При просмотре в 3D я получаю следующий вывод

Похоже, один класс немного отделился. Может ли кто-нибудь сказать какие-либо другие функции, которые могут помочь в этом, чтобы точки были линейными?

0 ответов

Другие вопросы по тегам