Regresi linier adalah metode statistik yang memodelkan hubungan linear antara variabel dependen dan satu atau beberapa variabel independen. Metode ini menyesuaikan garis linear optimal ke data dengan meminimalkan selisih antara nilai prediksi dan nilai aktual, sehingga memungkinkan estimasi dan analisis terhadap variabel dependen.
Konfigurasi Komponen
Metode 1: Gunakan UI
Tambahkan komponen Linear Regression ke halaman workflow di Designer, lalu konfigurasikan parameternya pada panel sebelah kanan:
|
Jenis parameter |
Parameter |
Deskripsi |
|
Pengaturan kolom |
Select feature columns |
Kolom fitur dari sumber data masukan yang akan digunakan untuk pelatihan. |
|
Select label column |
Tipe DOUBLE dan BIGINT didukung. |
|
|
Is sparse format |
Anda dapat merepresentasikan format sparse dalam format KV (key-value). |
|
|
Separator between key-value pairs |
Pemisah default adalah koma (,). |
|
|
Separator between key and value |
Pemisah antara kunci dan nilai. Nilai default adalah titik dua (:). |
|
|
Pengaturan parameter |
Maximum iterations |
Jumlah maksimum iterasi untuk algoritma. |
|
Minimum likelihood error |
Menggunakan log-likelihood sebagai kriteria konvergensi. Algoritma berhenti jika selisih log-likelihood antara dua iterasi berturut-turut lebih kecil dari nilai ini. |
|
|
Regularization type |
Jenis regularisasi. Jenis yang didukung adalah L1, L2, dan None. |
|
|
Regularization coefficient |
Jika Regularization Type diatur ke None, parameter ini diabaikan. |
|
|
Generate model evaluation table |
Metrik mencakup R-Squared, Adjusted R-Squared, AIC, derajat kebebasan, deviasi standar residu, dan bias. |
|
|
Regression coefficient evaluation |
Metrik mencakup T-value, P-value, dan interval kepercayaan [2.5%,97.5%]. Parameter ini hanya tersedia jika kotak centang Generate model evaluation table dipilih. |
|
|
Penyetelan eksekusi |
Number of computing cores |
Secara default, sistem secara otomatis mengalokasikan core. |
|
Memory size per core |
Secara default, sistem secara otomatis mengalokasikan memori. |
Metode 2: Gunakan Perintah PAI
Gunakan perintah PAI untuk mengonfigurasi parameter komponen Linear Regression. Anda dapat menggunakan komponen SQL script untuk memanggil perintah PAI. Untuk informasi selengkapnya, lihat SQL Script.
PAI -name linearregression
-project algo_public
-DinputTableName=lm_test_input
-DfeatureColNames=x
-DlabelColName=y
-DmodelName=lm_test_input_model_out;
|
Parameter |
Wajib |
Nilai default |
Deskripsi |
|
inputTableName |
Ya |
None |
Nama tabel input. |
|
modelName |
Ya |
None |
Nama model output. |
|
outputTableName |
Tidak |
None |
Nama tabel evaluasi model output. Parameter ini wajib jika enableFitGoodness bernilai true. |
|
labelColName |
Ya |
None |
Variabel dependen. Tipe DOUBLE dan BIGINT didukung. Anda hanya dapat memilih satu kolom sebagai variabel dependen. |
|
featureColNames |
Ya |
None |
Variabel independen. Jika data masukan dalam format dense, tipe DOUBLE dan BIGINT didukung. Jika data masukan dalam format sparse, tipe STRING didukung. |
|
inputTablePartitions |
Tidak |
None |
Partisi dari tabel input. |
|
enableSparse |
Tidak |
false |
Menentukan apakah data input dalam format sparse. Nilai yang valid adalah {true,false}. |
|
itemDelimiter |
Tidak |
Koma (,) |
Pemisah antara pasangan kunci-nilai. Parameter ini digunakan jika enableSparse bernilai true. |
|
kvDelimiter |
Tidak |
Titik dua (:) |
Pemisah antara kunci dan nilai. Parameter ini digunakan jika enableSparse bernilai true. |
|
maxIter |
Tidak |
100 |
Jumlah maksimum iterasi untuk algoritma. |
|
epsilon |
Tidak |
0.000001 |
Kesalahan kemungkinan minimum. Algoritma berhenti jika selisih log-likelihood antara dua iterasi berturut-turut lebih kecil dari nilai ini. |
|
regularizedType |
Tidak |
None |
Jenis regularisasi. Nilai yang valid adalah {l1,l2,None}. |
|
regularizedLevel |
Tidak |
1 |
Koefisien regularisasi. Parameter ini tidak digunakan jika regularizedType bernilai None. |
|
enableFitGoodness |
Tidak |
false |
Menentukan apakah akan menghasilkan tabel evaluasi model. Metrik mencakup R-Squared, Adjusted R-Squared, AIC, derajat kebebasan, deviasi standar residu, dan deviance. Nilai yang valid adalah {true,false}. |
|
enableCoefficientEstimate |
Tidak |
false |
Menentukan apakah akan mengevaluasi koefisien regresi. Metrik evaluasi mencakup T-value, P-value, dan interval kepercayaan [2.5%,97.5%]. Parameter ini digunakan jika enableFitGoodness bernilai true. Nilai yang valid adalah {true,false}. |
|
lifecycle |
Tidak |
-1 |
Siklus hidup tabel evaluasi model output. |
|
coreNum |
Tidak |
System allocated |
Secara default, sistem secara otomatis mengalokasikan core. |
|
memSizePerCore |
Tidak |
System allocated |
Secara default, sistem secara otomatis mengalokasikan memori. |
Contoh
-
Buat data uji menggunakan pernyataan SQL.
drop table if exists lm_test_input; create table lm_test_input as select * from ( select 10 as y, 1.84 as x1, 1 as x2, '0:1.84 1:1' as sparsecol1 union all select 20 as y, 2.13 as x1, 0 as x2, '0:2.13' as sparsecol1 union all select 30 as y, 3.89 as x1, 0 as x2, '0:3.89' as sparsecol1 union all select 40 as y, 4.19 as x1, 0 as x2, '0:4.19' as sparsecol1 union all select 50 as y, 5.76 as x1, 0 as x2, '0:5.76' as sparsecol1 union all select 60 as y, 6.68 as x1, 2 as x2, '0:6.68 1:2' as sparsecol1 union all select 70 as y, 7.58 as x1, 0 as x2, '0:7.58' as sparsecol1 union all select 80 as y, 8.01 as x1, 0 as x2, '0:8.01' as sparsecol1 union all select 90 as y, 9.02 as x1, 3 as x2, '0:9.02 1:3' as sparsecol1 union all select 100 as y, 10.56 as x1, 0 as x2, '0:10.56' as sparsecol1 ) tmp; -
Kirimkan parameter untuk komponen regresi linier menggunakan perintah PAI.
PAI -name linearregression -project algo_public -DinputTableName=lm_test_input -DlabelColName=y -DfeatureColNames=x1,x2 -DmodelName=lm_test_input_model_out -DoutputTableName=lm_test_input_conf_out -DenableCoefficientEstimate=true -DenableFitGoodness=true -Dlifecycle=1; -
Kirimkan parameter untuk komponen prediksi menggunakan perintah PAI.
pai -name prediction -project algo_public -DmodelName=lm_test_input_model_out -DinputTableName=lm_test_input -DoutputTableName=lm_test_input_predict_out -DappendColNames=y; -
Lihat tabel evaluasi model output lm_test_input_conf_out.
+------------+------------+------------+------------+--------------------+------------+ | colname | value | tscore | pvalue | confidenceinterval | p | +------------+------------+------------+------------+--------------------+------------+ | Intercept | -6.42378496687763 | -2.2725755951390028 | 0.06 | {"2.5%": -11.964027, "97.5%": -0.883543} | coefficient | | x1 | 10.260063429838898 | 23.270944360826963 | 0.0 | {"2.5%": 9.395908, "97.5%": 11.124219} | coefficient | | x2 | 0.35374498323846265 | 0.2949247320997519 | 0.81 | {"2.5%": -1.997160, "97.5%": 2.704650} | coefficient | | rsquared | 0.9879675667384592 | NULL | NULL | NULL | goodness | | adjusted_rsquared | 0.9845297286637332 | NULL | NULL | NULL | goodness | | aic | 59.331109494251805 | NULL | NULL | NULL | goodness | | degree_of_freedom | 7.0 | NULL | NULL | NULL | goodness | | standardErr_residual | 3.765777749448906 | NULL | NULL | NULL | goodness | | deviance | 99.26757440771128 | NULL | NULL | NULL | goodness | +------------+------------+------------+------------+--------------------+------------+ -
Lihat tabel hasil prediksi lm_test_input_predict_out.
+------------+-------------------+------------------+-------------------+ | y | prediction_result | prediction_score | prediction_detail | +------------+-------------------+------------------+-------------------+ | 10 | NULL | 12.808476727264404 | {"y": 12.8084767272644} | | 20 | NULL | 15.43015013867922 | {"y": 15.43015013867922} | | 30 | NULL | 33.48786177519568 | {"y": 33.48786177519568} | | 40 | NULL | 36.565880804147355 | {"y": 36.56588080414735} | | 50 | NULL | 52.674180388994415 | {"y": 52.67418038899442} | | 60 | NULL | 62.82092871092313 | {"y": 62.82092871092313} | | 70 | NULL | 71.34749583130122 | {"y": 71.34749583130122} | | 80 | NULL | 75.75932310613193 | {"y": 75.75932310613193} | | 90 | NULL | 87.1832221199846 | {"y": 87.18322211998461} | | 100 | NULL | 101.92248485222113 | {"y": 101.9224848522211} | +------------+-------------------+------------------+-------------------+