Apa itu Scikit-Learn (Sklearn)?

Penulis

Bryan Clark

Senior Technology Advocate

Apa yang dimaksud dengan scikit-learn (sklearn)?

Scikit-learn (sering ditulis sebagai scikit-learn atau sklearn) adalah sebuah library machine learning sumber terbuka yang banyak digunakan untuk Python.

Scikit-learn adalah salah satu pustaka machine learning (ML) yang paling banyak digunakan saat ini. Ditulis dalam Python, kumpulan alat ilmu data ini menyederhanakan ML kecerdasan buatan (AI) dan pemodelan statistik dengan antarmuka yang konsisten. Alat yang tercakup meliputi modul penting untuk klasifikasi, regresi, pengelompokan, dan reduksi dimensi, semuanya dibangun di atas pustaka NumPy, SciPy, dan Matplotlib. Menerapkan algoritma machine learning dari awal di Python bisa menjadi tugas yang padat komputasi dan rawan kesalahan, membutuhkan keahlian dalam aljabar linier, kalkulus, dan pengoptimalan. Scikit-learn dapat menjadi sumber daya yang berharga dalam mengurangi masalah ini.

Dengan memanfaatkan rangkaian neural networks terlatih dan algoritma machine learning yang kuat dari scikit-learn, para pendatang baru di bidang ini dapat dengan cepat dan efektif melakukan prapemrosesan kumpulan data untuk aplikasi pembelajaran diawasi, seperti regresi atau klasifikasi. Langkah ini dapat dilakukan tanpa memerlukan pemahaman mendalam tentang konsep matematika yang rumit seperti aljabar linier, kalkulus, atau kardinalitas. Selain itu, alat ini memfasilitasi proses pembelajaran tanpa pengawasan termasuk pengelompokan dan reduksi dimensi. Semua alat ini memungkinkan pengguna untuk berfokus pada insight tingkat yang lebih tinggi dan penciptaan nilai bisnis.

alur kerja scikit-learn
diagram alur kerja scikit-learn

Komponen scikit-learn

Numpy: Salah satu pustaka Python penting untuk komputasi ilmiah. Pustaka ini menyediakan objek array dan berbagai jenis kumpulan data lainnya, serta banyak fungsi untuk operasi yang efisien pada array saat menggunakan scikit-learn.

Scipy: Upaya berbasis komunitas yang bertujuan untuk membuat dan menyebarluaskan perangkat lunak sumber terbuka untuk tujuan ilmu data di Python. Misinya terutama berfokus pada pengembangan dan pemeliharaan paket Scipy yang tersedia secara gratis di bawah lisensi sumber terbuka (seperti lisensi Distribusi Perangkat Lunak Berkeley, yang juga dikenal sebagai BSD) dan dapat diakses secara terbuka melalui repositori GitHub di dalam organisasi Scipy.

Matplotlib: Pustaka pembuatan plot yang luas dan fleksibel untuk Python yang memberdayakan ilmuwan data untuk mengubah kumpulan data mereka menjadi grafik informatif, bagan, dan visualisasi lainnya. Dengan menyediakan seperangkat alat dan fitur yang lengkap, Matplotlib memfasilitasi analisis, eksplorasi, dan komunikasi data.

Cython: Memperluas kemampuan Python dengan mengaktifkan panggilan langsung ke fungsi C dan deklarasi eksplisit jenis kumpulan data C pada variabel dan atribut kelas. Kemampuan ini memfasilitasi pembuatan kode C yang sangat dioptimalkan dari kode sumber Cython untuk digunakan dalam sklearn.

Berita teknologi terbaru, didukung oleh insight dari pakar

Ikuti perkembangan tren industri yang paling penting—dan menarik—di bidang AI, otomatisasi, data, dan lainnya dengan buletin Think. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Prapemrosesan

