簡體   English   中英

在python中使用SVM進行分類

[英]Classification using SVM in python

我有一個包含2列的csv數據集,我想訓練SVM分類器,然后在給出X值時預測Y值。

我的數據集格式

    X,Y
    1.84166666681401,2
    ....
    1.283333,4

Y數組僅(1,2,3,4)

Python代碼是:

import numpy
from sklearn import svm
import pandas as pd

x = pd.read_csv('train.csv', usecols=['1.84166666681401'])
y = pd.read_csv('train.csv', usecols=['2'])

x=numpy.array(x)
y=numpy.array(y)
clf = svm.SVC(C=1,kernel="linear")
clf.fit(x,y)
print(clf.predict(0.7882234))

但是我在運行代碼時出錯

    Warning (from warnings module):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/validation.py", line 578
    y = column_or_1d(y, warn=True)
DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().

如何解決呢?

如警告所述,您傳入的是列向量( [(1,), (2,), (3,)] )而不是行向量( [1, 2, 3] )。 執行numpy.array(x).ravel()而不是numpy.array(x)來展平它。

x=numpy.array(x) y = y.reshape(len(dataset),1)之前添加這段代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM