Regresi Polinomial ML

  • Post
    Regresi Polinomial ML

    • Regresi Polinomial adalah algoritma regresi yang memodelkan hubungan antara variabel terikat (y) dan variabel bebas (x) sebagai polinomial derajat ke-n. Persamaan Regresi Polinomial diberikan di bawah ini:

    y = b 0 + b 1 x 1 + b 2 x 1 2 + b 2 x 1 3 + …… b n x 1 n

    • Ini juga disebut kasus khusus Regresi Linear Berganda di ML. Karena kita menambahkan beberapa suku polinomial ke persamaan regresi Linear Berganda untuk mengubahnya menjadi Regresi Polinomial.
    • Ini adalah model linier dengan beberapa modifikasi untuk meningkatkan akurasi.
    • Dataset yang digunakan dalam regresi polinomial untuk pelatihan bersifat non-linier.
    • Itu menggunakan model regresi linier agar sesuai dengan fungsi dan kumpulan data yang rumit dan non-linier.
    • Oleh karena itu, “Dalam regresi polinomial, fitur asli diubah menjadi fitur Polinomial dengan derajat yang diperlukan (2,3, .., n) dan kemudian dimodelkan menggunakan model linier.”

    Kebutuhan Regresi Polinomial:

    Kebutuhan Regresi Polinomial dalam ML dapat dipahami pada poin-poin di bawah ini:

    • Jika kita menerapkan model linier pada dataset linier , maka itu memberi kita hasil yang baik seperti yang kita lihat di Regresi Linier Sederhana, tetapi jika kita menerapkan model yang sama tanpa modifikasi apa pun pada dataset non-linier , maka itu akan menghasilkan drastis keluaran. Karena fungsi kerugian akan meningkat, tingkat kesalahan akan tinggi, dan akurasi akan berkurang.
    • Jadi untuk kasus seperti itu, di mana titik data disusun secara non-linier, kita membutuhkan model Regresi Polinomial . Kita dapat memahaminya dengan lebih baik menggunakan diagram perbandingan di bawah ini dari dataset linier dan dataset non-linier.
    • Pada gambar di atas, kami telah mengambil dataset yang disusun secara non-linier. Jadi jika kita mencoba menutupinya dengan model linier, maka kita dapat dengan jelas melihat bahwa itu hampir tidak mencakup titik data apa pun. Di sisi lain, kurva cocok untuk mencakup sebagian besar titik data, yang merupakan model Polinomial.
    • Oleh karena itu, jika dataset disusun secara non-linier, maka kita harus menggunakan model Regresi Polinomial daripada Regresi Linier Sederhana.

    Catatan: Algoritma Regresi Polinomial disebut juga Regresi Linier Polinomial karena tidak bergantung pada variabel, melainkan bergantung pada koefisien yang disusun secara linier.

    Persamaan Model Regresi Polinomial:

    Persamaan Regresi Linier Sederhana: y = b 0 + b 1 x ……… (a)

    Persamaan Regresi Linear Berganda: y = b 0 + b 1 x + b 2 x 2 + b 3 x 3 + …. + b n x n         ……… (b)

    Persamaan Regresi Polinomial: y = b 0 + b 1 x + b 2 x 2 + b 3 x 3 + …. + b n x n         ………. (c)

    Ketika kita membandingkan ketiga persamaan di atas, kita dapat dengan jelas melihat bahwa ketiga persamaan tersebut adalah persamaan polinomial tetapi berbeda menurut derajat variabelnya. Persamaan Linear Sederhana dan Berganda juga merupakan persamaan Polinomial dengan derajat tunggal, dan persamaan regresi Polinomial adalah persamaan Linear dengan derajat ke-n. Jadi jika kita menambahkan derajat ke persamaan linier kita, maka itu akan diubah menjadi persamaan Linear Polinomial.

    Catatan: Untuk lebih memahami Regresi Polinomial, Anda harus memiliki pengetahuan tentang Regresi Linier Sederhana.

    Implementasi Regresi Polinomial menggunakan Python:

    Di sini kita akan menerapkan Regresi Polinomial menggunakan Python. Kita akan memahaminya dengan membandingkan model Regresi Polinomial dengan model Regresi Linier Sederhana. Jadi pertama-tama, mari kita pahami masalah yang akan kita buat modelnya.

    Deskripsi Masalah: Ada perusahaan Sumber Daya Manusia, yang akan mempekerjakan kandidat baru. Kandidat telah memberi tahu gaji sebelumnya 160K per tahun, dan HR harus memeriksa apakah dia mengatakan yang sebenarnya atau menggertak. Jadi untuk mengidentifikasi ini, mereka hanya memiliki kumpulan data dari perusahaan sebelumnya di mana gaji dari 10 posisi teratas disebutkan dengan level mereka. Dengan memeriksa kumpulan data yang tersedia, kami menemukan bahwa ada hubungan non-linier antara tingkat Posisi dan gaji . Sasaran kami adalah membuat model regresi detektor Bluffing , sehingga SDM dapat mempekerjakan kandidat yang jujur. Berikut adalah langkah-langkah untuk membangun model seperti itu.

     

    Langkah-langkah untuk Regresi Polinomial:

    Langkah-langkah utama yang terlibat dalam Regresi Polinomial diberikan di bawah ini:

    • Pra-pemrosesan data
    • Buat model Regresi Linier dan sesuaikan dengan kumpulan data
    • Buat model Regresi Polinomial dan sesuaikan dengan kumpulan data
    • Visualisasikan hasil untuk model Regresi Linier dan Regresi Polinomial.
    • Memprediksi keluaran.

    Catatan: Di sini, kami akan membangun model regresi Linear serta Regresi Polinomial untuk melihat hasil antara prediksi. Dan model regresi linier untuk referensi.

    Langkah Pra-pemrosesan Data:

    Langkah pra-pemrosesan data akan tetap sama seperti pada model regresi sebelumnya, kecuali untuk beberapa perubahan. Dalam model Regresi Polinomial, kami tidak akan menggunakan penskalaan fitur, dan juga kami tidak akan membagi kumpulan data kami menjadi set pelatihan dan pengujian. Ini memiliki dua alasan:

    • Dataset berisi sangat sedikit informasi yang tidak cocok untuk membaginya menjadi set pengujian dan pelatihan, jika tidak model kami tidak akan dapat menemukan korelasi antara gaji dan level.
    • Dalam model ini, kami menginginkan prediksi gaji yang sangat akurat, sehingga model tersebut harus memiliki informasi yang cukup.

    Kode untuk langkah pra-pemrosesan diberikan di bawah ini:

    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 ( ‘Position_Salaries.csv’ )
    7. #Extracting Variabel Independen dan dependen
    8. x = data_set.iloc [:,  1 : 2 ] .values
    9. y = data_set.iloc [:,  2 ] .values

    Penjelasan:

    • Pada baris kode di atas, kami telah mengimpor pustaka Python penting untuk mengimpor dataset dan mengoperasikannya.
    • Selanjutnya, kami telah mengimpor kumpulan data ‘ Position_Salaries.csv ‘, yang berisi tiga kolom (Posisi, Level, dan Gaji), tetapi kami hanya akan mempertimbangkan dua kolom (Gaji dan Level).
    • Setelah itu, kami mengekstrak variabel dependen (Y) dan variabel independen (X) dari dataset. Untuk variabel x, kita ambil parameternya sebagai [:, 1: 2], karena kita ingin 1 indeks (level), dan dimasukkan: 2 untuk dijadikan matriks.

    Membangun model regresi Linear:

    Sekarang, kita akan membangun dan menyesuaikan model regresi linier ke dataset. Dalam membangun regresi polinomial, kita akan mengambil model regresi linier sebagai referensi dan membandingkan keduanya. Kode diberikan di bawah ini:

    1. # Menyesuaikan Regresi Linier ke kumpulan data
    2. dari sklearn.linear_model  import LinearRegression
    3. lin_regs = LinearRegression ()
    4. fit (x, y)

    Pada kode di atas, kita telah menciptakan model Linear Sederhana menggunakan lin_regs keberatan dari LinearRegression kelas dan dilengkapi untuk variabel dataset (x dan y).

    Keluaran:

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

    Membangun model regresi polinomial:

    Sekarang kita akan membuat model Regresi Polinomial, tetapi akan sedikit berbeda dari model Linear Sederhana. Karena disini kita akan menggunakan class PolynomialFeatures dari library preprocessing . Kami menggunakan kelas ini untuk menambahkan beberapa fitur tambahan ke dataset kami.

    1. #Menyesuaikan regresi polinomial ke kumpulan data
    2. dari sklearn.preprocessing  import PolynomialFeatures
    3. poly_regs = PolynomialFeatures (derajat =  2 )
    4. x_poly = poly_regs.fit_transform (x)
    5. lin_reg_2 = LinearRegression ()
    6. fit (x_poly, y)

    Pada baris kode di atas, kami telah menggunakan poly_regs.fit_transform (x) , karena pertama-tama kami mengubah matriks fitur kami menjadi matriks fitur polinomial, dan kemudian menyesuaikannya dengan model regresi Polinomial. Nilai parameter (derajat = 2) tergantung pada pilihan kita. Kami dapat memilihnya sesuai dengan fitur Polinomial kami.

     

    Selanjutnya, kami telah menggunakan objek LinearRegression lain, yaitu lin_reg_2 , untuk menyesuaikan vektor x_poly kami ke model linier.

    Keluaran:

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

    Memvisualisasikan hasil untuk regresi linier:

    Sekarang kita akan memvisualisasikan hasil untuk model regresi linier seperti yang kita lakukan pada Regresi Linier Sederhana. Di bawah ini adalah kode untuk itu:

    1. #Melihat hasil  untuk model Regresi Linier
    2. scatter (x, y, color = “blue” )
    3. plot (x, lin_regs.predict (x), color = “red” )
    4. title ( “Model deteksi tebing (Regresi Linier)” )
    5. xlabel ( “Tingkat Posisi” )
    6. ylabel ( “Gaji” )
    7. show ()

    Keluaran:

    Pada gambar keluaran di atas, kita dapat dengan jelas melihat bahwa garis regresi sangat jauh dari kumpulan data. Prediksi berada dalam garis lurus merah, dan titik biru adalah nilai sebenarnya. Jika kita menganggap output ini untuk memprediksi nilai CEO, itu akan memberikan gaji sekitar. 600000 $, yang jauh dari nilai sebenarnya.

    Jadi kita membutuhkan model kurva agar sesuai dengan dataset selain garis lurus.

    Memvisualisasikan hasil untuk Regresi Polinomial

    Di sini kita akan memvisualisasikan hasil model regresi polinomial, kode yang sedikit berbeda dari model di atas.

    Kode untuk ini diberikan di bawah ini:

    1. #Melihat hasil  untuk Regresi Polinomial
    2. scatter (x, y, color = “blue” )
    3. plot (x, lin_reg_2.predict (poly_regs.fit_transform (x)), color = “red” )
    4. title ( “Model deteksi tebing (Regresi Polinomial)” )
    5. xlabel ( “Tingkat Posisi” )
    6. ylabel ( “Gaji” )
    7. show ()

    Pada kode di atas, kita telah menggunakan lin_reg_2.predict (poly_regs.fit_transform (x), bukan x_poly, karena kita ingin objek Linear regressor memprediksi matriks fitur polinomial.

    Untuk derajat = 3:

    Jika kita mengubah derajat = 3, maka kita akan memberikan plot yang lebih akurat.

     

    JADI seperti yang dapat kita lihat di sini pada gambar output di atas, perkiraan gaji untuk level 6,5 mendekati 170K $ -190k $, yang tampaknya calon karyawan mengatakan kebenaran tentang gajinya.

    Derajat = 4: Mari kita ubah lagi derajatnya menjadi 4, dan sekarang akan mendapatkan plot yang paling akurat. Karenanya kita bisa mendapatkan hasil yang lebih akurat dengan meningkatkan derajat Polinomial.

     

    Memprediksi hasil akhir dengan model Regresi Linier:

    Sekarang, kami akan memprediksi hasil akhir menggunakan model regresi linier untuk melihat apakah seorang karyawan mengatakan kebenaran atau gertakan. Jadi, untuk ini, kita akan menggunakan metode predict () dan akan meneruskan nilai 6,5. Di bawah ini adalah kode untuk itu:

    1. lin_pred = lin_regs.predict ([[ 5 ]])
    2. cetak (lin_pred)

    Keluaran:

    [330378.78787879]

    Memprediksi hasil akhir dengan model Regresi Polinomial:

    Sekarang, kita akan memprediksi keluaran akhir menggunakan model Regresi Polinomial untuk dibandingkan dengan model Linear. Di bawah ini adalah kode untuk itu:

    1. poly_pred = lin_reg_2.predict (poly_regs.fit_transform ([[ 5 ]]))
    2. cetak (poly_pred)

    Keluaran:

    [158862.45265153]

    Seperti yang dapat kita lihat, output yang diprediksi untuk Regresi Polinomial adalah [158862.45265153], yang lebih mendekati nilai riil sehingga, dapat dikatakan bahwa calon karyawan mengatakan benar.

     

     

     

    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.