Persiapan Data untuk Pembelajaran Mesin: Panduan Langkah demi Langkah
Diterbitkan: 2023-07-07Bertahun-tahun yang lalu, ketika Spotify mengerjakan mesin rekomendasinya, ia menghadapi tantangan terkait kualitas data yang digunakan untuk melatih algoritme pembelajaran mesin (ML). Seandainya mereka tidak memutuskan untuk kembali ke tahap persiapan data dan melakukan upaya tambahan untuk membersihkan, menormalkan, dan mengubah data mereka, kemungkinan pengalaman mendengarkan kami tidak akan semenyenangkan itu.
Menyiapkan data untuk ML secara menyeluruh memungkinkan platform streaming untuk melatih mesin ML yang kuat yang secara akurat memprediksi preferensi mendengarkan pengguna dan menawarkan rekomendasi musik yang sangat dipersonalisasi. Spotify menghindari kesalahan krusial yang dilakukan perusahaan saat menyiapkan data untuk ML — tidak menginvestasikan cukup upaya atau melewatkan tahapan apa pun.
Banyak bisnis berasumsi bahwa memasukkan data dalam jumlah besar ke dalam mesin ML sudah cukup untuk menghasilkan prediksi yang akurat. Sebenarnya hal itu dapat mengakibatkan sejumlah masalah, misalnya bias algoritmik atau skalabilitas terbatas.
Keberhasilan ML sangat bergantung pada data. Dan yang menyedihkan adalah: semua kumpulan data cacat. Itu sebabnya persiapan data sangat penting untuk ML. Ini membantu mengesampingkan ketidakakuratan dan bias yang melekat pada data mentah, sehingga model ML yang dihasilkan menghasilkan prediksi yang lebih andal dan akurat.
Dalam postingan blog ini, kami menyoroti pentingnya menyiapkan data untuk ML dan membagikan pendekatan kami untuk mengumpulkan, membersihkan, dan mengubah data. Jadi, jika Anda baru mengenal ML dan ingin memastikan inisiatif Anda sukses, teruslah membaca.
Cara Menyiapkan Data untuk Pembelajaran Mesin
Langkah pertama untuk berhasil mengadopsi ML adalah merumuskan masalah bisnis Anda dengan jelas. Tidak hanya memastikan bahwa model ML yang Anda buat selaras dengan kebutuhan bisnis Anda, tetapi juga memungkinkan Anda menghemat waktu dan uang untuk menyiapkan data yang mungkin tidak relevan.
Selain itu, pernyataan masalah yang jelas membuat model ML dapat dijelaskan (artinya pengguna memahami cara membuat keputusan). Ini sangat penting di sektor seperti kesehatan dan keuangan, di mana ML berdampak besar pada kehidupan orang.
Dengan masalah bisnis yang diselesaikan, saatnya untuk memulai pekerjaan data.
Secara keseluruhan, proses penyiapan data untuk ML dapat dipecah menjadi tahapan-tahapan berikut.
- Pengumpulan data
- Pembersihan data
- Transformasi data
- Pemisahan data
Mari kita lihat lebih dekat masing-masing.
Pengumpulan data
Persiapan data untuk ML dimulai dengan pengumpulan data. Selama tahap pengumpulan data, Anda mengumpulkan data untuk melatih dan menyesuaikan model ML mendatang. Saat melakukannya, perhatikan jenis, volume, dan kualitas data: faktor-faktor ini akan menentukan strategi persiapan data terbaik.
Pembelajaran mesin menggunakan tiga jenis data: terstruktur, tidak terstruktur, dan semi terstruktur.
- Data terstruktur diatur dengan cara tertentu, biasanya dalam format tabel atau spreadsheet. Contoh data terstruktur mencakup rentang informasi yang dikumpulkan dari database atau sistem transaksional.
- Data tidak terstruktur mencakup gambar, video, rekaman audio, dan informasi lain yang tidak mengikuti model data konvensional.
- Data semi-terstruktur tidak mengikuti format model data tabular. Tetap saja, itu tidak sepenuhnya berantakan, karena mengandung beberapa elemen struktural, seperti tag atau metadata yang membuatnya lebih mudah untuk ditafsirkan. Contohnya termasuk data dalam format XML atau JSON.
Struktur data menentukan pendekatan optimal untuk menyiapkannya untuk ML. Data terstruktur, misalnya, dapat dengan mudah diatur ke dalam tabel dan dibersihkan melalui deduplikasi, mengisi nilai yang hilang, atau menstandarkan format data. Sebaliknya, mengekstraksi fitur yang relevan dari data tidak terstruktur memerlukan teknik yang lebih kompleks, seperti pemrosesan bahasa alami atau visi komputer.
Pendekatan optimal untuk persiapan data untuk ML juga dipengaruhi oleh volume data pelatihan. Kumpulan data yang besar mungkin memerlukan pengambilan sampel, yang melibatkan pemilihan subkumpulan data untuk melatih model karena keterbatasan komputasi. Yang lebih kecil, pada gilirannya, mungkin memerlukan ilmuwan data untuk mengambil langkah tambahan untuk menghasilkan lebih banyak data berdasarkan titik data yang ada (lebih lanjut di bawah.)
Kualitas data yang dikumpulkan juga penting. Menggunakan data yang tidak akurat atau bias dapat memengaruhi keluaran ML, yang dapat menimbulkan konsekuensi yang signifikan, terutama di bidang seperti keuangan, perawatan kesehatan, dan peradilan pidana. Ada teknik yang memungkinkan data dikoreksi untuk kesalahan dan bias. Namun, mereka mungkin tidak bekerja pada kumpulan data yang secara inheren miring. Setelah Anda mengetahui apa yang membuat data “baik”, Anda harus memutuskan bagaimana cara mengumpulkannya dan di mana menemukannya. Ada beberapa strategi untuk itu.
- Mengumpulkan data dari sumber internal: Jika Anda memiliki informasi yang disimpan di gudang data perusahaan, Anda dapat menggunakannya untuk melatih algoritme ML. Data ini dapat mencakup transaksi penjualan, interaksi pelanggan, data dari platform media sosial, dan data dari sumber lain.
- Mengumpulkan data dari sumber eksternal: Anda dapat beralih ke sumber data yang tersedia untuk umum, seperti portal data pemerintah, repositori data akademik, dan komunitas berbagi data, seperti Kaggle, UCI Machine Learning Repository, atau Google Dataset Search.
- Pengikisan web: Teknik ini melibatkan penggalian data dari situs web menggunakan alat otomatis. Pendekatan ini mungkin berguna untuk mengumpulkan data dari sumber yang tidak dapat diakses melalui cara lain, seperti ulasan produk, artikel berita, dan media sosial.
- Survei: Pendekatan ini dapat digunakan untuk mengumpulkan poin data spesifik dari audiens target tertentu. Ini sangat berguna untuk mengumpulkan informasi tentang preferensi atau perilaku pengguna.
Namun terkadang, strategi ini tidak menghasilkan cukup data. Saat itu terjadi, Anda dapat mengkompensasi kekurangan poin data dengan teknik ini.
- Augmentasi data: Ini memungkinkan Anda menghasilkan lebih banyak data dari sampel yang ada dengan mengubahnya dalam berbagai cara, misalnya, memutar, menerjemahkan, atau menskalakan.
- Pembelajaran aktif: Ini memungkinkan Anda memilih sampel data paling informatif untuk pelabelan oleh pakar manusia.
- Transfer pembelajaran: Ini melibatkan penggunaan algoritme ML terlatih yang diterapkan untuk menyelesaikan tugas terkait sebagai titik awal untuk melatih model ML baru, diikuti dengan menyempurnakan model baru pada data baru.
- Berbagi data kolaboratif: Ini melibatkan kerja dengan peneliti dan organisasi lain untuk mengumpulkan dan berbagi data untuk tujuan bersama.
Pembersihan Data
Langkah selanjutnya yang harus diambil untuk menyiapkan data untuk ML adalah membersihkannya. Membersihkan data melibatkan menemukan dan memperbaiki kesalahan, ketidakkonsistenan, dan nilai yang hilang. Ada beberapa pendekatan untuk pembersihan data.
Menangani Data yang Hilang
Nilai yang hilang adalah masalah umum di ML. Itu dapat ditangani dengan imputasi (pikirkan: mengisi nilai yang hilang dengan data yang diprediksi atau diperkirakan), interpolasi (mengambil nilai yang hilang dari titik data di sekitarnya), atau penghapusan (cukup menghapus baris atau kolom dengan nilai yang hilang dari kumpulan data.)
Menangani Outlier
Outlier adalah titik data yang secara signifikan berbeda dari kumpulan data lainnya. Outlier dapat terjadi karena kesalahan pengukuran, kesalahan entri data, atau hanya karena mewakili pengamatan yang tidak biasa atau ekstrim. Dalam kumpulan data gaji karyawan, misalnya, outlier mungkin adalah karyawan yang berpenghasilan jauh lebih banyak atau lebih sedikit daripada yang lain. Outlier dapat ditangani dengan menghapus, mengubahnya untuk mengurangi dampaknya, winsorizing (pikirkan: mengganti nilai ekstrem dengan nilai terdekat yang berada dalam rentang distribusi normal), atau memperlakukannya sebagai kelas data yang terpisah.
Menghapus Duplikat
Langkah lain dalam proses menyiapkan data untuk ML adalah menghapus duplikat. Duplikat tidak hanya mendistorsi prediksi ML, tetapi juga membuang ruang penyimpanan dan meningkatkan waktu pemrosesan, terutama dalam kumpulan data besar. Untuk menghapus duplikat, ilmuwan data menggunakan berbagai teknik identifikasi duplikat (mis. pencocokan tepat, pencocokan fuzzy, hashing, atau keterkaitan rekaman). Setelah diidentifikasi, mereka dapat dihapus atau digabungkan. Namun, dalam kumpulan data yang tidak seimbang, duplikat sebenarnya dapat diterima untuk mencapai distribusi normal.
Menangani Data yang Tidak Relevan
Data yang tidak relevan mengacu pada data yang tidak berguna atau tidak dapat diterapkan untuk memecahkan masalah. Menangani data yang tidak relevan dapat membantu mengurangi kebisingan dan meningkatkan akurasi prediksi. Untuk mengidentifikasi data yang tidak relevan, tim data dapat menggunakan teknik seperti analisis komponen utama, analisis korelasi, atau hanya mengandalkan pengetahuan domain mereka. Setelah diidentifikasi, titik data tersebut dihapus dari kumpulan data yang relevan.
Menangani Data yang Salah
Persiapan data untuk pembelajaran mesin juga harus mencakup penanganan data yang salah dan keliru. Teknik umum untuk menangani data tersebut termasuk transformasi data (mengubah data, sehingga memenuhi kriteria yang ditetapkan) atau menghapus poin data yang salah sama sekali.
Menangani Data yang Tidak Seimbang
Dataset yang tidak seimbang adalah kumpulan data di mana jumlah titik data di satu kelas secara signifikan lebih rendah daripada jumlah titik data di kelas lain. Hal ini dapat mengakibatkan model bias yang mengutamakan kelas mayoritas, sementara mengabaikan kelas minoritas. Untuk mengatasi masalah ini, tim data dapat menggunakan teknik seperti resampling (baik oversampling kelas minoritas atau undersampling kelas mayoritas untuk menyeimbangkan distribusi data), pembuatan data sintetik (menghasilkan titik data tambahan untuk kelas minoritas secara sintetis), biaya -pembelajaran sensitif (menetapkan bobot yang lebih tinggi ke kelas minoritas selama pelatihan), dan pembelajaran ansambel (menggabungkan beberapa model yang dilatih pada subset data yang berbeda menggunakan algoritme yang berbeda).
Aktivitas ini membantu memastikan bahwa data pelatihan akurat, lengkap, dan konsisten. Meski merupakan pencapaian besar, belum cukup untuk menghasilkan model ML yang andal. Jadi, langkah selanjutnya dalam mempersiapkan data untuk ML melibatkan memastikan titik data dalam kumpulan data pelatihan sesuai dengan aturan dan standar tertentu. Dan tahapan dalam proses pengelolaan data tersebut disebut sebagai transformasi data.
Transformasi Data
Selama tahap transformasi data, Anda mengonversi data mentah menjadi format yang sesuai untuk algoritme ML. Itu, pada gilirannya, memastikan kinerja dan akurasi algoritmik yang lebih tinggi.
Pakar kami dalam menyiapkan data untuk ML menyebutkan teknik transformasi data umum berikut.
Penskalaan
Dalam kumpulan data, fitur yang berbeda dapat menggunakan satuan pengukuran yang berbeda. Misalnya, kumpulan data real estat dapat mencakup informasi tentang jumlah kamar di setiap properti (berkisar dari satu hingga sepuluh) dan harganya (berkisar dari $50.000 hingga $1.000.000). Tanpa penskalaan, menyeimbangkan pentingnya kedua fitur itu menantang. Algoritme mungkin terlalu mementingkan fitur dengan nilai yang lebih besar — dalam hal ini, harga — dan tidak cukup untuk fitur dengan nilai yang tampaknya lebih kecil. Penskalaan membantu mengatasi masalah ini dengan mengubah semua titik data sedemikian rupa sehingga sesuai dengan rentang yang ditentukan, biasanya antara 0 dan 1. Sekarang Anda dapat membandingkan variabel yang berbeda secara setara.
Normalisasi
Teknik lain yang digunakan dalam persiapan data untuk ML adalah normalisasi. Ini mirip dengan penskalaan. Namun, saat penskalaan mengubah rentang kumpulan data, normalisasi mengubah distribusinya.
Pengkodean
Data kategorikal memiliki jumlah nilai yang terbatas—misalnya, warna, model mobil, atau spesies hewan. Karena algoritme ML biasanya bekerja dengan data numerik, data kategorikal harus dikodekan agar dapat digunakan sebagai input. Pengkodean, oleh karena itu, adalah singkatan dari mengubah data kategorikal menjadi format numerik. Ada beberapa teknik pengkodean yang dapat dipilih, termasuk pengkodean one-hot, pengkodean ordinal, dan pengkodean label.
Diskritisasi
Diskritisasi adalah pendekatan untuk menyiapkan data untuk ML yang memungkinkan transformasi variabel kontinu, seperti waktu, suhu, atau berat, menjadi variabel diskrit. Pertimbangkan kumpulan data yang berisi informasi tentang tinggi badan seseorang. Ketinggian setiap orang dapat diukur sebagai variabel kontinu dalam kaki atau sentimeter. Namun, untuk algoritme ML tertentu, data ini mungkin perlu dipisahkan ke dalam kategori, seperti "pendek", "sedang", dan "tinggi". Inilah tepatnya yang dilakukan diskritisasi. Ini membantu menyederhanakan dataset pelatihan dan mengurangi kerumitan masalah. Pendekatan umum untuk diskritisasi mencakup diskritisasi berbasis pengelompokan dan berbasis pohon keputusan.
Pengurangan Dimensi
Pengurangan dimensi berarti membatasi jumlah fitur atau variabel dalam kumpulan data dan hanya menyimpan informasi yang relevan untuk memecahkan masalah. Pertimbangkan, misalnya, kumpulan data yang berisi informasi tentang riwayat pembelian pelanggan. Ini menampilkan tanggal pembelian, barang yang dibeli, harga barang, dan lokasi pembelian dilakukan. Mengurangi dimensi kumpulan data ini, kami menghilangkan semua kecuali fitur yang paling penting, misalnya, barang yang dibeli dan harganya. Reduksi dimensi dapat dilakukan dengan berbagai teknik, beberapa di antaranya adalah analisis komponen utama, analisis diskriminan linier, dan penyisipan tetangga stokastik terdistribusi-t.
Transformasi Log
Cara lain menyiapkan data untuk ML, transformasi log mengacu pada penerapan fungsi logaritmik ke nilai variabel dalam kumpulan data. Ini sering digunakan ketika data pelatihan sangat miring atau memiliki rentang nilai yang besar. Menerapkan fungsi logaritmik dapat membantu membuat distribusi data menjadi lebih simetris.
Berbicara tentang transformasi data, kami juga harus menyebutkan rekayasa fitur. Meskipun merupakan bentuk transformasi data, rekayasa fitur lebih dari sekadar teknik atau langkah dalam proses menyiapkan data untuk ML. Itu berarti memilih, mengubah, dan membuat fitur dalam kumpulan data. Rekayasa fitur melibatkan kombinasi teknik statistik, matematika, dan komputasi, termasuk penggunaan model ML, untuk membuat fitur yang menangkap informasi paling relevan dalam data.
Ini biasanya merupakan proses berulang yang memerlukan pengujian dan evaluasi berbagai teknik dan kombinasi fitur untuk menghasilkan pendekatan terbaik untuk memecahkan masalah.
Pemisahan Data
Langkah selanjutnya dalam proses menyiapkan data untuk ML melibatkan pembagian semua data yang dikumpulkan menjadi subset — sebuah proses yang dikenal sebagai pemisahan data. Biasanya, data dipecah menjadi dataset pelatihan, validasi, dan pengujian.
- Dataset pelatihan digunakan untuk benar-benar mengajarkan model ML untuk mengenali pola dan hubungan antara input dan variabel target. Kumpulan data ini biasanya yang terbesar.
- Dataset validasi adalah subset data yang digunakan untuk mengevaluasi kinerja model selama pelatihan. Ini membantu menyempurnakan model dengan menyesuaikan hyperparameter (pikirkan: parameter proses pelatihan yang diatur secara manual sebelum pelatihan, seperti kecepatan pembelajaran, kekuatan regularisasi, atau jumlah lapisan tersembunyi). Dataset validasi juga membantu mencegah overfitting ke data pelatihan.
- Dataset pengujian adalah subset data yang digunakan untuk mengevaluasi kinerja model yang dilatih. Tujuannya adalah untuk menilai keakuratan model pada data baru yang tidak terlihat. Dataset pengujian hanya digunakan sekali — setelah model dilatih dan disesuaikan dengan dataset pelatihan dan validasi.
Dengan memisahkan data, kami dapat menilai seberapa baik performa model ML pada data yang belum pernah dilihat sebelumnya. Tanpa pemisahan, kemungkinan model akan berperforma buruk pada data baru. Hal ini dapat terjadi karena model mungkin baru saja mengingat poin data alih-alih mempelajari pola dan menggeneralisasikannya ke data baru.
Ada beberapa pendekatan untuk pemisahan data, dan pilihan yang optimal bergantung pada masalah yang dipecahkan dan properti kumpulan data. Pakar kami dalam menyiapkan data untuk ML mengatakan bahwa seringkali diperlukan beberapa eksperimen dari tim data untuk menentukan strategi pemisahan yang paling efektif. Berikut ini adalah strategi yang paling umum.
- Sampling acak: Dengan strategi ini, data dibagi secara acak. Pendekatan ini sering diterapkan pada kumpulan data besar yang mewakili populasi yang dimodelkan. Alternatifnya, ini digunakan ketika tidak ada hubungan yang diketahui dalam kumpulan data, yang memerlukan pendekatan yang lebih khusus.
- Stratified sampling: Dalam strategi ini, data dibagi menjadi subset berdasarkan label kelas atau karakteristik lainnya, diikuti dengan pengambilan sampel subset ini secara acak. Strategi ini diterapkan pada kumpulan data yang tidak seimbang dengan jumlah nilai dalam satu kelas secara signifikan melebihi jumlah nilai di kelas lainnya. Dalam hal ini, pengambilan sampel bertingkat membantu memastikan bahwa dataset pelatihan dan pengujian memiliki distribusi nilai yang serupa dari setiap kelas.
- Sampling berbasis waktu: Strategi ini digunakan di mana data yang dikumpulkan hingga titik waktu tertentu dijadikan dataset pelatihan, sedangkan data yang dikumpulkan setelah titik setel dibentuk menjadi dataset pengujian. Pendekatan ini digunakan ketika data telah dikumpulkan dalam jangka waktu yang lama—misalnya, dalam kumpulan data keuangan atau medis, karena memungkinkan untuk memastikan bahwa model dapat membuat prediksi yang akurat tentang data di masa mendatang.
- Validasi silang: Dengan strategi ini, data dibagi menjadi beberapa himpunan bagian, atau lipatan. Beberapa fold digunakan untuk melatih model, sementara sisanya digunakan untuk evaluasi performa. Proses ini diulang beberapa kali, dengan setiap lipatan berfungsi sebagai data pengujian setidaknya satu kali. Ada beberapa teknik validasi silang—misalnya, validasi silang k-fold dan validasi silang leave-one-out. Validasi silang biasanya memberikan estimasi kinerja model yang lebih akurat daripada evaluasi pada satu set data pengujian.
Pada Catatan Akhir
Menyiapkan data untuk ML dengan benar sangat penting untuk mengembangkan solusi machine learning yang akurat dan andal. Di ITRex, kami memahami tantangan persiapan data dan pentingnya memiliki kumpulan data berkualitas untuk proses ML yang sukses.
Jika Anda ingin memaksimalkan potensi data Anda melalui ML, hubungi tim ITRex. Pakar kami akan memberikan bantuan dalam mengumpulkan, membersihkan, dan mengubah data Anda.
Artikel ini awalnya diterbitkan di situs web itrex.