Saat bekerja dengan scikit-learn, penting untuk memastikan bahwa data pelatihan disiapkan dan diformat dengan benar sebelum dimasukkan ke dalam model machine learning. Proses ini dikenal sebagai prapemrosesan dan scikit-learn menyediakan berbagai alat untuk membantu mengatur kumpulan data. Salah satu tugas umum selama tahap ini dalam prapemrosesan scikit-learn adalah normalisasi, di mana fitur numerik diskalakan agar memiliki besaran yang sama dengan menggunakan teknik seperti MinMax Scaler atau Standard Scaler. Jika kumpulan data perlu dikodekan dari variabel kategoris menjadi representasi numerik, One-Hot Encoding (OHE) atau LabelEncoder (LE) dapat membuatnya kompatibel dengan alur kerja model. OHE mengubah nilai data kategori menjadi vektor biner, menghasilkan kolom baru untuk setiap kategori di mana 1 atau 0 menunjukkan ada atau tidak adanya kategori. LE digunakan dalam machine learning di mana label numerik ditetapkan pada kategori atau kelas. Tidak seperti One-Hot Encoder, LabelEncoder tidak membuat kolom baru tetapi menggantikan nilai kategoris dengan nilai integer. Hal ini dapat menyebabkan masalah seperti asumsi ordinalitas dan kurang umum dibandingkan OHE dalam praktik machine learning modern karena keterbatasannya.

Prapemrosesan juga dapat melibatkan pemilihan fitur, di mana subset fitur scikit-learn yang relevan dapat dipilih untuk pelatihan model. Langkah ini dapat dilakukan dengan menghapus kolom yang tidak relevan atau dengan menggunakan berbagai teknik seperti recursive fitur elimination (RFE) atau mutual information (MI). Recursive fitur elimination adalah teknik yang digunakan untuk memilih fitur paling penting dalam kumpulan data dengan menghapus dan melatih ulang model secara berulang dengan kumpulan fitur yang dikurangi, yang pada akhirnya mengidentifikasi fitur berkinerja terbaik. Mutual information mengukur jumlah informasi yang dikandung oleh satu variabel acak tentang variabel acak lainnya sehingga dapat mengidentifikasi fitur mana yang sangat berkorelasi atau relevan dengan hasil target. Metode ini berguna untuk memilih variabel informatif. Selain itu, menangani missing values sangat penting dan scikit-learn menawarkan berbagai metode untuk mengimputasi kesenjangan ini, seperti imputasi rata-rata/median, pengisian maju/pengisian mundur, atau pendekatan lain yang lebih canggih.

Untuk melakukan semua tugas ini, scikit-learn berisi rangkaian lengkap alat prapemrosesan. Kelas StandardScaler dan MinMaxScaler adalah pilihan populer untuk menskalakan fitur numerik, sedangkan OneHotEncoder ideal untuk variabel kategoris. Untuk imputasi missing values, kelas SimpleImputer menyediakan berbagai pilihan metode. Dengan menggabungkan semua alat ini dengan cara yang kreatif, saluran prapemrosesan yang kuat dapat dibuat untuk memastikan machine learning, kinerja model, dan akurasi yang lebih besar.

Sebagai contoh, StandardScaler dapat digunakan untuk menstandarkan fitur numerik data, diikuti oleh OneHotEncoder untuk mengubah variabel kategoris menjadi representasi numerik. Untuk setiap kategori unik dalam variabel kategori, fitur biner baru (0 atau 1) dibuat. Jika pengamatan memiliki kategori “X,” maka untuk fitur yang sesuai dengan “X,” nilainya diatur menjadi 1, dan semua fitur lainnya diatur menjadi 0. Proses ini juga dapat disebut sebagai ekstraksi fitur. Dengan merangkai operasi ini bersama-sama, kumpulan data terpadu dapat disiapkan yang siap untuk pelatihan model machine learning.

Akademi AI

Menjadi pakar AI

Raih pengetahuan demi memprioritaskan investasi AI yang mendorong pertumbuhan bisnis. Mulai dengan Akademi AI gratis kami hari ini dan pimpin masa depan AI di organisasi Anda.

Metrik

