### 9.3 Feature Selection

Pada pembelajaran mesin, pada umumnya kita menggunakan banyak (lebih
dari satu) fitur. Artinya kita merepresentasikan setiap _record_ ( _instance_ ) atau
_inputs_ ebagai suatu vektorx∈R^1 ×F; dimanaFmelambangkan dimensi vektor
atau banyaknya fitur. Seringkali,F bernilai besar sehingga model yang
kita miliki kompleks. Kita tentunya ingin mengurangi kompleksitas dengan

(^1) Curse of Dimensionality


```
9.3 Feature Selection 119
```
alasan-alasan yang sudah disebutkan pada subbab 9.2. Alasan lainnya karena
belum tentu semua fitur berguna. Cara termudah adalah dengan menghapus
fitur yang memiliki nilai varians = 0. Sayang sekali, hal ini tidak selalu terjadi.
Subbab ini membahas teknik-teknik yang dapat digunakan untuk menyederhanakan
fitur (mengurangi dimensi input).

9.3.1 Subset Selection (Feature Ablation)

Cara paling intuitif untuk mencari tahu kombinasi fitur terbaik adalah dengan
mencoba seluruh kombinasi fitur. Misal kita mempunyai fitur sebanyakF, kita
bisa pilih untuk menggunakan atau tidak menggunakan masing-masing fitur,
menghasilkan kombinasi sebanyak 2F. Dari keseluruhan kombinasi tersebut,
kita pilih suatu kombinasi fitur yang memerikan kinerja terbaik. Akan tetapi,
metode _brute force_ ini terlalu memakan waktu. Kita dapat juga menggunakan
teknik _greedy_ yaitu _forward selection_ dan _backward selection_.Forwarddan
_backward selection_ sering juga disebut sebagai _feature ablation_.
Pada _forward selection_, kita mulai dengan suatu model yang tidak menggunakan
fitur apapun sama sekali, yaitu meng- _assign_ kelas yang paling sering
muncul di dataset, pada _input_. Setelah itu, kita tambahkan satu per satu fitur
pada setiap langkah. Langkah berikutnya, kita gunakan satu fitur. DiantaraF
pilihan fitur, kita cari fitur yang memberi nilai terbaik. Kemudian, pada tahap
berikutnya, kita kombinasikan fitur yang kita pilih pada langkah sebelumnya
dengan fitur yang tersisa. Hal ini terus diulang sampai kita sudah menggunakan
seluruh fitur pada model kita. Untuk mencari model terbaik, kita hanya
perlu mencari kombinasi fitur yang memberikan nilai kinerja terbaik.Forward
selectiondiilustrasikan pada Gambar 9.1. Dibanding _brute force_ yang bersifat
eksponensial, _forward selection_ membentuk suatu deret aritmatika kombinasi
fitur yang dicoba, yaituF+ (F−1) +···+ 1 =F(F+ 1)/2. Apabila kita
memiliki fitur sebanyakF = 10, kombinasi _brute force_ menghasilkan 1, 024
kombinasi, sementara _forward selection_ hanya sebanyak 45.

```
Gambar 9.1: Ilustrasi _forward selection_ untuk tiga fitur.
```
_Backward selection_ adalah kebalikan dari _forward selection_. Apabila pada
_forward selection_, kita menambahkan satu fitur tiap langkah, _backward_ selec-


120 9 Seleksi Fitur dan Metode Evaluasi

tionmengurangi satu fitur pada tiap langkah. Ilustrasi diberikan pada Gambar
9.2. Seperti _forward selection_, _backward selection_ juga hanya mencoba sebanyakF(F+
1)/2 kombinasi. Kita juga dapat menggabungkan _forward_ dan
_backward selection_ menjadi metode _hybrid_, yaitu menambah satu fitur pada
tiap langkah, serta memperbolehkan untuk menghilangkan fitur juga [20].

```
Gambar 9.2: Ilustrasi _backward selection_ untuk tiga fitur.
```
9.3.2 Shrinkage

Ingat kembali materi bab 5 tentang _regularization_. Seperti yang sudah dijelaskan,
kita ingin agar model kita sesederhana mungkin. Mengurangi dimensi
fitur adalah cara mengurangi kompleksitas. Ingat kembali, dengan menggunakan
suatu fungsi regularisasi, objektif pembelajaran adalah meminimalkan
_loss_ dan kompleksitas, seperti pada persamaan 9.1. Kompleksitas model dapat
dihitung menggunakanL 2 (Ridge, persamaan 9.2) atauL 1 (Lasso, persamaan
9.3) norm. Karena kita ingin meminimalkan norm, artinya kita juga
membuat parameter model pembelajaran mesin bernilai dekat dengan nol.
Pada metode Ridge, kita ingin meminimalkan fungsi eksponensial, sementara
fungsi skalar pada Lasso. Artinya, Lasso lebih cenderung untuk menghasilkan
suatu model yang bersifat _sparse_. Dengan kata lain, Lasso melakukansubset
_feature selection_ seperti yang sudah dijelaskan pada subbab sebelumnya.
Sementara itu, Ridge cenderung tidak meng-nol-kan parameter, melainkan
hanyadekatdengan nol [20]. Kamu mungkin berpikir, kenapa kita tidak
menggunakan Lasso saja, berhubung ia mengeleminasi fitur. Pada metode
Ridge, semua fitur tetap digunakan walaupun nilainya diturunkan ( _shrink_ )
agar dekat dengan nol. Hal ini, walaupun tidak mengeleminasi fitur, dapat
mengurangi variasi kinerja model.^2 (dijelaskan pada subbab 9.5)

