Por que não abordar a classificação através de regressão?

51

Alguns materiais que eu vi sobre aprendizado de máquina disseram que é uma má idéia abordar um problema de classificação por meio de regressão. Mas acho que sempre é possível fazer uma regressão contínua para ajustar os dados e truncar a previsão contínua para produzir classificações discretas. Então, por que é uma má ideia?

Strin
fonte
eu acho que a regressão é sempre mais complicado do que a classificação em ambiente de produção

Respostas:

57

".. abordagem do problema de classificação através de regressão .." por "regressão" Assumirei que você quer dizer regressão linear e compararei essa abordagem com a abordagem de "classificação" de ajustar um modelo de regressão logística.

Antes de fazer isso, é importante esclarecer a distinção entre modelos de regressão e classificação. Os modelos de regressão preveem uma variável contínua, como quantidade de chuva ou intensidade da luz solar. Eles também podem prever probabilidades, como a probabilidade de uma imagem conter um gato. Um modelo de regressão de previsão de probabilidade pode ser usado como parte de um classificador impondo uma regra de decisão - por exemplo, se a probabilidade for 50% ou mais, decida que é um gato.

A regressão logística prediz probabilidades e, portanto, é um algoritmo de regressão. No entanto, é comumente descrito como um método de classificação na literatura de aprendizado de máquina, porque pode ser (e geralmente é) usado para fazer classificadores. Também existem algoritmos de classificação "verdadeiros", como o SVM, que apenas prevêem um resultado e não fornecem uma probabilidade. Não discutiremos esse tipo de algoritmo aqui.

Regressão linear versus regressão logística em problemas de classificação

Como Andrew Ng explica , com regressão linear você ajusta um polinômio através dos dados - digamos, como no exemplo abaixo, estamos ajustando uma linha reta no conjunto de amostras {tamanho do tumor, tipo de tumor} :

insira a descrição da imagem aqui

Acima, os tumores malignos obtêm e os não-malignos obtêm , e a linha verde é a nossa hipótese . Para fazer previsões, podemos dizer que, para qualquer tamanho de tumor , se for maior que , predizemos tumor maligno; caso contrário, predizemos benigno.10h(x)xh(x)0.5

Parece que dessa maneira poderíamos prever corretamente cada amostra de conjunto de treinamento, mas agora vamos mudar um pouco a tarefa.

Intuitivamente, está claro que todos os tumores maiores que um determinado limiar são malignos. Então, vamos adicionar outra amostra com um tamanho enorme de tumor e executar a regressão linear novamente:

insira a descrição da imagem aqui

Agora nosso não funciona mais. Para continuar fazendo previsões corretas, precisamos alterá-lo para ou algo assim - mas não é assim que o algoritmo deve funcionar.h(x)>0.5malignanth(x)>0.2

Não podemos mudar a hipótese cada vez que uma nova amostra chega. Em vez disso, devemos aprender com os dados do conjunto de treinamento e, em seguida (usando a hipótese que aprendemos), fazer previsões corretas para os dados que não vimos antes.

Espero que isso explique por que a regressão linear não é a melhor opção para problemas de classificação! Além disso, você pode querer assistir ao VI. Regressão logística. Vídeo de classificação em ml-class.org, que explica a ideia em mais detalhes.


EDITAR

O probabilityislogic perguntou o que um bom classificador faria. Neste exemplo em particular, você provavelmente usaria regressão logística que pode aprender uma hipótese como esta (apenas estou inventando isso):

insira a descrição da imagem aqui

Observe que a regressão linear e a regressão logística fornecem uma linha reta (ou um polinômio de ordem superior), mas essas linhas têm um significado diferente:

  • h(x) para a regressão linear interpola ou extrapola a saída e prevê o valor de que não vimos. É simplesmente como conectar um novo e obter um número bruto, e é mais adequado para tarefas como prever, por exemplo, preço do carro com base em {tamanho do carro, idade do carro} etc.xx
  • h(x) para regressão logística indica a probabilidade de que pertence à classe "positiva". É por isso que é chamado algoritmo de regressão - estima uma quantidade contínua, a probabilidade. No entanto, se você definir um limite para a probabilidade, como , obterá um classificador e, em muitos casos, é isso que é feito com a saída de um modelo de regressão logística. Isso equivale a colocar uma linha no gráfico: todos os pontos acima da linha do classificador pertencem a uma classe, enquanto os pontos abaixo pertencem à outra classe.xh(x)>0.5

Portanto, a conclusão é que, no cenário de classificação, usamos um raciocínio completamente diferente e um algoritmo completamente diferente do que no cenário de regressão.

