![](/img/trans.png)
[英]How to get confidence of model prediction in python & sklearn.svm.SVC
[英]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()
將為您提供類似的東西,可能會更改一些名稱和一些值,但整體結構將是相同的。
現在前四列是功能,第五列是目標/輸出。
現在你需要你的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.