全部产品
Search
文档中心

Platform For AI:Hutan Acak

更新时间:Jul 02, 2025

Komponen Hutan Acak adalah klasifikasi yang terdiri dari beberapa pohon keputusan. Hasil klasifikasi ditentukan oleh modus dari kelas-kelas output dari pohon individu.

Mengonfigurasi komponen

Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi komponen Hutan Acak.

Metode 1: Mengonfigurasi komponen pada halaman pipeline

Anda dapat mengonfigurasi parameter komponen Hutan Acak pada halaman pipeline Machine Learning Designer dari Platform for AI (PAI). Machine Learning Designer sebelumnya dikenal sebagai Machine Learning Studio. Tabel berikut menjelaskan parameter-parameter tersebut.

Tab

Parameter

Deskripsi

Fields Setting

Feature Columns

Secara default, kolom-kolom kecuali kolom label dan kolom bobot dipilih.

Excluded Columns

Kolom-kolom yang tidak digunakan untuk pelatihan. Kolom-kolom ini tidak dapat digunakan sebagai kolom fitur.

Forced Conversion Column

Patuhi aturan berikut untuk mem-parsing kolom:

  • Parse kolom tipe STRING, BOOLEAN, atau DATETIME menjadi kolom tipe diskrit.

  • Parse kolom tipe DOUBLE atau BIGINT menjadi kolom tipe kontinu.

Catatan

Untuk mem-parse kolom tipe BIGINT menjadi kolom tipe kategoris, Anda harus menggunakan parameter forceCategorical untuk menentukan tipe.

Weight Columns

Kolom yang berisi bobot setiap baris sampel. Kolom dengan tipe data numerik didukung.

Label Column

Kolom label dalam tabel input. Kolom tipe STRING dan tipe data numerik didukung.

Parameters Setting

Number of Decision Trees in the Forest

Jumlah pohon. Nilai valid: 1 hingga 1.000.

Single Decision tree Algorithm

Jika sebuah hutan memiliki N pohon dan kondisi adalah algorithmTypes=[a,b]:

  • [0, a) menunjukkan algoritma ID3.

  • [a,b) menunjukkan algoritma CART.

  • [b,n] menunjukkan algoritma C4.5.

Sebagai contoh, jika sebuah hutan memiliki lima pohon dan [2,4] menunjukkan 0, 1 menunjukkan algoritma ID3, 2 dan 3 menunjukkan algoritma CART, dan 4 menunjukkan algoritma C4.5. Jika nilainya adalah None, algoritma pohon akan dialokasikan secara merata di seluruh hutan.

Number of Random Features for Each Decision Tree

Nilai valid: [1,N]. N mewakili jumlah fitur.

Minimum Number of Leaf Nodes

Nilai valid: bilangan bulat positif. Nilai default: 2.

Minimum Ratio of Leaf Nodes to Parent Nodes

Nilai valid: [0,1]. Nilai default: 0.

Maximum Decision Tree Depth

Nilai valid: [1,+∞). Nilai default: ∞.

Number of Random Data Input for Each Decision Tree

Nilai valid: (1.000,1.000.000]. Nilai default: 100.000.

Metode 2: Gunakan perintah PAI

Konfigurasikan parameter komponen menggunakan perintah PAI. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat 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";

Parameter

Diperlukan

Deskripsi

Nilai default

inputTableName

Ya

Nama tabel input.

Tidak tersedia

inputTablePartitions

Tidak

Partisi-partisi yang dipilih dari tabel input untuk pelatihan. Tentukan parameter ini dalam salah satu format berikut:

  • Partition_name=value

  • name1=value1/name2=value2: partisi multi-level

Catatan

Jika Anda menentukan beberapa partisi, pisahkan partisi-partisi tersebut dengan koma (,).

Semua partisi

labelColName

Ya

Nama kolom label yang dipilih dari tabel input.

Tidak tersedia

modelName

Ya

Nama model output.

Tidak tersedia

treeNum

Ya

Jumlah pohon dalam hutan. Nilai valid: 1 hingga 1000.

100

excludedColNames

Tidak

Kolom-kolom yang tidak digunakan untuk pelatihan. Kolom-kolom ini tidak dapat digunakan sebagai kolom fitur.

String kosong

weightColName

Tidak

Nama kolom bobot dalam tabel input.

Tidak tersedia

featureColNames

Tidak

Kolom fitur yang dipilih dari tabel input untuk pelatihan.

Semua kolom kecuali kolom label yang ditentukan oleh parameter labelColName dan kolom bobot yang ditentukan oleh parameter weightColName.

forceCategorical

Tidak

Patuhi aturan berikut untuk mem-parsing kolom:

  • Parse kolom tipe STRING, BOOLEAN, atau DATETIME menjadi kolom tipe diskrit.

  • Parse kolom tipe DOUBLE atau BIGINT menjadi kolom tipe kontinu.

Catatan

Untuk mem-parse kolom tipe BIGINT menjadi kolom tipe kategoris, Anda harus menggunakan parameter forceCategorical untuk menentukan tipe.

INT adalah tipe kontinu.

algorithmTypes

Tidak

Lokasi algoritma pohon dalam hutan. Jika hutan memiliki N pohon dan kondisi adalah algorithmTypes=[a,b]:

  • [0, a) menunjukkan algoritma ID3.

  • [a,b) menunjukkan algoritma CART.

  • [b,n] menunjukkan algoritma C4.5.

Sebagai contoh, jika sebuah hutan memiliki lima pohon dan [2,4] menunjukkan 0, 1 menunjukkan algoritma ID3, 2 dan 3 menunjukkan algoritma CART, dan 4 menunjukkan algoritma C4.5. Jika nilainya adalah None, algoritma pohon akan dialokasikan secara merata di seluruh hutan.

Dialokasikan secara merata

randomColNum

Tidak

Jumlah fitur acak yang dipilih untuk setiap pemisahan saat pohon tunggal dibuat. Nilai valid: [1,N]. N mewakili jumlah fitur.

log2N

minNumObj

Tidak

Jumlah minimum data pada node daun. Nilai parameter harus berupa bilangan bulat positif.

2

minNumPer

Tidak

Rasio minimum data pada node daun terhadap data pada node induk. Nilai valid: [0,1].

0.0

maxTreeDeep

Tidak

Kedalaman maksimum pohon tunggal. Nilai valid: [1,+∞).

maxRecordSize

Tidak

Jumlah data input acak untuk pohon. Nilai valid: (1000,1000000].

100000

Contoh

  1. Eksekusi pernyataan SQL berikut untuk menghasilkan data pelatihan:

    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. Jalankan perintah PAI berikut untuk mengirimkan parameter komponen Hutan Acak:

    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. Lihat Predictive Model Markup Language (PMML) dari model.

    <?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. Lihat output visual dari komponen Hutan Acak. Visualized output