A regressão por floresta aleatória é um algoritmo do PolarDB AI (Polar4AI) para prever valores numéricos contínuos. Ele constrói várias árvores de decisão independentes em paralelo, amostrando dados e recursos aleatoriamente, e calcula a média das saídas para gerar uma previsão final.
Quando usar este algoritmo
Use a regressão por floresta aleatória quando o alvo da previsão for um número contínuo — como preço, quantidade ou pontuação — e o conjunto de dados tiver dezenas de dimensões com alta exigência de precisão. Para alvos restritos a um conjunto fixo de categorias, prefira um algoritmo de classificação.
Exemplo: Prever a popularidade horária de um tópico em redes sociais. Os recursos de entrada incluem o número de grupos de discussão, a contagem de participantes e o nível de engajamento. A saída é a média de grupos de discussão ativos por hora — um valor de ponto flutuante positivo.
Como funciona
Selecione amostras e recursos dos dados de treinamento de forma aleatória.
Construa várias árvores de decisão independentes em paralelo; cada uma deve gerar sua própria previsão.
Calcule a média das previsões de todas as árvores para obter a saída final da regressão.
A seleção aleatória de amostras e recursos reduz o overfitting e melhora a generalização em comparação com uma única árvore de decisão.
Requisitos de entrada
|
Coluna |
Tipo obrigatório |
Observações |
|
|
Ponto flutuante ou inteiro |
Todas as colunas de recursos devem ser numéricas |
|
|
Ponto flutuante ou inteiro |
O modelo prevê um valor numérico contínuo |
Parâmetros
Transmita os parâmetros pela opção model_parameter em uma instrução CREATE MODEL.
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
|
Inteiro positivo |
|
Quantidade de árvores de decisão. Valores maiores melhoram o ajuste. |
|
|
String |
|
Função de perda usada durante o treinamento. Valores válidos: |
|
|
String, inteiro ou float |
|
Número máximo de recursos considerados em cada divisão. Consulte a tabela abaixo para ver os valores aceitos. |
|
|
Inteiro positivo ou |
|
Profundidade máxima de cada árvore. Se definido como |
|
|
Inteiro positivo |
|
Quantidade de threads paralelas. Valores maiores aceleram a criação do modelo. |
|
|
Inteiro positivo |
|
Semente aleatória para reprodutibilidade. |
**Valores aceitos para max_features**
|
Valor |
Máximo de recursos utilizados |
|
|
|
|
|
|
|
Inteiro |
O inteiro especificado, entre |
|
Float |
|
Exemplos
Os exemplos a seguir percorrem todo o fluxo de trabalho: crie um modelo, avaliá-lo e execute previsões. Todas as instruções usam o prefixo /*polar4ai*/ para encaminhar o SQL ao mecanismo Polar4AI.
Crie um modelo
/*polar4ai*/CREATE MODEL randomforestreg1 WITH
( model_class = 'randomforestreg', x_cols = 'dx1,dx2', y_cols='y',
model_parameter=(objective='mse')) AS (SELECT * FROM db4ai.testdata1);
Avaliar o modelo
Execute EVALUATE para pontuar o modelo com base em dados rotulados. A opção metrics='r2_score' retorna o R² (coeficiente de determinação), que mede a capacidade do modelo de explicar a variância na variável alvo.
/*polar4ai*/SELECT dx1,dx2 FROM EVALUATE(MODEL randomforestreg1,
SELECT * FROM db4ai.testdata1 LIMIT 10) WITH
(x_cols = 'dx1,dx2',y_cols='y',metrics='r2_score');
Execute previsões
/*polar4ai*/SELECT dx1,dx2 FROM
PREDICT(MODEL randomforestreg1, SELECT * FROM db4ai.testdata1 LIMIT 10)
WITH (x_cols = 'dx1,dx2');