```
wˆ= arg min
w
```
```
L(w) +λR(w) (9.1)
```
```
R(w) =‖w‖^22 =
```
#### ∑

```
i
```
```
(wi)^2 (9.2)
```
(^2) baca buku [20] untuk pembuktiannya


```
9.3 Feature Selection 121
```
```
R(w) =‖w‖=
```
#### ∑

```
i
```
```
|wi| (9.3)
```
Secara singkat, Ridge digunakan untuk menghasilkan model yang varian
kinerjanya kecil. Sementara itu, Lasso digunakan untuk menghasilkan model
yang mudah dimengerti ( _interpretability_ ) dengan mengeliminasi fitur.

9.3.3 Principal Components Analysis (Dimensionality Reduction)

Teknik-teknik sebelumnya berfokus pada cara mengeleminasi fitur. Akan
tetapi, penghapusan suatu fitur berpotensi pada model yang tidak mampu
mengerti kompleksitas permasalahan. Dengan kata lain, _oversimplification_.
Dibanding menghapus fitur, cara lain untuk mengurangi kompleksitas komputasi
adalah mentransformasi data ke dalam dimensi lebih kecil. Untuk _input_
yang memilikiFfitur, kita kurangi dimensi _input_ menjadiM < F(dimensionality
reduction). Apabila kita mampu mengurangi dimensi _input_, maka kita
juga dapat mengurangi jumlah parameter pada model pembelajaran mesin,
yang artinya mengurangi kompleksitas komputasi dan meningkatkaninter-
pretability.
Ide utama _dimensionality reduction_ adalah mentransformasi data dari suatu _space_ ke _space_
lainnya, dimana data direpresentasikan dengan dimensi
lebih kecil. Dengan catatan, data dengan dimensi lebih kecil harus mampu
merepresentasikan karakteristik data pada dimensi aslinya! Dengan demikian,
satu fitur pada dimensi yang baru mungkin memuat informasi beberapa fitur
pada dimensi aslinya. Walaupun model yang kita hasilkan lebih sederhana
secara jumlah parameter, tetapi kita membutuhkan usaha ekstra untuk
mengerti representasi fitur-fitur pada dimensi yang baru.
Teknik yang digunakan untuk mengurangi dimensi adalahprincipal component
analysis. Ide dasarnya adalah mencari bentuk data (pada dimensi
lebih kecil) yang memiliki nilai varians tinggi untuk tiap fiturnya, karena
varians yang tinggi berarti kemampuan fitur yang tinggi dalam melakukan
diskriminasi (klasifikasi). Kita ingin mencari suatu arah ( _vektor_, matriks, tensor)
dimana data kita memiliki varians tertinggi. Pada dimensi yang baru,
kita berharap data kita tersebar menjadi beberapa kelompok yang mudah
dibedakan ( _easily separable_ ). Arah ini dikenal sebagaieigenvector, dan nilai
varians pada arah tersebut dikenal sebagaieigenvalue. Kami harap kamu
ingat materi kuliah aljabar linear. Eigenvector yang memiliki nilai eigenvalue
tertinggi disebut sebagai _principal components_, yaitu semacam bentuk
_data_  yang ringkas. Selain mengurangi dimensi, teknik ini juga mengurangi
(atau meniadakan) interaksi antar-fitur. Dengan demikian, kita dapat menggunakanadditive
assumptionsaat melakukan pembelajaran (ingat kembali
materi bab 5).
Saat melakukan analisis ini, kita membuat suatu asumsi bahwa sejumlah
_principal components_ cukup untuk merepresentasikan variasi yang ada pada
_data_  [20]. Dengan kata lain, kita mengasumsikan arah (eigenvector) ketika


122 9 Seleksi Fitur dan Metode Evaluasi

_data_  memiliki varians tertinggi, adalah arah yang berasosiasi dengan _output_.
_Singular Value Decomposition_ adalah salah satu teknik untuk melakukanprincipal
component analysis. Hal tersebut akan dibahas pada bab 12. Buku ini
juga akan memberi contoh konkret _dimensionality reduction_ denganartificial
_neural network_ pada bab 12.

