Skip to content

Engenharia de Atributos

Limpeza Inicial

1. Remoção de Categorias Irrelevantes em MS.Zoning

Algumas categorias na variável MS.Zoning representam propriedades não-residenciais, o que não é relevante para nosso estudo focado em propriedades residenciais. As categorias removidas foram:

  • C (all): Comercial
  • A (agr): Agricultura
  • I (all): Industrial

Reclassificação de Categorias em Sale.Type e Sale.Condition

Para melhorar a representatividade e simplificar a análise, realizamos a seguinte reclassificação:

  • Agrupamos todos os tipos de escritura de garantia em uma nova categoria chamada GroupedWD.
  • Mantivemos a categoria New como está.
  • Agrupamos as demais categorias menos representativas em uma nova categoria chamada Other.

Remoção da Coluna Street

A classe Grvl na variável Street possui baixa representatividade, tornando a variável irrelevante para a análise. Portanto, removemos a coluna Street do conjunto de dados.

Reclassificação das Colunas Condition.1 e Condition.2

Para melhorar a análise das condições dos arredores da casa, realizamos a seguinte reclassificação:

  • Agrupamos as categorias de proximidade com a ferrovia (RRAn, RRAe, RRNn, RRNe) em Railroad.
  • Agrupamos as categorias Feedr e Artery em Roads.
  • Agrupamos as categorias PosA e PosN em Positive.

Consolidação das Condições em uma Única Coluna

Com essas reclassificações, combinamos as colunas Condition.1 e Condition.2 em uma única coluna categórica chamada Condition, com as seguintes categorias:

  • Norm: Quando Condition.1 é Norm.
  • Railroad: Quando Condition.1 é Railroad e Condition.2 é Norm.
  • Roads: Quando Condition.1 é Roads e Condition.2 não é Railroad.
  • Positive: Quando Condition.1 é Positive.
  • RoadsAndRailroad: Quando (Condition.1 é Railroad e Condition.2 é Roads) ou (Condition.1 é Roads e Condition.2 é Railroad).

Transformação de Colunas com Muitos Valores Ausentes (Misc.Feature e Alley)

As colunas Misc.Feature e Alley contêm muitos valores ausentes. Criamos novas variáveis binárias para indicar a presença de um barracão (shed) e de um acesso a beco (alley), respectivamente.

1. Transformação de Misc.Feature para HasShed

Transformamos a coluna Misc.Feature em HasShed, indicando se a casa possui um barracão (shed). Definimos HasShed como True quando Misc.Feature possui o valor Shed e False nos demais casos.

2. Transformação de Alley para HasAlley

Transformamos a coluna Alley em HasAlley, indicando se a casa possui acesso a um beco (alley). Definimos HasAlley como True para casas onde Alley não é nulo, e False nos demais casos.

Consolidação e Reclassificação dos Revestimentos Externos

Para melhorar a representatividade e simplificar a análise das variáveis de revestimento externo (Exterior.1st e Exterior.2nd), realizamos as seguintes transformações:

Padronizamos algumas categorias em Exterior.2nd e agrupamos materiais externos menos representativos em uma nova categoria chamada Other. Consolidamos a informação de revestimento externo em uma única variável chamada Exterior, mantendo apenas a primeira coluna (Exterior.1st) e removendo ambas as colunas originais após a transformação.

Remoção da Coluna Heating por Baixa Variabilidade

A coluna Heating possui baixa variabilidade, fornecendo pouca informação útil para a análise. Optamos por descartá-la.

Ajustes nas Colunas Roof.Matl e Roof.Style

Removemos a coluna Roof.Matl devido à baixa representatividade das categorias menores. Na coluna Roof.Style, agrupamos categorias menores em Other para simplificar a análise.

Ajustes na Coluna Mas.Vnr.Type

Agrupamos as categorias menores BrkCmn e CBlock em Other na coluna Mas.Vnr.Type. Valores ausentes foram adicionados à categoria None.

Simplificação da Coluna MS.SubClass

Reagrupamos as categorias menos representativas em MS.SubClass em uma nova categoria chamada Other.

Agrupamento de Categorias Menores na Coluna Foundation

Agrupamos categorias com baixa representatividade na coluna Foundation em Other.

Remoção de Categorias com Baixa Representatividade na Coluna Neighborhood

Optamos por remover linhas correspondentes a bairros com baixa representatividade na coluna Neighborhood, como:

  • Blueste
  • Greens
  • GrnHill
  • Landmrk

Criação da Categoria NoGarage na Coluna Garage.Type

