Todos los productos
Search
Centro de documentos

Platform For AI:Random Forest

Última actualización: Sep 04, 2026

Un Random Forest es un clasificador compuesto por varios árboles de decisión. Su salida corresponde a la moda de las clases de los árboles individuales.

Configuración del componente

Configure los parámetros del componente Random Forest mediante uno de los siguientes métodos.

Método 1: GUI

Configure los parámetros del componente en la página de pipeline de Machine Learning Designer.

Pestaña

Parámetro

Descripción

field settings

feature columns

De forma predeterminada, se utilizan todas las columnas excepto las de etiqueta y peso.

excluded columns

Este parámetro no se puede utilizar junto con feature columns.

Force conversion columns

Las reglas de análisis son a continuación:

  • Las columnas de tipo STRING, BOOLEAN y DATETIME se interpretan como tipo discreto.

  • Las columnas de tipo DOUBLE y BIGINT se interpretan como tipo continuo.

Nota

Para interpretar una columna BIGINT como CATEGORICAL, utilice el parámetro forceCategorical.

weight column

Columna utilizada para ponderar cada fila de muestra. Solo se admiten tipos numéricos.

label column

Columna de etiqueta de la tabla de entrada. Se admiten tipos STRING y numéricos.

parameter settings

Number of trees

Valores válidos: de 1 a 1000.

Algorithm distribution

Especifica cómo se distribuyen los distintos algoritmos de árbol en el bosque. Si un bosque tiene N árboles y establece este parámetro en algorithmTypes=[a,b], los algoritmos se asignan de la siguiente manera:

  • El rango [0,a) usa el algoritmo ID3.

  • El rango [a,b) usa el algoritmo CART.

  • El rango [b,N] usa el algoritmo C4.5.

Por ejemplo, en un bosque con cinco árboles, si establece el parámetro en [2,4], el árbol 1 usa el algoritmo ID3, los árboles 2 y 3 usan el algoritmo CART, y los árboles 4 y 5 usan el algoritmo C4.5. Si introduce None, los algoritmos se distribuyen uniformemente en el bosque.

Number of random features per tree

Valores válidos: [1,N], donde N es el número total de características.

Minimum samples per leaf node

Debe ser un entero positivo. El valor predeterminado es 2.

Minimum sample ratio per leaf node

Proporción mínima de muestras en un nodo hoja respecto a su nodo padre. Valores válidos: [0,1]. El valor predeterminado es 0.

Maximum tree depth

Valores válidos: [1,+∞). El valor predeterminado es ilimitado.

Number of random input samples per tree

Valores válidos: (1000,1000000]. El valor predeterminado es 100000.

Método 2: Comando PAI

Utilice un comando PAI para configurar los parámetros del componente. Ejecute el comando PAI mediante el componente de script SQL. Para obtener más información, consulte SQL script.

 PAI -name randomforests
     -project algo_public
     -DinputTableName="pai_rf_test_input"
     -DmodelName="pai_rf_test_model"
     -DforceCategorical="f1"
     -DlabelColName="class"
     -DfeatureColNames="f0,f1"
     -DmaxRecordSize="100000"
     -DminNumPer="0"
     -DminNumObj="2"
     -DtreeNum="3";

Parámetro

Obligatorio

Descripción

Valor predeterminado

inputTableName

Sí

Tabla de entrada.

N/A

inputTablePartitions

No

Particiones de la tabla de entrada para entrenamiento. Formatos compatibles:

  • Partition_name=value

  • name1=value1/name2=value2: formato multinivel

Nota

Para especificar varias particiones, sepárelas con comas (,).

Todas las particiones

labelColName

Sí

Nombre de la columna de etiqueta en la tabla de entrada.

N/A

modelName

Sí

Nombre del modelo de salida.

N/A

treeNum

Sí

Número de árboles en el bosque. Valores válidos: de 1 a 1000.

100

excludedColNames

No

Este parámetro no se puede utilizar junto con featureColNames.

