2016-08-17 3 views
1

Я пытаюсь построить классификатор для прогнозирования рака молочной железы с использованием набора данных UCI. Я использую вспомогательные векторные машины. Несмотря на мои самые искренние усилия по повышению точности классификатора, я не могу выйти за пределы 97.062%. Я пробовал следующее:Методы повышения точности классификатора SVM

1. Finding the most optimal C and gamma using grid search. 
2. Finding the most discriminative feature using F-score. 

Может кто-нибудь предложить мне методы для повышения точности? Я нацелен на не менее 99%.

1.Data are already normalized to the ranger of [0,10]. Will normalizing it to [0,1] help? 

2. Some other method to find the best C and gamma? 
+0

Насколько я знаю, ответы на ваши вопросы - нет, и нет. –

+0

Это классное упражнение? –

+0

Нет, это не так. Я просто загрязняю руки в SVM. –

ответ

2

Для SVM, это важно, чтобы иметь такую ​​же масштабирования для всех функций и обычно это делается путем масштабирования значений в каждом (колонка) Функция таким образом, что среднее значение равно 0 и дисперсия 1. Другой способ заключается в масштабируйте его так, чтобы min и max были, например, 0 и 1. Однако между [0, 1] и [0, 10] нет никакой разницы. Оба будут показывать ту же производительность.

Если вы настаиваете на использовании SVM для классификации, другим способом, который может привести к улучшению, является создание нескольких SVM. Если вы используете Python, вы можете попробовать BaggingClassifier от sklearn.ensemble.

Также обратите внимание, что вы не можете ожидать получить какую-либо производительность из реального набора данных обучения. Я думаю, что 97% - очень хорошая производительность. Возможно, вы перегрузите данные, если подойдете выше этого.

+0

На самом деле, я просматривал статью, в которой автор добился точности и точности 99,51%, используя аналогичные методы, подобные моим. Я думал, что было бы неплохо поразить хотя бы 99%. –

+0

Было ли это с тем же набором данных? Это зависит от данных. Но обычно нужно делать компромисс между точностью и переобучением. С другой стороны, вы можете предотвратить переобучение, тщательно разделив набор данных на обучение и тестирование. Вы также должны использовать перекрестную проверку. Одним из распространенных типов является 10-кратная стратифицированная перекрестная проверка. –

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