我使用 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: Found input variables with inconsistent numbers of samples: [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 的值。
编辑 以防万一您不知道这里的函数在哪里是导入语句
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, StandardScaler
关于python - 如何通过输入CSV文件在sklearn python中训练SVM模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54820210/