Scikit-learn menyediakan serangkaian metrik bawaan untuk masalah klasifikasi dan regresi, sehingga membantu dalam proses pengambilan keputusan seputar pengoptimalan atau pemilihan model. Dalam konteks machine learning dan khususnya dengan scikit-learn, model regresi adalah jenis model prediktif yang memperkirakan hasil berkelanjutan berdasarkan fitur input. Tidak seperti model klasifikasi yang memprediksi label atau kategori, model regresi digunakan ketika Anda ingin melakukan memperkirakan kuantitas.

Untuk tugas klasifikasi, metrik mencakup akurasi, presisi, recall, F1-score, dan area di bawah kurva ROC (AUC-ROC).

  • Akurasi: Mengukur proporsi prediksi yang benar dari total prediksi.

  • Presisi: Berfokus pada prediksi positif, mengukur berapa banyak item yang dipilih yang relevan.

  • Recall: Juga dikenal sebagai sensitivitas, recall mengevaluasi kemampuan model untuk menemukan semua instance yang relevan.

  • Skor F1: Rata-rata harmonik dari presisi dan recall, memberikan keseimbangan antara kedua metrik ini.

  • AUC-ROC: Metrik untuk menilai kinerja model klasifikasi di mana outputnya berupa probabilitas. Ini secara visual mewakili pertukaran antara tingkat positif sejati (TPR) dan tingkat positif palsu (FPR).

Untuk tugas regresi, metrik evaluasi umum di scikit-learn termasuk kesalahan absolut rata-rata (MAE), akar rata-rata kuadrat kesalahan (RMSE), skor R^2, dan rata-rata kuadrat kesalahan (MSE).

  • MAE: Mengukur besarnya kesalahan rata-rata tanpa mempertimbangkan arahnya.

  • RMSE: Akar kuadrat dari rata-rata kuadrat kesalahan, memberikan bobot lebih banyak pada kesalahan yang lebih besar.

  • SkorR2 : Dikenal juga sebagai koefisien determinasi, skor ini menunjukkan proporsi varians dalam variabel dependen yang dapat diprediksi dari variabel independen.

  • MSE: Menghitung selisih kuadrat rata-rata antara nilai prediksi dan nilai aktual, yang memberikan ukuran seberapa dekat kecocokan dengan titik data.

Misalnya, dalam skenario penilaian risiko kredit yang menggunakan scikit-learn, area di bawah metrik kurva karakteristik operasi penerima (AUC-ROC) sangat penting dalam mengevaluasi kinerja model. Metrik ini mengukur kemampuan model untuk membedakan antara peminjam yang gagal membayar pinjaman dan mereka yang tidak gagal membayar, berdasarkan berbagai fitur termasuk pendapatan, rasio utang terhadap pendapatan, dan riwayat pekerjaan. Nilai AUC-ROC yang mendekati 1 menandakan model yang lebih baik dengan kemampuan diferensiasi yang lebih tinggi, sehingga membantu manajer bank dalam menentukan kesesuaian model untuk keputusan pemberian pinjaman atau mengidentifikasi area yang perlu ditingkatkan.

Metrik Scikit-learn memungkinkan evaluasi menyeluruh pada model machine learning di berbagai tugas dan skenario. Memahami metrik ini membantu dalam menafsirkan kinerja model, mengidentifikasi area perbaikan yang potensial dan pada akhirnya memilih atau mengoptimalkan model berkinerja terbaik untuk masalah tertentu.

Contoh penggunaan scikit-learn

Deteksi spam email: Algoritma klasifikasi Scikit-learn, termasuk regresi logistik atau mesin vektor dukungan (SVM), membantu menyaring email yang tidak diinginkan dengan mengelompokkannya sebagai spam atau tidak. Sklearn juga memiliki kemampuan untuk melakukan validasi silang menggunakan cross_val_score untuk mengevaluasi seberapa baik pengklasifikasi Naïve Bayes dapat membedakan antara email spam dan bukan spam. Sklearn menggunakan validasi silang untuk melatih dan menguji model di 5 pemisahan data yang berbeda. Ini memberikan metrik kinerja rata-rata yang memberi Anda gambaran lebih baik tentang bagaimana kinerja model pada email baru yang belum dilihat.

