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.
1 thought on “Feature Selection Metoda Embedded”