Eu sou novo no aprendizado de máquina e tento usar o scikit-learn (sklearn) para lidar com um problema de classificação. O DecisionTree e o SVM podem treinar um classificador para esse problema.
Uso sklearn.ensemble.RandomForestClassifier
e sklearn.svm.SVC
ajusto os mesmos dados de treinamento (cerca de 500.000 entradas com 50 recursos por entrada). O RandomForestClassifier sai com um classificador em cerca de um minuto. O SVC usa mais de 24 horas e continua funcionando.
Por que o SVC funciona tão ineficientemente? O conjunto de dados é muito grande para o SVC ? O SVC é impróprio para esse problema?
Árvores de decisão e florestas aleatórias são, na verdade, classificadores extremamente bons. Embora os SVMs (Support Vector Machines) sejam vistos como mais complexos, isso não significa que eles terão um desempenho melhor.
O artigo "Uma comparação empírica de algoritmos de aprendizado supervisionado" da Rich Caruana comparou 10 classificadores binários diferentes, SVM, Redes Neurais, KNN, regressão logística, Bayes ingênuas, florestas aleatórias, árvores de decisão, árvores de decisão em saco, árvores de decisão reforçada e decisão com bootstrap Árvores em onze conjuntos de dados diferentes e compararam os resultados em 8 métricas de desempenho diferentes.
Eles descobriram que as árvores de decisão impulsionadas chegaram primeiro com as florestas aleatórias e depois as árvores de decisão em saco e depois o SVM
Os resultados também dependerão de quantas classes você está realmente classificando.
fonte
"se um problema é linear ou não" Em um problema de classificação binária, se o conjunto de dados pode ser separado por um hiperplano, é um problema linear.
Se o conjunto de dados não for separável linear, enquanto você tenta um classificador linear para encontrar um hiperplano inexistente, o algoritmo pode parecer funcionar para sempre.
Uma sugestão: você pode experimentar uma pequena parte de seus dados e experimentar esses algoritmos para verificar se funciona em um pequeno conjunto de dados. Aumente o conjunto de dados para verificar quando esse problema ocorre.
fonte