3

У меня есть два набора данных с разным размером.Как обновить модель SVM новыми данными

1) Набор данных 1 с высокими размерами 4500 образцов (зарисовки).

2) Набор данных 2 с образцами с минимальным размером 1000 (реальные данные). Я полагаю, что «оба набора данных имеют одинаковое распределение»

Я хочу тренировать нелинейную SVM модели с использованием sklearn на первом наборе данных (в качестве предварительного обучения), и после этого я хочу, чтобы обновить модель на части второго набора данных (чтобы соответствовать модели). Как я могу разработать своего рода обновление на sklearn. Как я могу обновить модель SVM?

ответ

8

В sklearn вы можете сделать это только для линейного ядра и используя SGDClassifier (с соответствующим выбором условий потери/штрафа, потеря должна быть шарниром и штраф L2). Инкрементальное обучение поддерживается с помощью методов partial_fit, и это не реализовано ни для SVC, ни для LinearSVC.

К сожалению, на практике установка SVM поэтапно для таких небольших наборов данных бесполезна. SVM легко получить глобальное решение, таким образом, вы не нуждаетесь в предварительном обучении любой формы, на самом деле он должен вообще не имеет значения, если вы думаете о предварительном обучении в смысле нейронной сети. Если это правильно реализовано, SVM должен полностью забыть предыдущий набор данных. Почему бы не узнать за все данные за один проход? Это то, что должен делать SVM. Если вы не работаете с некоторой невыпуклой модификацией SVM (тогда предварительная проверка имеет смысл).

Подводя итог:

  • С теоретической и практической точки зрения нет никакого смысла в pretraining SVM. Вы можете учиться только на втором наборе данных или на обоих в одно и то же время. Pretraining только разумным для методов, которые страдают от локальных минимумов (или жесткой конвергенции любого рода), поэтому нужно начинать с фактического решения, чтобы иметь возможность находить разумную модель (например, нейронные сети). SVM не один из них.
  • Вы можете использовать инкрементную подгонку (хотя в sklearn очень ограниченный) по соображениям эффективности, но для такого небольшого набора данных вы будете просто отлично подогнать весь набор данных сразу.
+0

Спасибо, хороший анализ – Jeanne

Смежные вопросы