Criamos a categoria NoGarage na coluna Garage.Type para representar residências sem garagem.

Remoção da Coluna Utilities por Baixa Representatividade

Removemos a coluna Utilities devido à baixa representatividade.

Remoção da Coluna Pool.QC por Quantidade Elevada de Valores Ausentes

Removemos a coluna Pool.QC devido à alta quantidade de valores ausentes e baixa variabilidade.

Tratamento da Coluna Fence para Representar Ausência de Cerca

Criamos a categoria NoFence na coluna Fence para representar residências sem cerca, atribuindo valores ausentes a essa nova categoria.

Remoção da Coluna Fireplace.Qu devido à Redundância e Alta Ausência de Dados

Removemos a coluna Fireplace.Qu devido à redundância com a coluna Fireplaces e alta quantidade de valores ausentes.

Ajustes nas Colunas de Condição e Acabamento da Garagem

Transformamos Garage.Finish de uma variável ordinal para nominal, criando a categoria NoGarage para valores ausentes.

Tratamento da Coluna Electrical para Preenchimento de Valor Ausente

Preenchemos o único valor ausente na coluna Electrical com a categoria SBrkr.

Tratamento de Valores Ausentes nas Colunas do Porão (Bsmt.Exposure, Bsmt.Qual, Bsmt.Cond, BsmtFin.Type.1, BsmtFin.Type.2)

Criamos a categoria NA para valores ausentes nas colunas do porão e as transformamos em variáveis nominais.

Transformação da Coluna SalePrice para Logaritmo de Base 10

Transformamos a variável SalePrice usando o logaritmo de base 10 para normalizar a distribuição dos preços.

Imputação de Valores Ausentes em Lot.Frontage

Imputamos os valores ausentes de Lot.Frontage com a mediana dessa variável.

Correção e Imputação da Idade da Garagem (Garage.Yr.Blt)

Corrigimos inconsistências na variável Garage.Yr.Blt e imputamos valores ausentes com a mediana da idade da garagem.

Transformação das Variáveis Year.Remod.Add e Year.Built para Idade

Transformamos as variáveis Year.Remod.Add e Year.Built para representar a idade do imóvel no momento da venda.

Imputação de Valores Ausentes na Coluna Mas.Vnr.Area

Imputamos os valores ausentes na coluna Mas.Vnr.Area com zero, indicando a inexistência de revestimento.

Transformações

Transformação Logarítmica das Variáveis Lot.Area e Mas.Vnr.Area

Após análise da distribuição dos dados e dos resultados do gráfico logarítmico, consideramos transformar as variáveis Lot.Area e Mas.Vnr.Area usando o logaritmo. Essa transformação é intuitiva ao observar o impacto da área no mundo real: quando a área é pequena, um aumento em metros quadrados tem grande relevância para o comprador; no entanto, em propriedades muito grandes, a adição de área não altera tanto o valor percebido. Assim, o impacto da área segue uma escala logarítmica, onde o aumento inicial é mais significativo, enquanto aumentos adicionais têm efeito menor.

Essa transformação ajuda o modelo a capturar o impacto real da área sobre o valor do imóvel, facilitando uma representação mais precisa do comportamento do comprador e do valor de mercado em relação ao tamanho da área.

Aplicação da Transformação Logarítmica e Tratamento de Infinitos

Aplicamos a transformação logarítmica em várias variáveis (Mas.Vnr.Area, Lot.Area, Lot.Frontage, Bsmt.Unf.SF, e House.Age) para capturar melhor a relação entre essas áreas e o valor do imóvel. Ao aplicar o logaritmo, valores extremamente pequenos podem resultar em infinitos negativos, enquanto valores grandes podem gerar infinitos positivos. Para lidar com esses casos, substituímos quaisquer valores infinitos resultantes por NaN, permitindo um tratamento apropriado desses dados em etapas subsequentes do processo de limpeza e modelagem.

Transformação de Pool.Area, Screen.Porch, 3Ssn.Porch e Enclosed.Porch para Variáveis Categóricas

As variáveis Pool.Area, Screen.Porch, 3Ssn.Porch e Enclosed.Porch apresentaram uma distribuição de valores que sugere que muitos registros indicam a ausência dessas características, ao invés de uma qualidade ou quantidade. Para capturar melhor essa informação, decidimos transformar essas variáveis em variáveis categóricas binárias, indicando apenas se a residência possui ou não essas características. Essa transformação simplifica o modelo e ajuda a distinguir claramente entre propriedades com e sem esses elementos.