Я пытаюсь построить границы решений для SVM
с разными ядрами, такими как rbf
, poly
и linear
.
Я использую набор данных iris
, доступный онлайн, который имеет форму 150 * 4, поэтому я удалил 4-й признак, и теперь он имеет форму 150 * 3. Обратите внимание, что каждый класс теперь содержит 50 образцов с 3 функциями в порядке их появления.
class1 = iris[:50, :], class2 = iris[50:100, :], class3 = iris[100:150, :]
Я уже построил график с «линейным» ядром, НО я понятия не имею, как построить график с другими ядрами. Я искал несколько дней и не нашел ничего, что я мог бы понять или использовать.
Это две поверхности, которые разделяют разные классы
z_linear = lambda x, y: (-clf.intercept_[0] - clf.coef_[0][0] * x - clf.coef_[0][1] * y) / clf.coef_[0][2]
w_linear = lambda x, y: (-clf.intercept_[2] - clf.coef_[2][0] * x - clf.coef_[2][1] * y) / clf.coef_[2][2]
Теперь мне нужно построить 3 класса и поверхности, которые их разделяют, используя другие ядра (например, «rbf», «poly» со «степенью = 3»)