Memprediksi harga rumah: Scikit-learn dapat digunakan untuk teknik regresi seperti regresi linier untuk memperkirakan harga rumah berdasarkan fitur seperti lokasi, ukuran dan fasilitas, membantu pembeli membuat keputusan yang tepat. Scikit-learn terintegrasi dengan lancar dengan pustaka visualisasi data seperti Plotly dan Matplotlib. Hal ini memungkinkan visualisasi yang meningkatkan pemahaman dan interpretasi hasil regresi, sehingga memfasilitasi pengambilan keputusan lebih tepat yang lebih baik dalam contoh penggunaan seperti ini.

Deteksi Beech Leaf Disease: Algoritma Struktur Keputusan scikit-Learn dapat digunakan di hutan AS Timur untuk mendeteksi Beach Leaf Disease (BLD). Dengan menganalisis faktor-faktor seperti usia pohon, lokasi, dan kondisi daun, model dapat mengidentifikasi pohon beech yang berisiko terkena BLD. Dengan menggunakan machine learning dan berbasis data, pohon yang paling rentan dapat ditentukan dengan tepat dan strategi dapat diterapkan untuk melindunginya.

Deteksi anomali: Dalam keamanan siber, pengelompokan k-mean pada scikit-learn dapat digunakan untuk mendeteksi pola atau perilaku tidak biasa yang mungkin menandakan potensi pelanggaran keamanan. Dengan mengelompokkan titik data serupa bersama-sama, k-mean membantu mengidentifikasi outlier—titik data yang secara signifikan menyimpang dari klaster yang dibuat—sebagai anomali potensial. Anomali ini mungkin mengindikasikan upaya akses tidak sah, aktivitas malware, atau tindakan berbahaya lainnya. Deteksi tepat waktu anomali tersebut menggunakan sklearn akan memungkinkan tim keamanan siber untuk menyelidiki dan mengurangi ancaman dengan cepat, sehingga meningkatkan postur keamanan keseluruhan organisasi.

Penilaian risiko kredit: Institusi keuangan menggunakan algoritma Random Forests dari scikit-Learn untuk mengidentifikasi berbagai fitur yang paling penting, seperti riwayat kredit, pendapatan, dan rasio utang terhadap pendapatan, ketika menilai risiko kredit calon peminjam. Dengan memeringkat tingkat kepentingan variabel dengan Random Forests, pemberi pinjaman dapat membuat keputusan yang lebih tepat mengenai siapa yang akan disetujui untuk mendapatkan pinjaman dan berapa tingkat suku bunganya.

Riset genomik: Sklearn dapat menerapkan teknik termasuk analisis komponen utama (PCA) untuk mengurangi kompleksitas data genetik, yang lebih memudahkan identifikasi pola yang signifikan tanpa kewalahan akibat ketidakakuratan.

Analisis teks: Ketika berurusan dengan dokumen atau kumpulan data yang besar, reduksi dimensi membantu meringkas dan memvisualisasikan tema atau topik utama secara efisien, yang sangat penting untuk bidang-bidang seperti analisis sentimen atau sistem rekomendasi konten.

Integrasi LLM dalam scikit-learn

Scikit-learn terutama berfokus pada algoritma machine learning tetapi dapat diperluas untuk menggabungkan model bahasa besar (LLM). Meskipun awalnya berpusat pada model tradisional seperti struktur keputusan, mesin vektor dukungan dan algoritma klaster, ekosistem fleksibel scikit-learn memungkinkan integrasi dengan LLM melalui konfigurasi antarmuka pemrograman aplikasi (API). Ini termasuk memanfaatkan model seperti seri GPT dari OpenAI dan opsi kontribusi komunitas lainnya seperti model Anthropic atau AzureChatOpenAI.

