One-Class Support Vector Machine (SVM) adalah algoritma pembelajaran mesin tanpa pengawasan yang berbeda dari algoritma SVM tradisional. Komponen One-Class SVM Outlier dapat digunakan untuk mendeteksi pencilan dengan mempelajari batas keputusan. Topik ini menjelaskan cara mengonfigurasi Komponen One-Class SVM Outlier di Platform for AI (PAI).
Batasan
Komponen One-Class SVM Outlier hanya dapat digunakan berdasarkan sumber daya komputasi MaxCompute.
Konfigurasi komponen
Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi parameter Komponen One-Class SVM Outlier:
Metode 1: Konfigurasikan komponen di konsol PAI
Konfigurasikan komponen pada halaman pipeline Machine Learning Designer. Tabel berikut menjelaskan parameter tersebut.
Tab | Parameter | Deskripsi |
Field Setting | featureCols | Sebuah larik nama kolom fitur. |
groupCols | Sebuah larik nama kolom grup. | |
tensorCol | Kolom tensor. | |
vectorCol | Nama kolom vektor. | |
Parameter Setting | Prediction Result Column | Nama kolom hasil prediksi. |
coef0 | Parameter coef0 dari fungsi kernel. Nilai default: 0,0. null Parameter ini hanya berlaku jika tipe fungsi kernel adalah polinomial atau sigmoid. | |
degree | Degree polinomial. | |
epsilon | Nilai yang ingin Anda peroleh dari hasil pelatihan sebelum iterasi berhenti. Nilai default: 1,0E-6. | |
gamma | Parameter gamma dari fungsi kernel. Nilai default: -1,0. null Parameter ini hanya berlaku jika tipe fungsi kernel adalah RBF, polinomial, atau sigmoid. Jika Anda tidak mengonfigurasi parameter ini, nilai default 1/dimensi data digunakan. | |
kernelType | Tipe fungsi kernel. Nilai valid:
| |
maxOutlierNumPerGroup | Jumlah maksimum pencilan per grup. | |
maxOutlierRatio | Rasio maksimum pencilan yang dideteksi oleh algoritma. | |
maxSampleNumPerGroup | Jumlah maksimum sampel per grup. | |
nu | Parameter nu dari fungsi kernel. Parameter ini berkorelasi positif dengan jumlah vektor pendukung. Nilai valid: (0,1). Nilai default: 0,01. | |
outlierThreshold | Jika skor melebihi ambang batas yang ditentukan, titik data dianggap sebagai titik anomali. | |
Column name of detail prediction information | Nama kolom detail prediksi. | |
numThreads | Jumlah thread komponen. | |
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
Anda dapat mengonfigurasi Komponen One-Class SVM Outlier menggunakan komponen PyAlink Script untuk memanggil kode Python. Untuk informasi lebih lanjut, lihat skrip PyAlink.
Parameter | Wajib | Deskripsi | Nilai default |
predictionCol | Ya | Nama kolom hasil prediksi. | N/A |
degree | Tidak | Degree polinomial. | 2 |
epsilon | Tidak | Nilai yang ingin Anda peroleh dari hasil pelatihan sebelum iterasi berhenti. | 1,0E-6 |
featureCols | Tidak | Sebuah larik nama kolom fitur. | Pilih Semua |
groupCols | Tidak | Larik nama kolom grup. | N/A |
maxOutlierNumPerGroup | Tidak | Jumlah maksimum pencilan per grup. | N/A |
maxOutlierRatio | Tidak | Rasio maksimum pencilan yang dideteksi oleh algoritma. | N/A |
maxSampleNumPerGroup | Tidak | Jumlah maksimum sampel per grup. | N/A |
outlierThreshold | Tidak | Jika skor melebihi ambang batas yang ditentukan, titik data dianggap sebagai titik anomali. | N/A |
predictionDetailCol | Tidak | Nama kolom detail prediksi. | N/A |
tensorCol | Tidak | Nama kolom tensor. | N/A |
vectorCol | Tidak | Nama kolom vektor. | N/A |
kernelType | Tidak | Tipe fungsi kernel. Nilai valid:
| RBF |
coef0 | Tidak | Parameter coef0 dari fungsi kernel. null Parameter ini hanya berlaku jika tipe fungsi kernel adalah polinomial atau sigmoid. | 0,0 |
gamma | Tidak | Parameter gamma dari fungsi kernel. null Parameter ini hanya berlaku jika tipe fungsi kernel adalah RBF, polinomial, atau sigmoid. Jika Anda tidak mengonfigurasi parameter ini, nilai default 1/dimensi data digunakan. | -1,0 |
nu | Tidak | Parameter nu dari fungsi kernel. Parameter ini berkorelasi positif dengan jumlah vektor pendukung. Nilai valid: (0,1). | 0,01 |
numThreads | Tidak | Jumlah thread komponen. | 1 |
Contoh kode Python:
df = pd.DataFrame([
[0.730967787376657,0.24053641567148587,0.6374174253501083,0.5504370051176339],
[0.7308781907032909,0.41008081149220166,0.20771484130971707,0.3327170559595112],
[0.7311469360199058,0.9014476240300544,0.49682259343089075,0.9858769332362016],
[0.731057369148862,0.07099203475193139,0.06712000939049956,0.768156984078079],
[0.7306094602878371,0.9187140138555101,0.9186071189908658,0.6795571637816596],
[0.730519863614471,0.08825840967622589,0.4889045498516358,0.461837214623537],
[0.7307886238322471,0.5796252073129174,0.7780122870716483,0.11499709190022733],
[0.7306990420600421,0.7491696031336331,0.34830970303125697,0.8972771427421047]])
# muat data
data = BatchOperator.fromDataframe(df, schemaStr="x1 double, x2 double, x3 double, x4 double")
OcsvmOutlierBatchOp() \
.setFeatureCols(["x1", "x2", "x3", "x4"]) \
.setGamma(0.5) \
.setNu(0.1) \
.setKernelType("RBF") \
.setPredictionCol("pred").linkFrom(data).print()