【问题标题】:How to train SVM model in sklearn python by input CSV file?如何通过输入 CSV 文件在 sklearn python 中训练 SVM 模型?
【发布时间】:2019-05-13 18:03:03
【问题描述】:

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

from sklearn import datasets 并将结果存储在 iris = datasets.load_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 文件来训练模型,也为 target_names 创建新数组时,我遇到了一些错误,例如

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

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

如何为拟合模型提供参数?

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

【问题讨论】:

  • 您好,欢迎来到stack Overflow,请通过How to ask Questios,用最小可验证的例子提问,你做了什么,上传一些导致错误的代码sn-ps。跨度>
  • csv 文件有多少列?你能分享print(iris.columns())的输出吗?
  • iris.columns Index([u'Sepal_Length', u'Sepal_Width', u'Petal_Length', u'Petal_Width', u'Species'], dtype='object')
  • @KavinRaj 如果您要向您的问题添加其他信息,首选方法是编辑您的问题
  • @KavinRaj 您的 fit 语句中还有多个问题,您应该将它们拟合为 numpy 数组,第二个变量是您的目标,您需要在问题中指定您想要的它是。

标签: python scikit-learn


【解决方案1】:

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

现在前四列是特征,第五列是目标/输出。

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

X = iris[ ['sepal length:','sepal Width:','petal length','petal width']].values
Y = iris[['Target']].values

现在由于 Y 是分类数据,您需要使用 sklearn 的 LabelEncoder 对其进行一次热编码并缩放输入 X 以使用

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

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 2015-09-18
    • 2017-11-29
    • 2019-07-10
    • 2023-04-09
    • 2022-01-06
    相关资源
    最近更新 更多