andreister
fonte
@andreister: Mas o que seria se todos os outliers fossem removidos ou truncados, a regressão linear ainda é uma má idéia?
Tomek Tarczynski
Seu exemplo é bom, no entanto, não mostra o que um "bom classificador" faria. você seria capaz de adicionar isso? observe que a adição de pontos de dados deve alterar a linha para praticamente qualquer método. Você não explicou por que essa é uma mudança ruim.
probabilityislogic
11
@andreister: Seu exemplo mostrou que alguns dados incorretos podem prejudicar a regressão linear. Mas podemos usar regressão quadrática ou hipótese ainda mais complicada para fazer da "regressão" um bom classificador?
Strin
11
@probabilityislogic - bom ponto, atualizei a resposta.
andreister
2
@Strin: Hipóteses mais complicadas têm mais probabilidade de superestimar os dados. (Ou seja, para ajustar as peculiaridades dos dados que você tem em mãos, resultando em um ajuste inadequado nos dados futuros.) Lembro-me de uma aula que fiz onde um cara da primeira fila tinha certeza de que o professor estava nos segurando e não nos dando os algoritmos sofisticados que nos permitiriam matar o mercado de eletricidade ... Ele nunca compreendeu o sobreajuste.
Wayne
14

Não consigo pensar em um exemplo em que a classificação seja realmente o objetivo final. Quase sempre o objetivo real é fazer previsões precisas, por exemplo, de probabilidades. Nesse espírito, a regressão (logística) é sua amiga.

Frank Harrell
fonte
5
Parece-me que o que é efetivamente a classificação é, em última análise, o objetivo em quase todos os processos automatizados nos quais é impraticável ou impossível ter intervenção ou julgamento humano. Ao receber, digamos, um barulhento transmitida sinal digital, o receptor não pode decidir que um pouco particular, deve ser de 0,97 em vez de 0 ou 1.
cardeal
6
Exceto pelo fato de que o custo de um falso positivo ou o custo de um falso negativo raramente estão sob o controle do analista que fez a classificação, portanto, o analista original não pode escolher com segurança o ponto de corte "correto" para a classificação. Além disso, é aconselhável ter uma "zona cinza" de risco intermediário na qual nenhuma classificação é feita e a recomendação é "obter mais dados".
31575 Frank Fellowski
11
Acho que acredito exatamente o oposto da afirmação nesta resposta e nunca encontrei essa perspectiva em toda a minha educação universitária em aprendizado de máquina. É muito surpreendente para mim que alguém diria isso. Na prática, quase sempre enfrentei problemas em que as pessoas pensam que desejam prever uma quantidade contínua, mas realmente desejam prever a associação em diferentes grupos categóricos dessa quantidade. Eu luto para encontrar casos em que realmente prever uma quantidade contínua é útil em termos da inferência substantiva subjacente ao problema.
Ely
9
Acho que você aceitou bastante o dogma do aprendizado de máquina. Você está fazendo um grande número de suposições injustificadas. Uma delas é que as pessoas realmente precisam de uma escolha forçada em um balde categórico. Eles podem alegar querer isso, mas na verdade não precisam disso na maioria das situações. As escolhas não precisam ser forçadas. Uma ótima opção é "sem decisão, obtenha mais dados". A previsão de uma quantidade contínua subjacente é geralmente o que é necessário. Vale a pena estudar a teoria da decisão ótima (Bayes). Se você pode fornecer um exemplo concreto, comentarei mais.
precisa
11
+1 no comentário de @Frank Harrell. Por exemplo, prever temperaturas, chuvas e níveis dos rios é imensamente mais útil do que prever que estará quente ou úmido ou inundará. Mesmo se o problema for ovelha ou cabra? uma estimativa de pr (ovelha) é mais informativa que "ovelha" ou "cabra" binária.
Nick Cox
1

Por que não olhar para algumas evidências? Embora muitos argumentem que a regressão linear não é adequada para classificação, ela ainda pode funcionar. Para ganhar alguma intuição, incluí a regressão linear (usada como classificador) na comparação de classificadores do scikit-learn . Aqui está o que acontece:

insira a descrição da imagem aqui

O limite de decisão é mais estreito do que com os outros classificadores, mas a precisão é a mesma. Assim como o classificador de vetor de suporte linear, o modelo de regressão fornece um hiperplano que separa as classes no espaço de recurso.

Como vemos, o uso da regressão linear como classificador pode funcionar, mas como sempre, eu validaria cruzadamente as previsões.

Para o registro, é assim que meu código classificador se parece:

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))
Nils
fonte
0

Além disso, para expandir as respostas já boas, para qualquer tarefa de classificação além de uma bivariada, o uso da regressão exigiria impor uma distância e uma ordem entre as classes. Em outras palavras, podemos obter resultados diferentes apenas alterando os rótulos das classes ou alterando a escala dos valores numéricos atribuídos (por exemplo, classes rotuladas como vs ) , que anula o objetivo do problema de classificação.1,10,100,...1,2,3,...

Nutle
fonte