Proses integrasi disederhanakan serupa dengan proyek seperti Auto-GPT, sehingga dapat diakses oleh pengembang yang akrab dengan alur kerja scikit-learn. Scikit-learn menyediakan sumber daya di situs GitHub , termasuk tutorial yang memandu pengguna dalam menjelajahi LLM sumber terbuka. Pengaturan ini memfasilitasi penerapan model LLM yang dipilih melalui kredensial API, sehingga scikit-learn bisa mendapatkan manfaat dari kemampuan pemrosesan bahasa alami yang ditingkatkan.

Persyaratan

Pemahaman kerja tentang lingkungan Python, NumPy, SciPy, Pandas, dan Matplotlib sangat penting untuk memanfaatkan efisiensi scikit-learn, karena mereka membentuk dasar prapemrosesan data, rekayasa fitur, dan visualisasi dalam pipeline machine learning. Library ini menyediakan dasar untuk prapemrosesan data, rekayasa fitur, dan visualisasi dalam pipeline machine learning. Pemahaman akan kemampuan mereka memungkinkan penanganan kumpulan data yang efisien, pemilihan fitur yang relevan, dan visualisasi hasil - yang pada akhirnya mengarah pada peningkatan kinerja model.

Lingkungan Python

 

Instalasi Python dan dependensinya yang disimpan mandiri, memungkinkan Anda untuk mengisolasi kebutuhan proyek Anda dan memastikan konsistensi di berbagai proyek. Itu dapat dibuat menggunakan alat seperti conda atau virtualenv.

Numpy

 

Library yang menyediakan dukungan untuk array dan matriks multi-dimensi yang besar, serta berbagai fungsi matematika dengan kinerja tinggi untuk memanipulasinya. Ini adalah paket dasar untuk komputasi ilmiah dengan Python.

Scipy

 

Library yang dibangun memanfaatkan NumPy, menyediakan fungsi-fungsi untuk aplikasi ilmiah dan teknik, seperti pemrosesan sinyal, aljabar linier, pengoptimalan, dan statistik. Ini banyak digunakan di bidang-bidang seperti fisika, teknik, dan analisis data.

Pandas

 

Library yang menyediakan struktur data dan fungsi untuk menangani data terstruktur secara efisien, termasuk data tabular seperti spreadsheet dan tabel SQL. Ini sangat berguna untuk pembersihan data, pemfilteran, pengelompokan, dan penggabungan data.

Matplotlib

 

Library perencanaan yang menyediakan beragam alat visualisasi, memungkinkan Anda membuat plot, bagan, dan grafik 2D dan 3D berkualitas tinggi. Ini sering digunakan bersama dengan NumPy dan Pandas untuk memvisualisasikan data ilmiah.

Perkembangan Masa Depan

Ketika scikit-learn terus berkembang, upaya sedang dilakukan untuk memperluas kemampuannya dengan teknik ensambel canggih dan pendekatan pembelajaran meta. Dengan memanfaatkan kekuatan neural networks selain algoritma tradisional, scikit-learn bertujuan untuk menyediakan kumpulan alat komprehensif yang melayani rangkaian tantangan machine learning yang semakin luas. Perkembangan ini menjanjikan untuk membuatnya lebih mudah diakses oleh praktisi yang ingin memanfaatkan teknologi mutakhir dalam pekerjaan mereka.

Solusi terkait
IBM® watsonx.ai

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Jelajahi watsonx.ai
Solusi kecerdasan buatan (AI)

Manfaatkan AI di bisnis Anda dengan perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan kecerdasan buatan (AI)

Layanan IBM Consulting AI membantu merancang ulang cara kerja bisnis dengan AI untuk transformasi.

Jelajahi layanan AI
Ambil langkah selanjutnya

Dengan menggunakan AI, IBM Concert mengungkap insight penting tentang operasi Anda dan memberikan rekomendasi spesifik aplikasi untuk perbaikan. Temukan cara Concert dapat memajukan bisnis Anda.

Jelajahi Concert Jelajahi solusi otomatisasi proses bisnis