我已使用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模型吗?
答案 0 :(得分:1)
由于问题从一开始就不是很清楚,并且试图解释这个问题是徒劳的,所以我决定下载数据集并自己完成。因此,为了确保我们使用相同的数据集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