O Extreme Gradient Boosting (XGBoost) é um algoritmo eficiente de árvore de gradient boosting, amplamente utilizado para classificação e regressão. O modelo XGBoost gbtree usa árvores de decisão como aprendizes base. Este tópico descreve como usar um conjunto de dados imobiliários para treinar o modelo XGBoost gbtree e, em seguida, usar o modelo treinado para prever o preço de imóveis.
Preparar os dados
Como exemplo, o dataset Boston é usado como conjunto de dados de treinamento. A tabela a seguir descreve a estrutura de dados do dataset.
|
Nome da coluna |
Descrição |
Tipo de dado |
|
crim |
Taxa de criminalidade urbana per capita. |
FLOAT |
|
zn |
Proporção de propriedades residenciais com mais de 25.000 pés quadrados. |
FLOAT |
|
indus |
Proporção de propriedades comerciais não varejistas por município. |
FLOAT |
|
chas |
Indica se há um canal de rio nas proximidades. |
INT |
|
nox |
Concentração de óxido de nitrogênio (uma parte em dez milhões). |
FLOAT |
|
rm |
Número médio de cômodos por residência. |
FLOAT |
|
age |
Proporção de residências principais construídas antes de 1940. |
FLOAT |
|
dis |
Distância média até cinco centros de emprego. |
FLOAT |
|
rad |
Distância até a rodovia expressa. |
INT |
|
tax |
Taxa total de imposto predial por USD 10.000. |
INT |
|
ptratio |
Proporção de professores e alunos por município. |
FLOAT |
|
b |
Proporção de residentes urbanos afro-americanos. |
FLOAT |
|
lstat |
Proporção de residentes com baixa renda. |
FLOAT |
|
medv |
Valor médio das residências principais. |
FLOAT |
Treinar um modelo
Use a tabela boston.train para treinar um modelo e a tabela boston.test para prever dados. Durante o treinamento do modelo, o RDS SQLFlow classifica automaticamente os conjuntos de dados de treinamento para gerar um conjunto de treinamento e um conjunto de validação.
-
Na interface de linha de comando do cliente RDS SQLFlow, execute as seguintes instruções SQL para treinar um modelo:
SELECT * FROM boston.train TO TRAIN xgboost.gbtree WITH objective="reg:squarederror", train.num_boost_round = 30 COLUMN crim, zn, indus, chas, nox, rm, age, dis, rad, tax, ptratio, b, lstat LABEL medv INTO sqlflow_models.my_xgb_regression_model;A instrução
SELECTextrai os dados de treinamento da tabela boston.train. A instruçãoTO TRAINespecifica o modelo a ser usado, que é o xgboost.gbtree. A instruçãoWITHconfigura os parâmetros de treinamento. A instruçãoCOLUMNespecifica as colunas de features. A instruçãoLABELdefine a coluna alvo. Por fim, a instruçãoINTOdefine o local de armazenamento do modelo treinado. Para mais informações, consulte Sintaxe de treinamento.
Usar um modelo para prever dados
-
Após treinar o modelo xgboost.gbtree, execute as seguintes instruções SQL para prever os preços dos imóveis:
SELECT * FROM boston.test TO PREDICT boston.predict.medv USING sqlflow_models.my_xgb_regression_model;A instrução
SELECTespecifica o conjunto de dados necessário para a previsão. A instruçãoTO PREDICTindica a tabela que armazenará os resultados da previsão. A instruçãoUSINGespecifica o modelo a ser usado. Para mais informações, consulte Sintaxe de previsão. -
Após a conclusão da previsão, execute a seguinte instrução SQL para visualize os resultados:
SELECT * FROM boston.predict;