Feature Selection Metoda Embedded

Masih seperti modul sebelumnya, data yang digunakan adalah HousingData.csv

Metoda embedded menggunakan library Lasso dari Scikit-learn.

Masih sama dengan modul sebelumnya, bagian awal kode adalah proses import library yang digunakan. Memberikan nama column yang readable. Dan Melakukan replacement missing value.

import pandas as pd
import numpy as np

from sklearn.linea_model import Lasso

house_df = pd.read_csv('HousingData.csv')

col_nm = ['CrimeRate', 'ZonedRatio', 'IndusRatio', 'AlongRiver', 'NO2Level', 'Rooms', 'OldHomeRatio', 'Distance', 'RoadAcces', 'TaxRate', 'PupilTeacher', 'MedianHomeVal',]

house_df.columns = col_nm

house_df = house_df.replace('NA', np.nan)

data = house_df.fillna(house_df.mean())

target = data['MedianHomeVal']
features = data.drop('MedianHomeVal', axis=1)

Code dibawah melakukan feature selection dengan metoda lasso. Untuk dokumentasi lengkap lihat di https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html

lasso = Lasso(alpha=1.0)
lasso.fit(features, target)

lasso_coef = pd.DataFrame({'Feature' : features.columns, 'LassoCoef': lasso.coef_}).sort_values(by= 'LassoCoef', ascending=False)

lasso_coef['LassoCoef'] = abs(lasso_coef['LassoCoef'])
lasso_coef.sort_values(by='LassoCoef', ascending=False)

lasso_df = lasso_coef.sort_values(by='LassoCoef', ascending=False).head(5)
lasso_df = pd.DataFrame({'Lasso Method' : lasso_df['Feature'].values})
lasso_df

Metoda lasso akan mengembalikan nilai koefisien dengan range plus ke minus seperti berikut. Artinya feature dengan nilai positif terbesar dan negatif terbesar merupakan feature yang berkolerasi kuat terhadap target.

        Feature	        LassoCoef
5	Rooms	        4.385491
8	RoadAcces	0.195388
1	ZonedRatio	0.042629
3	AlongRiver	0.000000
4	NO2Level	-0.000000
9	TaxRate	        -0.016605
6	OldHomeRatio	-0.046299
2	IndusRatio	-0.087830
0	CrimeRate	-0.160247
7	Distance	-0.636740
10	PupilTeacher	-0.737281

Jadi untuk mendapatkan top feature terbaik, cara termudah adalah dengan mengubah menjadi abosulut

lasso_coef['LassoCoef'] = abs(lasso_coef['LassoCoef'])

Berikut 5 top feature menggunakan methoda embeded.

        Lasso Method
0	Rooms
1	PupilTeacher
2	Distance
3	RoadAcces
4	CrimeRate

Dengan berakhirnya modul feature selection menggunakan embedded method, maka tutorial ML data preparation menggunakan Python sudah selesai.

Masih banyak teknik lainnya yang belum dibahas, Skillplus akan membuat tutorial terpisah yang membahas teknik feature extraction untuk dataset image dan text.

Sharing is caring:

1 thought on “Feature Selection Metoda Embedded”

Leave a Comment