Após filtrar algumas colunas com base na tolerância de valores vazios, foram separados os dados de treino e teste, aplicado preenchimento de dados vazios e transformações de informações textuais em variáveis dummies. Outra forma de selecionar options é de acordo com a variância mínima dos dados.
A variância mínima das options auxilia na seleção de características que possuem um comportamento que não é constante, mas porque isso é importante?
Dentro do contexto dessa base, por exemplo, o modelo busca prever valores de imóveis. Mas digamos que seja uma base de dados apenas com imóveis da cidade de São Paulo, faz sentido adicionar uma variável que diga que esses imóveis são da cidade de São Paulo, já que essa informação é constante nesse contexto? Nesse caso, seria uma characteristic que não agregaria e iria apenas adicionar um custo de processamento.
Após essa breve explicação, a biblioteca Scikit Learn contém uma seção apenas para métodos de seleção de options, entre estas tem a função Variance Threshold, que aplica um limite mínimo de variância que uma characteristic deve conter para estar no modelo.
model_pipeline = Pipeline(steps=[
('preprocessor', preprocessor),
('varianceThreshold', VarianceThreshold(0.01)),
('randomForest', RandomForestRegressor())
])model_pipeline.match(X_train, y_train)
No código acima temos um pipeline que determina steps que devem ser seguidos — reforçando que o script inteiro está no Github. O importante no momento é 2° step. Após o 1° step que realiza alguns tratamentos iniciais, o 2° step aplica a função Variance Threshold com a variância mínima de 1%, para depois aplicar um modelo de regressão de Random Forest para previsão do valor do imóvel.