Pada modul ini akan dibahas implemantasi feature selection dengan metoda wrapper. Data yang digunakan sama dengan modul sebelumnya, HousingData.csv. Data download di https://drive.google.com/file/d/1SITrjPEoymayijavt_9JXLjxpm3TWDUb/view?usp=sharing
Prosesnya juga sangat mirip dengan modul sebelumnya, hanya berbeda library yang digunakan dan pada proses selection saja. Pada modul ini digunakan LinearRegression dan RFE.
Proses memberi nama column dan replace missing value sama seperti modul sebelumnya. Begitu juga proses menentukan data feature dan target. Untuk penjelasan code dibawah silakan lihat modul sebelumnya di https://skillplus.web.id/feature-selection-metoda-filter/
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.feature_selection import RFE
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)
house_df.isnull().sum().sort_values(ascending=False)
data = house_df.fillna(house_df.mean())
target = data['MedianHomeVal']
features = data.drop('MedianHomeVal', axis=1)
Mulai dari Code dibawah, perbedaan dengan modul sebelumnya dimulai. Pada modul ini digunakan metoda wrapper menggunakan RFE.
Hasil dari RFE adalah berupa ranking. Feature yang terbaik adalah feature dengan ranking 1.
linear_reg = LinearRegression()
rfe = RFE(estimator=linear_reg, n_features_to_select=5, step=1)
rfe.fit(features, target)
rfe_features = features.columns[rfe.support_]
pd.DataFrame({'FeatureName' : features.columns, 'Rank' : rfe.ranking_}).sort_values(by='Rank')
FeatureName Rank
3 AlongRiver 1
4 NO2Level 1
5 Rooms 1
7 Distance 1
10 PupilTeacher 1
2 IndusRatio 2
0 CrimeRate 3
8 RoadAcces 4
6 OldHomeRatio 5
1 ZonedRatio 6
9 TaxRate 7
Haloo, Sebelumnya saya sedang mengerjakan skripsi dengan metode wrapper ini, tapi belum sepenuhnya paham tentang coding yang ada pada tutorial disini. Apakah admin bersedia untuk membagi ilmunya tentang hal ini? Terima kasih
Halo kak, kebetulan yang membuat tutorial ini penulis lain, nanti kita coba kontak penulisnya. smoga bisa membantu. trims.
Halo admin, maaf nih komen lagi, kalo boleh, saya mau minta kontak yang nulis artikel ini min. Terima kasih min..
halo Randa, maaf baru kita reply, dari pihak skillplus sudah berikan email Randa ke pihak penulis. Jadi harap ditunggu aja, kalau penulisnya memang ada waktu pasti dihubungi.
Maaf ya, kita gak bisa kasih email penulis karena ada perjanjian privacy antara skillplus dan penulis. Nanti kami bisa ditegur sama penulis.
Trims
Thanks min… ditunggu kabar baiknya