Kaue Abbehausen
Kaue Abbehausen22/05/2024 15:33
Compartilhe

Linearização para Regressão Linear

    Introdução

    Linearização é uma técnica muito útil para transformar dados não lineares em naqueles que se comportem como uma linha reta. Cabe já falar que devemos sempre tomar cuidados matemáticos muito importantes, que se forem esquecidos, as nossas regressões nos retornarão valores errados. Sem mais delongas vamos entender a linearização.

    Linearização: quando fazer?

    Em cursos onde se realizam bastantes análises experimentais, como física, que é o meu caso, utiliza-se bastante a técnica de linearização. Esta técnica permite realizar a regressão linear e obter os resultados, que no caso da física são valores dos coeficientes que tem sentido físico. A própria aceleração da gravidade é “medida” desta forma, e este é um assunto para outro momento.

    O momento que devemos realizar a linearização dos dados é quando soubermos que os dados não seguem uma tendência linear. Para obter essa informação temos algumas opções:

    1 — Conhecemos a equação que representa o evento observado

    2 — Observamos graficamente a relação entre a variável dependente em função da variável independente

    3 — Fazemos a regressão linear e testamos.

    Aqui focarei na alternativa 2 que é mais abrangente. Para tal temos que observar a tendência dos dados. Uma tendência linear tem o padrão do gráfico à esquerda, enquanto a tendência da equação que usamos de exemplo é do gráfico a direita. Basicamente, se o gráfico entre as variáveis não tem tendência linear, então a linearização pode ser utilizada. Fica aqui a importância da análise exploratória antes de realizar o Machine learning.

    image

    Linearização: como fazer?

    2 — Logaritmo

    O logaritmo é a melhor forma para linearizar, isto porque não precisa saber qual a equação que governa as relações entre os dados. Você admite que é uma multiplicação entre os dados e calcula o logaritmo. Quando você fizer isso os dados serão linearizados por causa das propriedades do logaritmo. Segue o exemplo no python.

    image

    image

    Para esta técnica devemos nos preocupar com os dados passados e com os dados que serão previstos. A regressão linear é testada em cima dos dados da linearização, que são logaritmos dos dados obtidos, por isso devemos passar o logaritmo dos dados desejados para realizarmos nossa previsão. E o valor que vamos receber de previsão também é o logaritmo. Para obtermos o valor explicitamente sem o logaritmo devemos realizar a operação contrária do logaritmo, que é a exponenciação. Se você utilizou, como eu, np.log para calcular o logaritmo bastar elevar seu valor previsto usando np.e.

    Conclusão

    Apresentei duas formas de realizar linearizações, e que podem ser muito úteis para o seu dia a dia analisando dados. É preciso não esquecer a matemática para fazer as linearizações, pois assim também deixaremos de lado as questões que devemos lidar no momento de obter nossos valores previstos da regressão.

    Devo dizer que omiti aqui a diferença entre np.log e np.log10, dois métodos do numpy. Esta discussão será deixada para outra publicação. Até lá sinta-se a vontade para testar as técnicas de linearização e ver como fiz essas técnica de forma bem simples no meu notebook.

    Segue meu github e minha despedida, até a próxima!

    https://github.com/KaueAbbe

    Algumas referências e sugestões de leitura

    Regressão Linear pela IBM

    Métodos dos Mínimos Quadrados e Regressão Linear Simples

    Compartilhe
    Comentários (1)
    Carlos Lima
    Carlos Lima - 22/05/2024 17:14

    É uma dica importante Kaue, o próprio Sklearn possibilita algumas transformações e acontece de ser útil em algumas situações, no geral quando quero evitar de ter que lidar com isso escolho algorítimos baseados em Decision Trees como o XGBOOST, ou RanfomForestClassification.


    Ótimo artigo :)