Vacío

weightColName

No

Nombre de la columna de peso en la tabla de entrada.

N/A

featureColNames

No

Nombres de las columnas de características utilizadas para entrenamiento.

Todas las columnas excepto las especificadas para labelColName y weightColName.

forceCategorical

No

Las reglas de análisis son a continuación:

  • Las columnas de tipo STRING, BOOLEAN y DATETIME se interpretan como tipo discreto.

  • Las columnas de tipo DOUBLE y BIGINT se interpretan como tipo continuo.

Nota

Para interpretar una columna BIGINT como CATEGORICAL, utilice el parámetro forceCategorical.

INT se trata como tipo continuo.

algorithmTypes

No

Especifica cómo se distribuyen los distintos algoritmos de árbol en el bosque. Si un bosque tiene N árboles y algorithmTypes=[a,b]:

  • El rango [0,a) usa el algoritmo ID3.

  • El rango [a,b) usa el algoritmo CART.

  • El rango [b,N] usa el algoritmo C4.5.

Por ejemplo, en un bosque con cinco árboles y configuración [2,4], el árbol 1 usa el algoritmo ID3, los árboles 2 y 3 usan el algoritmo CART, y los árboles 4 y 5 usan el algoritmo C4.5. Si introduce None, los algoritmos se distribuyen uniformemente en el bosque.

Los algoritmos se distribuyen uniformemente.

randomColNum

No

Número de características aleatorias a considerar en cada división al construir un árbol de decisión. Valores válidos: [1,N], donde N es el número total de características.

log2N

minNumObj

No

Número mínimo de muestras requeridas en un nodo hoja. Debe ser un entero positivo.

2

minNumPer

No

Proporción mínima de muestras en un nodo hoja respecto a su nodo padre. Valores válidos: [0,1].

0.0

maxTreeDeep

No

Profundidad máxima de un árbol individual. Valores válidos: [1,+∞).

Ilimitado

maxRecordSize

No

Número de muestras aleatorias utilizadas para construir un árbol individual. Valores válidos: (1000,1000000].

100000

