Apa itu Penghapusan Mundur?

  • Post
    Apa itu Penghapusan Mundur?

    Eliminasi mundur adalah teknik pemilihan fitur saat membangun model pembelajaran mesin. Ini digunakan untuk menghapus fitur-fitur yang tidak memiliki pengaruh signifikan pada variabel dependen atau prediksi output. Ada berbagai cara untuk membuat model di Machine Learning, yaitu:

    1. Semua masuk
    2. Eliminasi Mundur
    3. Teruskan Seleksi
    4. Eliminasi Dua Arah
    5. Perbandingan Skor

    Di atas adalah metode yang memungkinkan untuk membangun model dalam Machine learning, tetapi di sini kita hanya akan menggunakan proses Eliminasi Mundur karena ini adalah metode tercepat.

    Langkah-langkah Eliminasi Mundur

    Berikut adalah beberapa langkah utama yang digunakan untuk menerapkan proses eliminasi mundur:

    Langkah-1: Pertama, kita perlu memilih tingkat signifikansi untuk tetap berada dalam model. (SL = 0,05)

    Langkah-2: Sesuaikan model lengkap dengan semua kemungkinan prediktor / variabel independen.

    Langkah-3: Pilih prediktor yang memiliki nilai P tertinggi, sedemikian rupa.

    1. Jika P-value> SL, lanjutkan ke langkah 4.
    1. Lain Selesai, dan model kami siap.

    Langkah-4: Hapus prediktor itu.

    Langkah-5: Buat kembali dan sesuaikan model dengan variabel yang tersisa.

    Need for Backward Elimination: Model Regresi Linear Berganda yang optimal:

    Pada bab sebelumnya, kita telah membahas dan berhasil membuat model Regresi Linear Berganda, di mana kita mengambil 4 variabel independen (pengeluaran R&D, pengeluaran administrasi, pengeluaran pemasaran, dan status (variabel dummy)) dan satu variabel dependen (Laba) . Namun model tersebut tidak optimal, karena kami telah memasukkan semua variabel independen dan tidak mengetahui model independen mana yang paling berpengaruh dan mana yang paling tidak berpengaruh untuk prediksi.

    Fitur yang tidak diperlukan meningkatkan kompleksitas model. Oleh karena itu, sebaiknya hanya memiliki fitur yang paling signifikan dan menjaga model kita tetap sederhana untuk mendapatkan hasil yang lebih baik.

    Jadi, untuk mengoptimalkan kinerja model, kami akan menggunakan metode Backward Elimination. Proses ini digunakan untuk mengoptimalkan kinerja model MLR karena hanya akan menyertakan fitur yang paling berpengaruh dan menghapus fitur yang paling tidak berpengaruh. Mari mulai menerapkannya ke model MLR kita.

    Langkah-langkah untuk metode Eliminasi Mundur:

    Kami akan menggunakan model yang sama yang kami buat di bab MLR sebelumnya. Di bawah ini adalah kode lengkapnya:

    1. # mengimpor perpustakaan
    2. impor numpy sebagai nm
    3. impor pyplot sebagai mtp
    4. import panda sebagai pd
    5. #importing dataset
    6. data_set = pd.read_csv ( ’50_CompList.csv’ )
    7. #Extracting Variabel Independen dan dependen
    8. x = data_set.iloc [:,: – 1 ] .values
    9. y = data_set.iloc [:,  4 ] .values
    10. #Data kategoris
    11. dari sklearn.preprocessing  impor LabelEncoder, OneHotEncoder
    12. labelencoder_x = LabelEncoder ()
    13. x [:,  3 ] = labelencoder_x.fit_transform (x [:, 3 ])
    14. onehotencoder = OneHotEncoder (kategorikal_features = [ 3 ])
    15. x = onehotencoder.fit_transform (x) .toarray ()
    16. #Menghindari jebakan variabel dummy:
    17. x = x [:,  1 :]
    18. # Memisahkan set data menjadi set pelatihan dan pengujian.
    19. dari sklearn.model_selection  import train_test_split
    20. x_train, x_test, y_train, y_test = train_test_split (x, y, test_size =  2 , random_state = 0 )
    21. #Menyesuaikan model MLR ke set pelatihan:
    22. dari sklearn.linear_model  import LinearRegression
    23. regressor = LinearRegression ()
    24. fit (x_train, y_train)
    25. #Memprediksi hasil set Tes;
    26. y_pred = regressor.predict (x_test)
    27. #Memeriksa skor
    28. print ( ‘Train Score:’ , regressor.score (x_train, y_train))
    29. print ( ‘Skor Tes:’ , regressor.score (x_test, y_test))

    Dari kode diatas didapatkan hasil training dan test set sebagai:

    Skor Kereta: 0.9501847627493607

    Skor Tes: 0,9347068473282446

    Perbedaan antara kedua skor tersebut adalah 0,0154.

    Catatan: Berdasarkan skor ini, kami akan memperkirakan efek fitur pada model kami setelah menggunakan proses eliminasi Mundur.

    Langkah: 1- Persiapan Eliminasi Mundur:

    • Mengimpor perpustakaan: Pertama, kita perlu mengimpor perpustakaan statsmodels.formula.api , yang digunakan untuk estimasi berbagai model statistik seperti OLS (Ordinary Least Square). Di bawah ini adalah kode untuk itu:
    1. impor api sebagai smf
    • Menambahkan kolom dalam matriks fitur: Seperti yang dapat kita periksa dalam persamaan MLR kita (a), ada satu konstanta b 0 , tetapi istilah ini tidak ada dalam matriks fitur, jadi kita perlu menambahkannya secara manual. Kami akan menambahkan kolom yang memiliki nilai x 0 = 1 terkait dengan konstanta b 0 .
      Untuk menambahkan ini, kita akan menggunakan fungsi append dari perpustakaan Numpy (nm yang telah kita impor ke dalam kode kita), dan akan memberikan nilai 1. Di bawah ini adalah kodenya.
    1. x = nm.append (arr = nm.ones (( 50 , 1 )). astype ( int ), values ​​= x, axis =1 )

    Di sini kami telah menggunakan axis = 1, karena kami ingin menambahkan kolom. Untuk menambahkan baris, kita bisa menggunakan axis = 0.

    Output: Dengan mengeksekusi baris kode di atas, kolom baru akan ditambahkan ke dalam matriks fitur kami, yang akan memiliki semua nilai sama dengan 1. Kita dapat memeriksanya dengan mengklik x dataset di bawah opsi variabel explorer.

     

    Langkah 2:

    • Sekarang, kita sebenarnya akan menerapkan proses eliminasi mundur. Pertama kita akan membuat vektor fitur baru x_opt , yang hanya akan berisi sekumpulan fitur independen yang secara signifikan memengaruhi variabel dependen.
    • Selanjutnya, sesuai proses Eliminasi Mundur, kita perlu memilih level signifikan (0,5), dan kemudian perlu menyesuaikan model dengan semua kemungkinan prediktor. Jadi untuk menyesuaikan model, kita akan membuat objek regressor_OLS dari perpustakaan statsmodels OLS kelas baru . Kemudian kita akan menyesuaikannya dengan menggunakan metode fit () .
    • Selanjutnya kita membutuhkan p-value untuk membandingkan dengan nilai SL, jadi untuk ini kita akan menggunakan metode summary () untuk mendapatkan tabel ringkasan semua nilai. Di bawah ini adalah kode untuk itu:
    1. x_opt = x [:, [ 0 , 1 , 2 , 3 , 4 , 5 ]]
    2. regressor_OLS = sm.OLS (endog = y, exog = x_opt) .fit ()
    3. summary ()

     

    Pada gambar di atas, kita dapat dengan jelas melihat nilai-p dari semua variabel. Di sini x1, x2 adalah variabel dummy, x3 adalah pengeluaran R&D, x4 adalah pengeluaran Administrasi, dan x5 adalah pengeluaran pemasaran .

    Dari tabel tersebut kita akan memilih p-value tertinggi yaitu untuk x1 = 0,953 Nah, kita memiliki p-value tertinggi yang lebih besar dari nilai SL, jadi akan menghapus variabel x1 (dummy variable) dari tabel dan akan mereparasi model. Di bawah ini adalah kode untuk itu:

    1. x_opt = x [:, [ 0 , 2 , 3 , 4 , 5 ]]
    2. regressor_OLS = sm.OLS (endog = y, exog = x_opt) .fit ()
    3. summary ()

    Keluaran:

    • Sekarang nilai tertinggi berikutnya adalah 0,961 untuk variabel x1, yang merupakan variabel dummy lainnya. Jadi kami akan menghapusnya dan mereparasi modelnya. Di bawah ini adalah kode untuk itu:
    1. x_opt = x [:, [ 0 , 3 , 4 , 5 ]]
    2. regressor_OLS = sm.OLS (endog = y, exog = x_opt) .fit ()
    3. summary ()
    • Sekarang kita akan menghapus pengeluaran Admin yang memiliki nilai p .602 dan mereparasi model lagi.
    1. x_opt = x [:, [ 0 , 3 , 5 ]]
    2. regressor_OLS = sm.OLS (endog = y, exog = x_opt) .fit ()
    3. summary ()
    • Terakhir, kami akan menghapus satu variabel lagi, yang memiliki nilai p .60 untuk pengeluaran pemasaran, yang lebih dari tingkat yang signifikan.
      Di bawah ini adalah kode untuk itu:
    1. x_opt = x [:, [ 0 , 3 ]]
    2. regressor_OLS = sm.OLS (endog = y, exog = x_opt) .fit ()
    3. summary ()

     

    Seperti yang bisa kita lihat pada gambar keluaran di atas, hanya dua variabel yang tersisa. Jadi hanya variabel independen R&D yang merupakan variabel signifikan untuk prediksi. Jadi sekarang kami dapat memprediksi secara efisien menggunakan variabel ini.

    Memperkirakan kinerja:

    Pada topik sebelumnya, kita telah menghitung nilai train dan test model ketika kita telah menggunakan semua variabel fitur. Sekarang kita akan memeriksa skor hanya dengan satu variabel fitur (pengeluaran R&D).  Di bawah ini adalah kode untuk Membangun model Regresi Linear Berganda dengan hanya menggunakan pengeluaran R&D:

    1. # mengimpor perpustakaan
    2. impor numpy sebagai nm
    3. impor pyplot sebagai mtp
    4. import panda sebagai pd
    5. #importing dataset
    6. data_set = pd.read_csv ( ’50_CompList1.csv’ )
    7. #Extracting Variabel Independen dan dependen
    8. x_BE = data_set.iloc [:,: – 1 ] .values
    9. y_BE = data_set.iloc [:,  1 ] .values
    10. # Memisahkan set data menjadi set pelatihan dan pengujian.
    11. dari sklearn.model_selection  import train_test_split
    12. x_BE_train, x_BE_test, y_BE_train, y_BE_test = train_test_split (x_BE, y_BE, test_size =  2 , random_state = 0 )
    13. #Menyesuaikan model MLR ke set pelatihan:
    14. dari sklearn.linear_model  import LinearRegression
    15. regressor = LinearRegression ()
    16. fit (nm.array (x_BE_train) .reshape (- 1 , 1 ), y_BE_train)
    17. #Memprediksi hasil set Tes;
    18. y_pred = regressor.predict (x_BE_test)
    19. #Cheking skor
    20. print ( ‘Train Score:’ , regressor.score (x_BE_train, y_BE_train))
    21. print ( ‘Skor Tes:’ , regressor.score (x_BE_test, y_BE_test))

    Keluaran:

    Setelah menjalankan kode diatas, kita akan mendapatkan nilai Training dan Tes sebagai:

    Skor Kereta: 0.9449589778363044

    Skor Tes: 0,9464587607787219

    Seperti yang bisa kita lihat, skor pelatihan 94% akurat, dan skor tes juga 94% akurat. Perbedaan antara kedua skor tersebut adalah 0,00149 . Skor ini sangat mendekati skor sebelumnya, yaitu 0,0154 , dimana semua variabel sudah kami masukkan.

    Kami mendapatkan hasil ini dengan hanya menggunakan satu variabel independen (pengeluaran R&D) alih-alih empat variabel. Karenanya, sekarang, model kami sederhana dan akurat.

     

     

    credit. javatpoint

     

    Ampuh! Ini rahasia mengembangkan aplikasi secara instan, tinggal download dan kembangkan. Gabung sekarang juga! Premium Membership [PRIVATE] https://premium.codeorayo.com

Tagged: 

  • You must be logged in to reply to this topic.