首页 > 解决方案 > LinearSVC(scikit-learn)没有取得任何进展

问题描述

我正在尝试为图像二进制分类问题训练一个线性 SVC 模型(使用 scikit-learn)。对于训练,我有大约 6 万张训练图像,每张都有 1800 像素。是的,我真的很想使用 SVM 相关的算法而不是深度学习,因为它是为了学习目的。但问题是,培训已经花费了几个小时,但并没有显示出任何进展。在训练之前,我通过除以 255 将像素值归一化为 0-1 范围。但是这里可能有什么问题?有什么我可以调整或注意的建议吗?

dataX = dataX/255.
dataY = np.ravel(dataY)

X_train, X_test, y_train, y_test = train_test_split(dataX, dataY, test_size=0.1, random_state=24, shuffle=True)

linear_classifier = svm.LinearSVR(random_state=0, tol=1e-5, verbose=1, max_iter=1000)
linear_classifier.fit(X_train, y_train)

标签: pythonmachine-learningscikit-learnsvmsvc

解决方案


如果您的过程很慢,一个问题可能是最小化器在一段时间内不在正确的轨道上。这里也提到了这一点:ConvergenceWarning: Liblinear 收敛失败,增加迭代次数

对于您的第一步可能是更改迭代次数:

 svm.LinearSVR(random_state=0, tol=1e-5, verbose=1, max_iter=10000)

在文档中,您还可以找到可以调整的其他参数:https ://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html


推荐阅读