Ejemplo

  1. Utilice la siguiente sentencia SQL para generar datos de entrenamiento:

    create table pai_rf_test_input as
    select * from
    (
      select 1 as f0,2 as f1, "good" as class
      union all
      select 1 as f0,3 as f1, "good" as class
      union all
      select 1 as f0,4 as f1, "bad" as class
      union all
      select 0 as f0,3 as f1, "good" as class
      union all
      select 0 as f0,4 as f1, "bad" as class
    )tmp;
  2. Utilice el siguiente comando PAI para enviar los parámetros del componente Random Forest:

    PAI -name randomforests
         -project algo_public
         -DinputTableName="pai_rf_test_input"
         -DmodelName="pai_rf_test_model"
         -DforceCategorical="f1"
         -DlabelColName="class"
         -DfeatureColNames="f0,f1"
         -DmaxRecordSize="100000"
         -DminNumPer="0"
         -DminNumObj="2"
         -DtreeNum="3";
  3. Consulte el modelo en Predictive Model Markup Language (PMML).

    <?xml version="1.0" encoding="utf-8"?>
    <PMML xmlns="http://www.dmg.org/PMML-4_2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="4.2" xsi:schemaLocation="http://www.dmg.org/PMML-4_2 http://www.dmg.org/v4-2/pmml-4-2.xsd">
      <Header copyright="Copyright (c) 2014, Alibaba Inc." description="">
        <Application name="ODPS/PMML" version="0.1.0"/>
        <Timestamp>Tue, 12 Jul 2016 07:04:48 GMT</Timestamp>
      </Header>
      <DataDictionary numberOfFields="2">
        <DataField name="f0" optype="continuous" dataType="integer"/>
        <DataField name="f1" optype="continuous" dataType="integer"/>
        <DataField name="class" optype="categorical" dataType="string">
          <Value value="bad"/>
          <Value value="good"/>
        </DataField>
      </DataDictionary>
      <MiningModel modelName="xlab_m_random_forests_1_75078_v0" functionName="classification" algorithmName="RandomForests"/>
        <MiningSchema>
          <MiningField name="f0" usageType="active"/>
          <MiningField name="f1" usageType="active"/>
          <MiningField name="class" usageType="target"/>
        </MiningSchema>
        <Segmentation multipleModelMethod="majorityVote">
          <Segment id="0">
            <True/>
            <TreeModel modelName="xlab_m_random_forests_1_75078_v0" functionName="classification" algorithmName="RandomForests">
              <MiningSchema>
                <MiningField name="f0" usageType="active"/>
                <MiningField name="f1" usageType="active"/>
                <MiningField name="class" usageType="target"/>
              </MiningSchema>
              <Node id="1">
                <True/>
                <ScoreDistribution value="bad" recordCount="2"/>
                <ScoreDistribution value="good" recordCount="3"/>
                <Node id="2" score="good">
                  <SimplePredicate field="f1" operator="equal" value="2"/>
                  <ScoreDistribution value="good" recordCount="1"/>
                </Node>
                <Node id="3" score="good">
                  <SimplePredicate field="f1" operator="equal" value="3"/>
                  <ScoreDistribution value="good" recordCount="2"/>
                </Node>
                <Node id="4" score="bad"
                  <SimplePredicate field="f1" operator="equal" value="4"/>
                  <ScoreDistribution value="bad" recordCount="2"/>
                </Node>
              </Node>
            </TreeModel>
          </Segment>
          <Segment id="1">
            <True/>
            <TreeModel modelName="xlab_m_random_forests_1_75078_v0" functionName="classification" algorithmName="RandomForests">
              <MiningSchema>
                <MiningField name="f0" usageType="active"/>
                <MiningField name="f1" usageType="active"/>
                <MiningField name="class" usageType="target"/>
              </MiningSchema>
              <Node id="1">
                <True/>
                <ScoreDistribution value="bad" recordCount="2"/>
                <ScoreDistribution value="good" recordCount="3"/>
                <Node id="2" score="good">
                  <SimpleSetPredicate field="f1" booleanOperator="isIn">
                    <Array n="2" type="integer"2 3</Array>
                  </SimpleSetPredicate>
                  <ScoreDistribution value="good" recordCount="3"/>
                </Node>
                <Node id="3" score="bad">
                  <SimpleSetPredicate field="f1" booleanOperator="isNotIn">
                    <Array n="2" type="integer"2 3</Array>
                  </SimpleSetPredicate>
                  <ScoreDistribution value="bad" recordCount="2"/>
                </Node>
              </Node>
            </TreeModel>
          </Segment>
          <Segment id="2">
            <True/>
            <TreeModel modelName="xlab_m_random_forests_1_75078_v0" functionName="classification" algorithmName="RandomForests">
              <MiningSchema>
                <MiningField name="f0" usageType="active"/>
                <MiningField name="f1" usageType="active"/>
                <MiningField name="class" usageType="target"/>
              </MiningSchema>
              <Node id="1">
                <True/>
                <ScoreDistribution value="bad" recordCount="2"/>
                <ScoreDistribution value="good" recordCount="3"/>
                <Node id="2" score="bad">
                  <SimplePredicate field="f0" operator="lessOrEqual" value="0.5"/>
                  <ScoreDistribution value="bad" recordCount="1"/>
                  <ScoreDistribution value="good" recordCount="1"/>
                </Node>
                <Node id="3" score="good">
                  <SimplePredicate field="f0" operator="greaterThan" value="0.5"/>
                  <ScoreDistribution value="bad" recordCount="1"/>
                  <ScoreDistribution value="good" recordCount="2"/>
                </Node>
              </Node>
            </TreeModel>
          </Segment>
        </Segmentation>
      </MiningModel>
    </PMML>
  4. Consulte la visualización del modelo.