LinearSVC (scikit-learn) не продвигается

Я пытаюсь обучить линейную модель SVC (с помощью scikit-learn) для проблемы двоичной классификации изображений. Для обучения у меня есть около 60к обучающих изображений, каждое по 1800 пикселей. И да, я действительно хочу использовать алгоритмы, связанные с SVM, вместо глубокого обучения, потому что это для обучающих целей. Но проблема в том, что тренировка уже длится несколько часов, но никакого прогресса не показывает. Перед тренировкой я нормализовал значения пикселей до диапазона 0-1, разделив их на 255. Но в чем может быть проблема? Есть какие-нибудь советы, на что я могу настроить или на что обратить внимание?

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)

person Community    schedule 28.11.2019    source источник
comment
Не могли бы вы предоставить минимальный воспроизводимый пример? Как указано прямо сейчас, вопрос полностью зависит от данных: если бы данные, скажем, были сплошным белым шумом, то это именно то поведение, которого вы ожидаете.   -  person fuglede    schedule 29.11.2019
comment
Я добавил код, тем временем обучение было завершено с предупреждением о том, что модель не может сойтись после 1000 итераций. Значит ли это, что я могу просто увеличить количество итераций? Есть ли какие-то другие параметры / параметры, которые нужно настроить, чтобы он мог сойтись быстрее?   -  person    schedule 29.11.2019


Ответы (1)


Если ваш процесс идет медленно, одна из проблем может заключаться в том, что минимизатор какое-то время не движется по правильному пути. Это также упоминается здесь: 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

person PV8    schedule 29.11.2019