python - 如何通过输入CSV文件在sklearn python中训练SVM模型?

标签 python scikit-learn

我使用 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() 会给你或类似的东西,一些名称和一些值可能会更改,但整体结构将是相同的。 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/

相关文章:

python - 分区和 rpartiton 出现 TypeError : 'builtin_function_or_method' object has no attribute '__getitem__'

python - 如何将参数仅传递给 scikit 学习中管道对象的一部分?

python - 无法在 macOS Monterey 12.3 上安装 psycopg2-binary

Python - 将字符传递给 C 库

python - 使用 scikit-learn 的 WhiteKernel 进行高斯过程回归

python - Python 中的分层 K 折叠

Python:计算 TP、FP、FN и TN

python - 如何探索使用 scikit learn 构建的决策树

python - 根据形状对 numpy 数组列表进行分组。 Pandas ?

android - 使用 adb shell 获取 Android 目录中的文件数