如何通过输入CSV文件在sklearnpython中训练SVM模型?

如何通过输入CSV文件在sklearnpython中训练SVM模型?,python,scikit-learn,Python,Scikit Learn,我使用sklearn-scikit-python进行预测。在导入以下包时 从sklearn导入数据集并将结果存储在iris=dataset中。加载iris(),可以很好地训练模型 iris = pandas.read_csv("E:\scikit\sampleTestingCSVInput.csv") iris_header = ["Sepal_Length","Sepal_Width","Petal_Length","Petal_Width"] 模型算法: model = SVC(gam

我使用sklearn-scikit-python进行预测。在导入以下包时

从sklearn导入数据集并将结果存储在iris=dataset中。加载iris(),可以很好地训练模型

iris = pandas.read_csv("E:\scikit\sampleTestingCSVInput.csv") 
iris_header = ["Sepal_Length","Sepal_Width","Petal_Length","Petal_Width"] 
模型算法:

model = SVC(gamma='scale')
model.fit(iris.data, iris.target_names[iris.target])
但是,在将CSV文件导入到训练模型、为目标_名称创建新数组时,我遇到了一些错误,如

ValueError:找到的输入变量的数量不一致 样本:[150,4]

我的CSV文件有5列,其中4列为输入,1列为输出。需要适合该输出列的模型

如何为fit模型提供参数


任何人都可以分享代码示例来导入CSV文件以适应sklearn python中的SVM模型吗?

由于问题一开始不是很清楚,并且试图解释它是徒劳的,所以我决定下载数据集并自己做。因此,为了确保我们使用的是相同的数据集
iris.head()
将为您提供或类似的内容,可能会更改一些名称和值,但总体结构将是相同的。

现在,前四列是features,第五列是target/output

现在,您需要将X和Y作为numpy数组来使用

X = iris[ ['sepal length:','sepal Width:','petal length','petal width']].values
Y = iris[['Target']].values
label_encoder = LabelEncoder()
Y = label_encoder.fit_transform(Y)
X = StandardScaler().fit_transform(X)
现在,由于Y是分类数据,您需要使用sklearn的LabelEncoder对其进行一次热编码,并缩放输入X以实现该用途

X = iris[ ['sepal length:','sepal Width:','petal length','petal width']].values
Y = iris[['Target']].values
label_encoder = LabelEncoder()
Y = label_encoder.fit_transform(Y)
X = StandardScaler().fit_transform(X)
为了保持列车和测试数据分离的规范,使用

X_train , X_test, y_train, y_test = train_test_split(X,Y)
现在只需使用X_-train和y_-train在您的模型上进行训练

clf = SVC(C=1.0, kernel='rbf').fit(X_train,y_train)
在此之后,您可以使用测试数据来评估模型,并根据需要调整C的值

编辑以防您不知道函数的位置此处是导入语句

from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, StandardScaler

您好,欢迎来到stack Overflow,请通过一个最小的可验证示例提问,您做了什么,上传了一些导致错误的代码片段。csv文件中有多少列?如果您正在向您的问题添加其他信息,您能否共享
print(iris.columns())
iris.columns
索引([u'Sepal_Length',u'Sepal_Width',u'Petal_Length',u'Petal_Width',u'Species',dtype='object的输出,首选方法是通过编辑question@KavinRaj另外,fit语句中有多个问题,您应该将它们作为numpy数组进行拟合,第二个变量是您的目标,您需要在问题中指定它是什么。