Home / Data Science / Linear regression

Linear regression

Linear regression é um método estatístico para encontrar relacionamentos entre variáveis.

Neste exemplo usaremos alguns conceitos básicos, como feature selection utilizando correlação, colinearidade e variação para prever o valor de uma casa.

Utilizaremos também o conceito de ordinary least squares estimation (OLS). Porém ele é executado de forma automática quando chamamos fit() em uma instância  LinearRegression do Sklearn

Vamos lá:

Preparando os dados

Verificando a quantidade de valores nulos.

Em seguida setando valores nulos para 0 ou N/A em caso colunas texto (categorical feature)

Em seguida convertemos as colunas com categorias para números. Mas atenção: esta nem sempre é uma boa opção, pois pode influenciar o resultado de forma negativa. Estou trabalhando desta maneira pois preciso saber qual a correlação das colunas de categorias (texto) em relação a minha coluna target SalePrice

Aqui começamos a aplicar algumas técnicas de Feature Selection

Correlação

Verificamos a correlação que as colunas possuem entre si. Oque nos importa é saber o valor do imóvel, logo temos a coluna/feature SalePrice como nosso target e precisamos saber quais colunas que possuem maior correlação com ela

Então optamos por usar apenas colunas com correlação á SalePrice maior que 0.3, reduzindo para 16 features nosso dataset

Colinearidade

A colinearidade ocorre quando duas colunas de features são altamente correlacionadas e correm o risco de duplicar informações. Se tivermos dois recursos que transmitem as mesmas informações usando duas medidas ou métricas diferentes, não precisamos manter os dois.

Perceba que Gr Liv Area e TotRms AbvGrd tem uma alta correlação, assim como Garage Area e Garage Cars. Logo, apenas uma de cada será necessária permanecer no dataset

Variação

Quando temos uma feature com baixa variação, ela não contribui muito para nosso modelo, já que varia pouco a informação. Por exemplo, uma feature onde todas as linhas possuem uma mesma informação, sua variação será zero. Para nosso modelo, estipulamos uma variação maior que 0.010

Pegamos então nossas categorical features que havíamos anteriormente convertido para número e invertemos novamente para labels.

Finalizamos pegando todas as categorical features (no caso restou apenas a “foundation”) e aplicamos o get_dummies do pandas para que seja criada uma coluna para cada categoria.

Por fim colocamos nossos dados em nosso modelo

Você pode baixar o código do arquivo clicando aqui e o dataset  clicando aqui

Leave a Reply

Your email address will not be published. Required fields are marked *