【发布时间】:2016-09-28 13:03:05
【问题描述】:
我正在使用 Scikit-learn SVM 为 STL-10 数据集训练我的模型,该数据集包含 5000 个训练图像(10 个预定义折叠)。所以我有 5000*96*96*3 大小的数据集用于训练和测试目的。我使用以下代码对其进行训练并测量测试集的准确性。 (80% 20%)。最终结果是 0.323 准确度。如何提高 SVM 的准确性。
def train_and_evaluate(clf, train_x, train_y):
clf.fit(train_x, train_y)
#make 2D array as we can apply only 2d to fit() function
nsamples, nx, ny, nz = images.shape
reshaped_train_dataset = images.reshape((nsamples, nx * ny * nz))
X_train, X_test, Y_train, Y_test = train_test_split(reshaped_train_dataset, read_labels(LABEL_PATH), test_size=0.20, random_state=33)
train_and_evaluate(my_svc, X_train, Y_train)
print(metrics.accuracy_score(Y_test, clf2.predict(X_test)))
【问题讨论】:
-
如何提高 SVM 的准确性? 可能是特征工程,并尝试使用不同的内核,但您也可以提供有关数据集的更多详细信息。
-
我认为问题在于将我的数据从 (5000*96*96*3) 重塑为 (5000, 27648) 数据集。用数据集的链接更新了问题
标签: scikit-learn svm scikit-image