是否可以将我的SVM分类器拟合到具有4个特征变量的数据集上,然后将结果绘制在2D平面上?
这是代码:
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 x y图像,分为3个区域。
我想更改代码,以使分类器适合4个变量(而不是2个),但数据点仍绘制在2D平面上。
当我更改
X=dataset.iloc[:,0:2].values
至X=dataset.iloc[:,0:4].values
我收到以下错误消息:X具有两个以上的训练功能时,必须提供填充值
我尝试对4个变量拟合clf,然后将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,即训练时的要素数量。
任何方法都可以做到吗?