Tous les produits
Search
Centre de documentation

Platform For AI:Forêt aléatoire

Dernière mise à jour :Aug 09, 2026

Une forêt aléatoire est un classifieur composé de plusieurs arbres de décision. Le résultat correspond au mode des classes issues des différents arbres.

Configuration du composant

Configurez les paramètres du composant Forêt aléatoire en utilisant l'une des méthodes suivantes.

Méthode 1 : Interface graphique

Configurez les paramètres du composant sur la page du pipeline dans Machine Learning Designer.

Onglet

Paramètre

Description

field settings

feature columns

Par défaut, toutes les colonnes sont utilisées, à l'exception des colonnes de libellé et de pondération.

excluded columns

Ce paramètre ne peut pas être utilisé conjointement avec feature columns.

Force conversion columns

Les règles d'analyse sont les suivantes :

  • Les colonnes de type STRING, BOOLEAN et DATETIME sont analysées comme un type discret.

  • Les colonnes de type DOUBLE et BIGINT sont analysées comme un type continu.

Remarque

Pour analyser une colonne BIGINT en tant que CATEGORICAL, utilisez le paramètre forceCategorical.

weight column

Colonne utilisée pour pondérer chaque ligne d'échantillon. Seuls les types numériques sont pris en charge.

label column

Colonne de libellé de la table d'entrée. Les types STRING et numériques sont pris en charge.

parameter settings

Number of trees

Valeurs valides : 1 à 1000.

Algorithm distribution

Spécifie la répartition des différents algorithmes d'arbre dans la forêt. Si une forêt contient N arbres et que vous définissez ce paramètre sur algorithmTypes=[a,b], les algorithmes sont alloués comme suit :

  • La plage [0,a) utilise l'algorithme ID3.

  • La plage [a,b) utilise l'algorithme CART.

  • La plage [b,N] utilise l'algorithme C4.5.

Par exemple, dans une forêt composée de cinq arbres, si vous définissez le paramètre sur [2,4], l'arbre 1 utilise l'algorithme ID3, les arbres 2 et 3 utilisent l'algorithme CART, et les arbres 4 et 5 utilisent l'algorithme C4.5. Si vous saisissez None, les algorithmes sont répartis uniformément dans toute la forêt.

Number of random features per tree

Valeurs valides : [1,N], où N représente le nombre total de fonctionnalités.

Minimum samples per leaf node

Doit être un entier positif. La valeur par défaut est 2.

Minimum sample ratio per leaf node

Ratio minimal d'échantillons dans un nœud feuille par rapport à son nœud parent. Valeurs valides : [0,1]. La valeur par défaut est 0.

Maximum tree depth

Valeurs valides : [1,+∞). La valeur par défaut est illimitée.

Number of random input samples per tree

Valeurs valides : (1000,1000000]. La valeur par défaut est 100000.

Méthode 2 : Commande PAI

Utilisez une commande PAI pour configurer les paramètres du composant. Exécutez la commande PAI à l'aide du composant de script SQL. Pour plus d'informations, consultez Script SQL.

 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";

Paramètre

Obligatoire

Description

Valeur par défaut

inputTableName

Oui

Table d'entrée.

S/O

inputTablePartitions

Non

Partitions de la table d'entrée pour l'entraînement. Formats pris en charge :

  • Partition_name=value

  • name1=value1/name2=value2 : format multiniveau

Remarque

Pour spécifier plusieurs partitions, séparez-les par des virgules (,).

Toutes les partitions

labelColName

Oui

Nom de la colonne de libellé dans la table d'entrée.

S/O

modelName

Oui

Nom du modèle de sortie.

S/O

treeNum

Oui

Nombre d'arbres dans la forêt. Valeurs valides : 1 à 1000.

100

excludedColNames

Non

Ce paramètre ne peut pas être utilisé conjointement avec featureColNames.

Vide

weightColName

Non

Nom de la colonne de pondération dans la table d'entrée.

S/O

featureColNames

Non

Noms des colonnes de fonctionnalités utilisées pour l'entraînement.

Toutes les colonnes, à l'exception de celles spécifiées pour labelColName et weightColName.

forceCategorical

Non

Les règles d'analyse sont les suivantes :

  • Les colonnes de type STRING, BOOLEAN et DATETIME sont analysées comme un type discret.

  • Les colonnes de type DOUBLE et BIGINT sont analysées comme un type continu.

Remarque

Pour analyser une colonne BIGINT en tant que CATEGORICAL, utilisez le paramètre forceCategorical.

Le type INT est traité comme un type continu.

algorithmTypes

Non

Spécifie la répartition des différents algorithmes d'arbre dans la forêt. Si une forêt contient N arbres et que algorithmTypes=[a,b] :

  • La plage [0,a) utilise l'algorithme ID3.

  • La plage [a,b) utilise l'algorithme CART.

  • La plage [b,N] utilise l'algorithme C4.5.

Par exemple, dans une forêt composée de cinq arbres, avec le paramètre [2,4], l'arbre 1 utilise l'algorithme ID3, les arbres 2 et 3 utilisent l'algorithme CART, et les arbres 4 et 5 utilisent l'algorithme C4.5. Si vous saisissez None, les algorithmes sont répartis uniformément dans toute la forêt.

Les algorithmes sont répartis uniformément.

randomColNum

Non

Nombre de fonctionnalités aléatoires à considérer à chaque division lors de la construction d'un arbre de décision. Valeurs valides : [1,N], où N représente le nombre total de fonctionnalités.

log2N

minNumObj

Non

Nombre minimal d'échantillons requis dans un nœud feuille. Doit être un entier positif.

2

minNumPer

Non

Ratio minimal d'échantillons dans un nœud feuille par rapport à son nœud parent. Valeurs valides : [0,1].

0,0

maxTreeDeep

Non

Profondeur maximale d'un arbre unique. Valeurs valides : [1,+∞).

Illimité

maxRecordSize

Non

Nombre d'échantillons aléatoires utilisés pour construire un arbre unique. Valeurs valides : (1000,1000000].

100000

Exemple

  1. Utilisez l'instruction SQL suivante pour générer les données d'entraînement :

    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. Utilisez la commande PAI suivante pour soumettre les paramètres du composant Forêt aléatoire :

    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. Consultez le modèle au format 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. Consultez la sortie visualisée du modèle.