簡體   English   中英

如何通過輸入CSV文件訓練sklearn python中的SVM模型?

[英]How to train SVM model in sklearn python by input CSV file?

我使用了sklearn scikit python進行預測。 導入以下包時

從sklearn導入數據集並將結果存儲在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列。 需要適合該輸出列的模型。

如何為擬合模型提供論證?

任何人都可以共享代碼示例導入CSV文件以適應sklearn python中的SVM模型嗎?

由於這個問題一開始並不是很清楚,並且試圖解釋它是徒勞的,我決定下載數據集並為自己做。 因此,為了確保我們使用相同的數據集, iris.head()將為您提供類似的東西,可能會更改一些名稱和一些值,但整體結構將是相同的。 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的值。

編輯以防萬一你不知道函數在哪里是import語句

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

暫無
暫無

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

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