All Products
Search
Document Center

Platform For AI:Random Forest

Last Updated:Jun 21, 2026

Random Forest adalah metode klasifikasi yang terdiri atas beberapa Pohon keputusan. Output-nya merupakan modus dari kelas-kelas yang dihasilkan oleh masing-masing pohon.

Konfigurasi Komponen

Anda dapat mengonfigurasi parameter komponen Random Forest dengan salah satu metode berikut.

Metode 1: GUI

Konfigurasikan parameter komponen pada halaman pipeline di Machine Learning Designer.

Tab

Parameter

Deskripsi

field settings

feature columns

Secara default, semua kolom digunakan kecuali kolom label dan kolom weight.

excluded columns

Parameter ini tidak dapat digunakan bersamaan dengan feature columns.

Force conversion columns

Aturan parsing adalah sebagai berikut:

  • Kolom bertipe STRING, BOOLEAN, dan DATETIME diparse sebagai tipe diskret.

  • Kolom bertipe DOUBLE dan BIGINT diparse sebagai tipe kontinu.

Catatan

Untuk memparse kolom BIGINT sebagai CATEGORICAL, gunakan parameter forceCategorical.

weight column

Kolom yang digunakan untuk memberi bobot pada setiap baris sampel. Hanya tipe numerik yang didukung.

label column

Kolom label dari tabel input. Tipe STRING dan numerik didukung.

parameter settings

Number of trees

Nilai valid: 1 hingga 1000.

Algorithm distribution

Menentukan bagaimana algoritma pohon yang berbeda didistribusikan dalam forest. Jika sebuah forest memiliki N pohon dan Anda mengatur parameter ini menjadi algorithmTypes=[a,b], algoritma dialokasikan sebagai berikut:

  • Rentang [0,a) menggunakan algoritma ID3.

  • Rentang [a,b) menggunakan algoritma CART.

  • Rentang [b,N] menggunakan algoritma C4.5.

Sebagai contoh, dalam forest dengan lima pohon, jika Anda mengatur parameter menjadi [2,4], pohon 1 menggunakan algoritma ID3, pohon 2 dan 3 menggunakan algoritma CART, dan pohon 4 dan 5 menggunakan algoritma C4.5. Jika Anda memasukkan None, algoritma didistribusikan secara merata di seluruh forest.

Number of random features per tree

Nilai valid: [1,N], di mana N adalah jumlah total fitur.

Minimum samples per leaf node

Harus berupa bilangan bulat positif. Nilai default-nya adalah 2.

Minimum sample ratio per leaf node

Rasio minimum sampel dalam sebuah leaf node relatif terhadap node induknya. Nilai valid: [0,1]. Nilai default-nya adalah 0.

Maximum tree depth

Nilai valid: [1,+∞). Nilai default-nya tanpa batas.

Number of random input samples per tree

Nilai valid: (1000,1000000]. Nilai default-nya adalah 100000.

Metode 2: Perintah PAI

Gunakan perintah PAI untuk mengonfigurasi parameter komponen. Anda dapat menjalankan perintah PAI dengan menggunakan komponen skrip SQL. 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

Wajib

Deskripsi

Default

inputTableName

Ya

Tabel input.

N/A

inputTablePartitions

Tidak

Partisi tabel input untuk pelatihan. Format yang didukung:

  • Partition_name=value

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

Catatan

Untuk menentukan beberapa partisi, pisahkan dengan koma (,).

Semua partisi

labelColName

Ya

Nama kolom label dalam tabel input.

N/A

modelName

Ya

Nama model output.

N/A

treeNum

Ya

Jumlah pohon dalam hutan. Nilai yang valid: 1 hingga 1.000.

100

excludedColNames

Tidak

Parameter ini tidak dapat digunakan bersamaan dengan featureColNames.

Kosong

weightColName

Tidak

Nama kolom weight dalam tabel input.

N/A

featureColNames

Tidak

Nama kolom fitur yang digunakan untuk pelatihan.

Semua kolom kecuali yang ditentukan untuk labelColName dan weightColName.

forceCategorical

Tidak

Aturan parsing adalah sebagai berikut:

  • Kolom bertipe STRING, BOOLEAN, dan DATETIME diparse sebagai tipe diskret.

  • Kolom bertipe DOUBLE dan BIGINT diparse sebagai tipe kontinu.

Catatan

Untuk memparse kolom BIGINT sebagai CATEGORICAL, gunakan parameter forceCategorical.

INT diperlakukan sebagai tipe kontinu.

algorithmTypes

Tidak

Menentukan bagaimana algoritma pohon yang berbeda didistribusikan dalam forest. Jika sebuah forest memiliki N pohon dan algorithmTypes=[a,b]:

  • Rentang [0,a) menggunakan algoritma ID3.

  • Rentang [a,b) menggunakan algoritma CART.

  • Rentang [b,N] menggunakan algoritma C4.5.

Sebagai contoh, dalam forest dengan lima pohon, dengan pengaturan [2,4], pohon 1 menggunakan algoritma ID3, pohon 2 dan 3 menggunakan algoritma CART, dan pohon 4 dan 5 menggunakan algoritma C4.5. Jika Anda memasukkan None, algoritma didistribusikan secara merata di seluruh forest.

Algoritma didistribusikan secara merata.

randomColNum

Tidak

Jumlah fitur acak yang dipertimbangkan pada setiap pemisahan saat membangun Pohon keputusan. Nilai valid: [1,N], di mana N adalah jumlah total fitur.

log2N

minNumObj

Tidak

Jumlah minimum sampel yang diperlukan dalam sebuah leaf node. Harus berupa bilangan bulat positif.

2

minNumPer

Tidak

Rasio minimum sampel dalam sebuah leaf node relatif terhadap node induknya. Nilai valid: [0,1].

0.0

maxTreeDeep

Tidak

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

Tanpa Batas

maxRecordSize

Tidak

Jumlah sampel acak yang digunakan untuk membangun satu pohon. Nilai valid: (1000,1000000].

100000

Contoh

  1. Gunakan 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. Gunakan perintah PAI berikut untuk mengirimkan parameter komponen 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. Lihat model dalam 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. Lihat output model yang divisualisasikan.