python - 支持向量机 SVM python ValueError: X.shape[1]
问题描述
我得到错误:
“ValueError X.shape[1] = 2 应该等于 3,训练时的特征数”
当我实现代码的最后 4 行时。我需要一个未来,因为我一开始就有这个定义:X = train1.iloc[:, :3]。但我不知道该怎么做。我必须在最后 4 行添加什么来定义更多功能?
import numpy as np
import pandas as pd
from sklearn.svm import SVC
import matplotlib.pyplot as plt
%matplotlib inline
train1 = pd.read_csv(train)
X = train1.iloc[:, :3]
y = train1.iloc[:,4]
C = 1.0 # SVM regularization parameter
svc = svm.SVC(kernel='linear', C=1,).fit(X, y)
# create a mesh to plot in
x_min, x_max = X.iloc[:, 0].min() - 1, X.iloc[:, 0].max() + 1
y_min, y_max = X.iloc[:, 1].min() - 1, X.iloc[:, 1].max() + 1
h = (x_max / x_min)/100
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
np.arange(y_min, y_max, h))
plt.subplot(1, 1,1)
Z = svc.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)
解决方案
你的代码不完整,svm哪里来的?import sklearn
当您将数据集拆分为标签和特征时
X = train1.iloc[:, :3]
y = train1.iloc[:,4]
你是故意省略第三栏吗?你的 X 有 3 列[0,1,2]
,Y 是第 4 列,第 3 列丢失了。也许你的意思是:
X = train1.iloc[:, :4]
y = train1.iloc[:,4]
推荐阅读
- javascript - Reactjs 应用程序 - 无法使用 axios 获取数据
- redirect - 如何在 BTEQ 中为 teradata 获取错误消息
- php - 网站重定向到 index.php 没有 www
- javascript - 使用 javascript 插入 HTML 表单
- java - 我的 java tf-idf 程序没有读取它应该读取的文件
- regex - c# (Xamarin) 中的正则表达式货币格式
- javascript - 如何在jquery中使多个项目滑块无限重复
- templates - Groovy TemplateEngines 给出“不允许使用新 groovy.text.SimpleTemplateEngine 错误的脚本错误”
- c# - 如何通过比较另一个表来显示剩余数据
- python - Django:从命令行生成 python 代码