Komponen LOF Outlier dari Platform for AI (PAI) mengidentifikasi sampel sebagai pencilan menggunakan algoritma Local Outlier Factor (LOF). Topik ini menjelaskan cara mengonfigurasi komponen LOF Outlier.
Batasan
Komponen LOF Outlier hanya dapat digunakan dengan sumber daya komputasi MaxCompute.
Konfigurasikan komponen
Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi komponen LOF Outlier:
Metode 1: Konfigurasikan komponen di konsol PAI
Konfigurasikan komponen pada halaman pipeline Machine Learning Designer. Tabel berikut menjelaskan parameter-parameter yang digunakan:
Tab | Parameter | Deskripsi |
Field Setting | featureCols | Sebuah array nama kolom fitur. |
groupCols | Sebuah array nama kolom grup. | |
tensorCol | Kolom tensor. | |
vectorCol | Nama kolom vektor. | |
Parameter Setting | Prediction Result Column | Nama kolom hasil prediksi. |
Distance Measurement Method | Pengukuran jarak yang digunakan untuk pengelompokan. Nilai default: EUCLIDEAN. Nilai valid:
| |
maxOutlierNumPerGroup | Jumlah maksimum pencilan per grup. | |
maxOutlierRatio | Rasio maksimum pencilan yang terdeteksi oleh algoritma LOF. | |
maxSampleNumPerGroup | Jumlah maksimum sampel per grup. | |
numNeighbors | Jumlah titik data yang berdekatan yang digunakan dalam diagram LOF. Nilai default: 5. | |
outlierThreshold | Jika skor melebihi ambang batas yang ditentukan, pencilan terdeteksi. | |
Column name of detail prediction information | Nama kolom detail prediksi. | |
numThreads | Jumlah thread komponen LOF Outlier. Nilai default: 1. | |
Execute Tuning | Number of Workers | Jumlah node worker. Nilainya harus bilangan bulat positif. Parameter ini harus digunakan bersama dengan parameter Memory per worker. Nilai valid: 1 hingga 9999. |
Memory per worker | Ukuran memori setiap node worker. Unit: MB. Nilainya harus bilangan bulat positif. Anda harus menentukan nilai dari 1024 hingga 65536. |
Metode 2: Konfigurasikan komponen menggunakan kode Python
Gunakan komponen PyAlink Script untuk mengonfigurasi parameter komponen LOF Outlier dengan memanggil kode Python. Untuk informasi lebih lanjut, lihat dokumentasi skrip PyAlink.
Parameter | Diperlukan | Deskripsi | Nilai default |
predictionCol | Ya | Nama kolom hasil prediksi. | Tidak tersedia |
distanceType | Tidak | Pengukuran jarak yang digunakan untuk pengelompokan. Nilai valid:
| EUCLIDEAN |
featureCols | Tidak | Sebuah array nama kolom fitur. | Pilih Semua |
groupCols | Tidak | Nama kolom grup. Anda dapat menentukan beberapa kolom. | Tidak tersedia |
maxOutlierNumPerGroup | Tidak | Jumlah maksimum pencilan per grup. | Tidak tersedia |
maxOutlierRatio | Tidak | Rasio maksimum pencilan yang terdeteksi oleh algoritma LOF. | Tidak tersedia |
maxSampleNumPerGroup | Tidak | Jumlah maksimum sampel per grup. | Tidak tersedia |
outlierThreshold | Tidak | Jika skor melebihi ambang batas yang ditentukan, titik data dianggap sebagai titik anomali. | Tidak tersedia |
predictionDetailCol | Tidak | Nama kolom detail prediksi. | Tidak tersedia |
tensorCol | Tidak | Nama kolom tensor. | Tidak tersedia |
vectorCol | Tidak | Nama kolom vektor. | Tidak tersedia |
numNeighbors | Tidak | Jumlah titik data yang berdekatan yang digunakan dalam diagram LOF. | 5 |
numThreads | Tidak | Jumlah thread komponen LOF Outlier. | 1 |
Contoh kode Python:
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 = LofOutlierBatchOp()\
.setFeatureCols(["val"])\
.setOutlierThreshold(3.0)\
.setPredictionCol("pred")\
.setPredictionDetailCol("pred_detail")
evalOp = EvalOutlierBatchOp()\
.setLabelCol("label")\
.setPredictionDetailCol("pred_detail")\
.setOutlierValueStrings(["1"])
metrics = dataOp\
.link(outlierOp)\
.link(evalOp)\
.collectMetrics()
print(metrics)