全部产品
Search
文档中心

Platform For AI:Gunakan iForest Outlier untuk mendeteksi anomali

更新时间:Jul 02, 2025

Isolation Forest (iForest) menggunakan algoritma sub-sampling untuk mendeteksi anomali. Algoritma ini kurang kompleks dan efektif untuk mengidentifikasi titik-titik anomali dalam dataset. iForest banyak digunakan dalam deteksi anomali. Topik ini menjelaskan cara mengonfigurasi iForest untuk mendeteksi anomali.

Konfigurasikan komponen

Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi parameter iForest guna mendeteksi anomali.

Metode 1: Konfigurasikan komponen di Machine Learning Designer

Konfigurasikan parameter komponen pada halaman pipeline Machine Learning Designer.

Tab

Parameter

Deskripsi

Field Setting

featureCols

Jika Anda telah menyetel parameter vectorCol atau tensorCol, parameter ini akan dinonaktifkan.

Kolom fitur yang digunakan untuk pelatihan.

Catatan

Parameter featureCols, tensorCol, dan vectorCol saling eksklusif. Anda hanya dapat menggunakan salah satu dari mereka untuk menggambarkan fitur input algoritma.

groupCols

Array kolom grup.

tensorCol

Jika Anda telah mengatur parameter vectorCol atau featureCols, parameter tersebut akan dinonaktifkan.

Nama kolom tensor.

Catatan

Parameter featureCols, tensorCol, dan vectorCol saling eksklusif. Anda hanya dapat menggunakan salah satu dari mereka untuk menggambarkan fitur input algoritma.

vectorCol

Jika Anda telah menyetel parameter tensorCol atau featureCols, parameter ini akan dinonaktifkan.

Nama kolom vektor.

Catatan

Parameter featureCols, tensorCol, dan vectorCol saling eksklusif. Anda hanya dapat menggunakan salah satu dari mereka untuk menggambarkan fitur input algoritma.

Parameter Setting

predictionCol

Nama kolom hasil prediksi.

maxOutlierNumPerGroup

Jumlah maksimum outlier per grup.

maxOutlierRatio

Rasio maksimum outlier yang dideteksi oleh algoritma.

maxSampleNumPerGroup

Jumlah maksimum sampel per grup.

numTrees

Jumlah pohon dalam model. Nilai default adalah 100.

outlierThreshold

Jika skor melebihi ambang batas yang ditentukan, titik data dianggap sebagai titik anomali.

Column name of detail prediction information

Nama kolom detail prediksi.

subsamplingSize

Jumlah baris yang diambil sampelnya di setiap pohon. Nilainya harus bilangan bulat positif. Nilai valid: 2 hingga 100000. Nilai default: 256.

numThreads

Jumlah thread komponen. Nilai default: 1.

Execution Tuning

Number of Workers

Jumlah node. Nilainya harus bilangan bulat positif. Parameter ini harus digunakan bersama dengan parameter Memory per worker. Nilai valid: 1 hingga 9999.

Memory per worker, unit MB

Ukuran memori setiap node. Unit: MB. Nilainya harus bilangan bulat positif. Anda harus menentukan nilai dari 1024 hingga 65536.

Metode 2: Gunakan kode Python

Konfigurasikan parameter komponen dengan menggunakan komponen PyAlink Script. Anda dapat menggunakan komponen skrip PyAlink untuk memanggil kode Python. Untuk informasi lebih lanjut, lihat PyAlink Script.

Parameter

Diperlukan

Deskripsi

Nilai default

predictionCol

Ya

Nama kolom hasil prediksi.

Tidak tersedia

featureCols

Tidak

Array kolom fitur.

Pilih Semua

groupCols

Tidak

Nama kolom grup. Anda dapat menentukan beberapa kolom.

Tidak tersedia

maxOutlierNumPerGroup

Tidak

Jumlah maksimum outlier per grup.

Tidak tersedia

maxOutlierRatio

Tidak

Rasio maksimum outlier yang dideteksi oleh algoritma.

Tidak tersedia

maxSampleNumPerGroup

Tidak

Jumlah maksimum sampel per grup.

Tidak tersedia

numTrees

Tidak

Jumlah pohon dalam model.

100

outlierThreshold

Tidak

Jika skor melebihi ambang batas yang ditentukan, titik data dianggap sebagai titik anomali.

Tidak tersedia

predictionDetailCol

Ya

Nama kolom detail prediksi.

Tidak tersedia

tensorCol

Tidak

Nama kolom tensor.

Tidak tersedia

vectorCol

Tidak

Nama kolom vektor.

Tidak tersedia

subsamplingSize

Tidak

Jumlah baris yang diambil sampelnya di setiap pohon. Nilainya harus bilangan bulat positif. Nilai valid: 2 hingga 100000.

256

numThreads

Tidak

Jumlah thread komponen.

1

Contoh kode Python berikut memberikan ilustrasi penggunaannya.

from pyalink.alink import *
import pandas as pd
df = pd.DataFrame([
[0.73, 0],
[0.24, 0],
[0.63, 0],
[0.55, 0],
[0.73, 0],
[0.41, 0]
])

dataOp = BatchOperator.fromDataframe(df, schemaStr='val double, label int')

outlierOp = IForestOutlierBatchOp()\
    .setFeatureCols(["val"])\
    .setOutlierThreshold(3.0)\
    .setPredictionCol("pred")\
    .setPredictionDetailCol("pred_detail")

outlierOp.print()