Возможно ли разместить мой классификатор SVM в наборе данных с 4 характеристическими переменными, а затем отобразить результаты на двухмерной плоскости?
Это код:
import numpy as np
import pandas as pd
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
import matplotlib.pyplot as plt
X=dataset.iloc[:,0:2].values
Y=dataset.iloc[:,4].values
from sklearn.preprocessing import LabelEncoder
number=LabelEncoder()
Y=number.fit_transform(Y.astype('str'))
clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X, Y)
plot_decision_regions(X=X,
y=Y.astype(np.integer),
clf=clf,
legend=2)
На выходе получается изображение размером x на y, разделенное на 3 области.
введите описание изображения здесь
Я хочу изменить код так, чтобы классификатор соответствовал 4 переменным (не 2), но точки данных все еще были нанесены на 2D самолет.
Когда я изменяю
X=dataset.iloc[:,0:2].values
на X=dataset.iloc[:,0:4].values
Я получаю следующую ошибку: значения заполнителя должны быть предоставлены, когда X имеет более 2 обучающих функций
Я попытался установить clf на 4 переменные, затем изменил X обратно на X=dataset.iloc[:,0:2].values
перед запуском:
plot_decision_regions(X=X,
y=Y.astype(np.integer),
clf=clf,
legend=2)
Также не сработало. Я получаю следующую ошибку: X.shape 1 = 2 должно быть равно 4, количество функций во время обучения.
Как это можно сделать?