Regresi Linear Berganda

  • Post
    Regresi Linear Berganda

    Pada topik sebelumnya kita telah mempelajari tentang Regresi Linier Sederhana, dimana satu variabel Independen / Prediktor (X) digunakan untuk memodelkan variabel respon (Y). Tetapi mungkin ada berbagai kasus di mana variabel respon dipengaruhi oleh lebih dari satu variabel prediktor; untuk kasus seperti itu, digunakan algoritma Regresi Linier Berganda.

    Selain itu, Regresi Linier Berganda merupakan perpanjangan dari Regresi Linier Sederhana karena dibutuhkan lebih dari satu variabel prediktor untuk memprediksi variabel respon. Kita dapat mendefinisikannya sebagai:

    Regresi Linier Berganda adalah salah satu algoritma regresi penting yang memodelkan hubungan linier antara satu variabel kontinu dependen dan lebih dari satu variabel independen.

    Contoh:

    Prediksi emisi CO 2 berdasarkan ukuran mesin dan jumlah silinder dalam sebuah mobil.

    Beberapa poin penting tentang MLR:

    • Untuk MLR, variabel dependen atau target (Y) harus kontinu / nyata, tetapi prediktor atau variabel independen dapat berbentuk kontinu atau kategorikal.
    • Setiap variabel fitur harus memodelkan hubungan linier dengan variabel dependen.
    • MLR mencoba menyesuaikan garis regresi melalui ruang titik data multidimensi.

    Persamaan MLR:

    Dalam Regresi Linier Berganda, variabel target (Y) merupakan kombinasi linier dari beberapa variabel prediktor x 1 , x 2 , x 3 , …, x n . Karena merupakan penyempurnaan dari Regresi Linier Sederhana, maka hal yang sama diterapkan untuk persamaan regresi linier berganda, persamaannya menjadi:

    1. Y = b <sub> 0 </sub> + b <sub> 1 </sub> x <sub> 1 </sub> + b <sub> 2 </sub> x <sub> 2 </sub> + b <sub> 3 </sub> x <sub> 3 </sub> + …… bnxn …………… (a)

    Dimana,

    Y = Variabel Output / Respon

    0 , b 1 , b 2 , b 3 , b n …. = Koefisien model.

    1 , x 2 , x 3 , x 4 , … = Berbagai variabel Independen / fitur

    Asumsi untuk Regresi Linear Berganda:

    • Sebuah hubungan linear harus ada antara Target dan variabel prediktor.
    • Residu regresi harus didistribusikan secara normal .
    • MLR mengasumsikan sedikit atau tidak ada multikolinearitas (korelasi antara variabel independen) dalam data.

    Implementasi model Regresi Linier Berganda menggunakan Python:

    Untuk mengimplementasikan MLR menggunakan Python, kami memiliki masalah di bawah ini:

    Deskripsi Masalah:

    Kami memiliki kumpulan data 50 perusahaan baru . Dataset ini berisi lima informasi utama: Belanja Litbang, Belanja Administrasi, Belanja Pemasaran, Negara Bagian, dan Laba untuk tahun finansial . Tujuan kami adalah membuat model yang dapat dengan mudah menentukan perusahaan mana yang memiliki keuntungan maksimal, dan faktor mana yang paling mempengaruhi keuntungan suatu perusahaan.

    Karena kita perlu mencari Profit, jadi itu adalah variabel dependen, dan empat variabel lainnya adalah variabel independen. Berikut adalah langkah-langkah utama penerapan model MLR:

    1. Langkah-langkah Pra-pemrosesan Data
    2. Menyesuaikan model MLR ke set pelatihan
    3. Memprediksi hasil set tes

    Langkah-1: Langkah Pra-pemrosesan Data:

    Langkah pertama adalah pra-pemrosesan data , yang telah kita bahas dalam tutorial ini. Proses ini berisi langkah-langkah di bawah ini:

    • Mengimpor perpustakaan: Pertama kita akan mengimpor perpustakaan yang akan membantu dalam membangun model. Di bawah ini adalah kode untuk itu:
    1. # mengimpor perpustakaan
    2. impor numpy sebagai nm
    3. impor pyplot sebagai mtp
    4. import panda sebagai pd
    • Mengimpor dataset: Sekarang kita akan mengimpor dataset (50_CompList), yang berisi semua variabel. Di bawah ini adalah kode untuk itu:
    1. #importing dataset
    2. data_set = pd.read_csv ( ’50_CompList.csv’ )
    • Mengekstrak Variabel dependen dan independen:
    1. #Extracting Variabel Independen dan dependen
    2. x = data_set.iloc [:,: – 1 ] .values
    3. y = data_set.iloc [:,  4 ] .values

    Keluaran:

    Keluar [5]:

    larik ([[165349.2, 136897.8, 471784.1, ‘New York’],

    [162597.7, 151377.59, 443898.53, ‘California’],

    [153441.51, 101145.55, 407934.54, ‘Florida’],

    [144372.41, 118671.85, 383199.62, ‘New York’],

    [142107.34, 91391.77, 366168.42, ‘Florida’],

    [131876.9, 99814.71, 362861.36, ‘New York’],

    [134615.46, 147198.87, 127716.82, ‘California’],

    [130298.13, 145530.06, 323876.68, ‘Florida’],

    [120542.52, 148718.95, 311613.29, ‘New York’],

    [123334.88, 108679.17, 304981.62, ‘California’],

    [101913.08, 110594.11, 229160.95, ‘Florida’],

    [100671.96, 91790.61, 249744.55, ‘California’],

    [93863.75, 127320.38, 249839.44, ‘Florida’],

    [91992.39, 135495.07, 252664.93, ‘California’],

    [119943.24, 156547.42, 256512.92, ‘Florida’],

    [114523.61, 122616.84, 261776.23, ‘New York’],

    [78013.11, 121597.55, 264346.06, ‘California’],

    [94657.16, 145077.58, 282574.31, ‘New York’],

    [91749.16, 114175.79, 294919.57, ‘Florida’],

    [86419.7, 153514.11, 0.0, ‘New York’],

    [76253.86, 113867.3, 298664.47, ‘California’],

    [78389.47, 153773.43, 299737.29, ‘New York’],

    [73994.56, 122782.75, 303319.26, ‘Florida’],

    [67532.53, 105751.03, 304768.73, ‘Florida’],

    [77044.01, 99281.34, 140574.81, ‘New York’],

    [64664.71, 139553.16, 137962.62, ‘California’],

    [75328.87, 144135.98, 134050.07, ‘Florida’],

    [72107.6, 127864.55, 353183.81, ‘New York’],

    [66051.52, 182645.56, 118148.2, ‘Florida’],

    [65605.48, 153032.06, 107138.38, ‘New York’],

    [61994.48, 115641.28, 91131.24, ‘Florida’],

    [61136.38, 152701.92, 88218.23, ‘New York’],

    [63408.86, 129219.61, 46085.25, ‘California’],

    [55493.95, 103057.49, 214634.81, ‘Florida’],

    [46426.07, 157693.92, 210797.67, ‘California’],

    [46014.02, 85047.44, 205517.64, ‘New York’],

    [28663.76, 127056.21, 201126.82, ‘Florida’],

    [44069.95, 51283.14, 197029.42, ‘California’],

    [20229.59, 65947.93, 185265.1, ‘New York’],

    [38558.51, 82982.09, 174999.3, ‘California’],

    [28754.33, 118546.05, 172795.67, ‘California’],

    [27892.92, 84710.77, 164470.71, ‘Florida’],

    [23640.93, 96189.63, 148001.11, ‘California’],

    [15505.73, 127382.3, 35534.17, ‘New York’],

    [22177.74, 154806.14, 28334.72, ‘California’],

    [1000.23, 124153.04, 1903.93, ‘New York’],

    [1315.46, 115816.21, 297114.46, ‘Florida’],

    [0,0, 135426,92, 0,0, ‘California’],

    [542.05, 51743.15, 0.0, ‘New York’],

    [0.0, 116983.8, 45173.06, ‘California’]], dtype = object)

    Seperti yang dapat kita lihat pada keluaran di atas, kolom terakhir berisi variabel kategori yang tidak cocok untuk diterapkan secara langsung untuk menyesuaikan model. Jadi kita perlu menyandikan variabel ini.

    Mengkodekan Variabel Dummy:

    Karena kami memiliki satu variabel kategorikal (Status), yang tidak dapat langsung diterapkan ke model, jadi kami akan menyandikannya. Untuk menyandikan variabel kategorikal menjadi angka, kita akan menggunakan kelas LabelEncoder . Tetapi itu tidak cukup karena masih memiliki beberapa tatanan relasional, yang dapat membuat model yang salah. Jadi untuk menghilangkan masalah ini, kita akan menggunakan OneHotEncoder , yang akan membuat variabel dummy. Di bawah ini adalah kode untuk itu:

    1. #Data kategoris
    2. dari sklearn.preprocessing  impor LabelEncoder, OneHotEncoder
    3. labelencoder_x = LabelEncoder ()
    4. x [:,  3 ] = labelencoder_x.fit_transform (x [:, 3 ])
    5. onehotencoder = OneHotEncoder (kategorikal_features = [ 3 ])
    6. x = onehotencoder.fit_transform (x) .toarray ()

    Di sini kita hanya mengkodekan satu variabel independen, yang dinyatakan sebagai variabel lain yang kontinu.

    Catatan: Kita tidak boleh menggunakan semua variabel dummy pada saat yang sama, jadi harus 1 kurang dari jumlah total variabel dummy, jika tidak maka akan membuat perangkap variabel dummy.

    • Sekarang, kami menulis satu baris kode hanya untuk menghindari jebakan variabel dummy:
    1. # menghindari jebakan variabel tiruan:
    2. x = x [:,  1 :]

    Jika kita tidak menghapus variabel dummy pertama, maka hal itu dapat menyebabkan multikolinearitas dalam model.

    • Sekarang kita akan membagi dataset menjadi set pelatihan dan pengujian. Kode untuk ini diberikan di bawah ini:
    1. # Memisahkan set data menjadi set pelatihan dan pengujian.
    2. dari sklearn.model_selection  import train_test_split
    3. x_train, x_test, y_train, y_test = train_test_split (x, y, test_size =  2 , random_state = 0 )

    Kode di atas akan membagi dataset kita menjadi satu set pelatihan dan set pengujian.

    Output: Kode di atas akan membagi dataset menjadi set pelatihan dan set pengujian. Anda dapat memeriksa output dengan mengklik opsi variabel explorer yang diberikan di Spyder IDE.

     

    Catatan: Di MLR, kami tidak akan melakukan penskalaan fitur karena ditangani oleh library, jadi kami tidak perlu melakukannya secara manual.

    Langkah: 2- Menyesuaikan model MLR kita ke set Pelatihan:

    Sekarang, kami telah menyiapkan kumpulan data kami dengan baik untuk memberikan pelatihan, yang berarti kami akan menyesuaikan model regresi kami ke set pelatihan. Ini akan sama seperti yang kita lakukan pada model Regresi Linier Sederhana . Kode untuk ini adalah:

    1. #Menyesuaikan model MLR ke set pelatihan:
    2. dari sklearn.linear_model  import LinearRegression
    3. regressor = LinearRegression ()
    4. fit (x_train, y_train)

    Keluaran:

    Keluar [9]: LinearRegression (copy_X = True, fit_intercept = True, n_jobs = None, normalize = False)

    Sekarang, kami telah berhasil melatih model kami menggunakan set data pelatihan. Pada langkah selanjutnya, kami akan menguji kinerja model menggunakan set data uji.

    Langkah: 3- Prediksi hasil set Tes:

    Langkah terakhir untuk model kami adalah memeriksa performa model. Kami akan melakukannya dengan memprediksi hasil set tes. Untuk prediksi, kita akan membuat vektor y_pred . Di bawah ini adalah kode untuk itu:

    1. #Memprediksi hasil set Tes;
    2. y_pred = regressor.predict (x_test)

    Dengan menjalankan baris kode di atas, vektor baru akan dibuat di bawah opsi variabel explorer. Kita dapat menguji model kita dengan membandingkan nilai prediksi dan nilai set pengujian.

    • Kami juga dapat memeriksa skor untuk set data pelatihan dan set data pengujian. Di bawah ini adalah kode untuk itu:
    1. print ( ‘Train Score:’ , regressor.score (x_train, y_train))
    2. print ( ‘Skor Tes:’ , regressor.score (x_test, y_test))

    Output: Skornya adalah:

    Skor Kereta: 0.9501847627493607

    Skor Tes: 0,9347068473282446

    Skor di atas menunjukkan bahwa model kami 95% akurat dengan set data pelatihan dan 93% akurat dengan set data pengujian.

    Catatan: Pada topik berikutnya, kita akan melihat bagaimana kita dapat meningkatkan kinerja model menggunakan proses Eliminasi Mundur .

    Aplikasi Regresi Linier Berganda:

    Ada dua aplikasi utama Regresi Linier Berganda:

    • Efektivitas variabel independen terhadap prediksi:
    • Memprediksi dampak perubahan:

     

     

     

     

    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.