Sou um entusiasta da programação e aprendizado de máquina. Apenas alguns meses atrás, comecei a aprender sobre programação de aprendizado de máquina. Como muitos que não têm formação científica quantitativa, também comecei a aprender sobre ML, mexendo com os algoritmos e conjuntos de dados no pacote ML amplamente utilizado (caret R).
Há algum tempo, li um blog em que o autor fala sobre o uso da regressão linear no ML. Se bem me lembro, ele falou sobre como todo o aprendizado de máquina no final usa algum tipo de "regressão linear" (não tenho certeza se ele usou esse termo exato), mesmo para problemas lineares ou não lineares. Naquela época eu não entendi o que ele quis dizer com isso.
Meu entendimento sobre o uso de aprendizado de máquina para dados não lineares é usar um algoritmo não linear para separar os dados.
Este foi o meu pensamento
Digamos que para classificar dados lineares, usamos a equação linear para dados não lineares usamos a equação não linear, digamosy = s i n ( x )
Esta imagem foi tirada do site sikit learn da máquina de vetores de suporte. No SVM, usamos diferentes kernels para fins de ML. Então, meu pensamento inicial era que o kernel linear separa os dados usando uma função linear e o kernel RBF usa uma função não linear para separar os dados.
Mas então eu vi este blog onde o autor fala sobre redes neurais.
Para classificar o problema não linear na subparcela esquerda, a rede neural transforma os dados de tal maneira que, no final, podemos usar uma separação linear simples para os dados transformados na subparcela direita
Minha pergunta é se todos os algoritmos de aprendizado de máquina no final usam uma separação linear para classificar (conjunto de dados linear / não linear)?
Respostas:
A resposta é não. User20160 tem uma resposta perfeita, adicionarei 3 exemplos com visualização para ilustrar a ideia. Observe que esses gráficos podem não ser úteis para você ver se a "decisão final" está na forma linear, mas lhe dá algum sentido sobre árvore, aumento e KNN.
Começaremos com árvores de decisão. Com muitas divisões, é um limite de decisão não linear. E não podemos pensar que todas as divisões anteriores sejam "transformações de recursos" e que haja uma linha de decisão final no final.
Outro exemplo é o modelo de reforço, que agrega muitos "classificadores fracos" e o limite de decisão final não é linear. Você pode pensar que é um código / algoritmo complicado para fazer a previsão final.
Por fim, pense em K vizinhos mais próximos (KNN). Também não é uma função de decisão linear na camada final. além disso, não há "transformações de recursos" no KNN.
Aqui estão três visualizações no espaço 2D (Tree, Boosting e KNN de cima para baixo). A verdade fundamental é que 2 espirais representam duas classes, e a subparcela esquerda é a previsão do modelo e a subparcela direita é os limites de decisão do modelo.
EDIT: a resposta de @ ssdecontrol neste post oferece outra perspectiva.
Depende de como definimos a "transformação" .
fonte
spirals
muito em minhas experiências). Uma sugestão: plote os limites da decisão comoimage
e, talvez, adicione níveis de probabilidade (se você estiver usando saídas probabilísticas) comcontour
.Alguns algoritmos usam um hiperplano (função linear) para separar os dados. Um exemplo proeminente é a regressão logística. Outros usam um hiperplano para separar os dados após uma transformação não linear (por exemplo, redes neurais e máquinas de vetores de suporte com núcleos não lineares). Nesse caso, o limite de decisão não é linear no espaço de dados original, mas linear no espaço de recurso no qual os dados são mapeados. No caso de SVMs, a formulação do kernel define esse mapeamento implicitamente. Outros algoritmos usam vários hiperplanos de divisão em regiões locais do espaço para dados (por exemplo, árvores de decisão). Nesse caso, o limite de decisão é linear por partes (mas não linear em geral).
No entanto, outros algoritmos têm limites de decisão não lineares e não são formulados em termos de hiperplanos. Um exemplo de destaque é a classificação de vizinhos mais próximos. Classificadores de conjuntos (por exemplo, produzidos por reforço ou empacotamento de outros classificadores) geralmente não são lineares.
fonte