Kaggle: Tempat para saintis data belajar dan bersaing

Sains data biasanya lebih merupakan seni daripada sains, walaupun namanya. Anda bermula dengan data kotor dan model ramalan statistik lama dan cuba melakukan yang lebih baik dengan pembelajaran mesin. Tidak ada yang memeriksa karya anda atau cuba memperbaikinya: Sekiranya model baru anda lebih sesuai daripada yang lama, anda akan menggunakannya dan beralih ke masalah seterusnya. Apabila data mula melayang dan model berhenti berfungsi, anda mengemas kini model dari set data baru.

Melakukan sains data di Kaggle agak berbeza. Kaggle adalah persekitaran dan komuniti pembelajaran mesin dalam talian. Ia mempunyai set data standard yang cuba dimodelkan oleh ratusan atau ribuan individu atau pasukan, dan terdapat papan pendahulu untuk setiap pertandingan. Banyak pertandingan menawarkan hadiah wang tunai dan mata status, dan orang dapat memperbaik model mereka sehingga pertandingan ditutup, untuk meningkatkan skor mereka dan menaiki tangga. Peratusan kecil sering membuat perbezaan antara pemenang dan naib juara.

Kaggle adalah sesuatu yang dapat dimainkan oleh para saintis data profesional di masa lapang mereka, dan para saintis data yang bercita-cita dapat digunakan untuk belajar bagaimana membina model pembelajaran mesin yang baik.

Apa itu Kaggle?

Dilihat secara lebih komprehensif, Kaggle adalah komuniti dalam talian untuk saintis data yang menawarkan pertandingan pembelajaran mesin, set data, buku nota, akses kepada pemecut latihan, dan pendidikan. Anthony Goldbloom (CEO) dan Ben Hamner (CTO) mengasaskan Kaggle pada tahun 2010, dan Google memperoleh syarikat itu pada tahun 2017.

Pertandingan Kaggle telah meningkatkan keadaan seni pembelajaran mesin di beberapa bidang. Salah satunya adalah memetakan bahan gelap; satu lagi adalah penyelidikan HIV / AIDS. Melihat pemenang pertandingan Kaggle, anda akan melihat banyak model XGBoost, beberapa model Random Forest, dan beberapa rangkaian neural yang mendalam.

Pertandingan Kaggle

Terdapat lima kategori pertandingan Kaggle: Bermula, Taman Permainan, Pilihan, Penyelidikan, dan Pengambilan.

Memulakan pertandingan adalah separa kekal, dan dimaksudkan untuk digunakan oleh pengguna baru yang baru saja memasuki bidang pembelajaran mesin. Mereka tidak menawarkan hadiah atau mata, tetapi mempunyai banyak tutorial. Memulakan pertandingan mempunyai papan pendahulu bergulir selama dua bulan.

Pertandingan taman permainan adalah satu langkah di atas Memulakan dalam kesukaran. Hadiah bermula dari kudo hingga hadiah wang tunai kecil.

Pertandingan yang diketengahkan adalah cabaran pembelajaran mesin skala penuh yang menimbulkan masalah ramalan yang sukar, umumnya dengan tujuan komersial. Pertandingan yang menarik menarik beberapa pakar dan pasukan yang paling hebat, dan menawarkan kumpulan hadiah yang setinggi satu juta dolar. Itu mungkin terdengar tidak menggalakkan, tetapi walaupun anda tidak memenangkan salah satu daripadanya, anda akan belajar daripada mencuba dan membaca penyelesaian orang lain, terutamanya penyelesaian yang berpangkat tinggi.

Pertandingan penyelidikan melibatkan masalah yang lebih eksperimental daripada masalah persaingan yang diketengahkan. Mereka biasanya tidak menawarkan hadiah atau mata kerana sifat percubaan mereka.

Dalam pertandingan Perekrutan, individu bersaing untuk membina model pembelajaran mesin untuk menghadapi cabaran korporat. Pada akhir pertandingan, peserta yang berminat boleh memuat naik resume mereka untuk dipertimbangkan oleh tuan rumah. Hadiah itu (berpotensi) wawancara kerja di syarikat atau organisasi yang menjadi tuan rumah pertandingan.

Terdapat beberapa format untuk pertandingan. Dalam pertandingan Kaggle standard, pengguna dapat mengakses set data yang lengkap pada awal pertandingan, memuat turun data, membuat model pada data secara tempatan atau di Notebook Kaggle (lihat di bawah), menghasilkan fail ramalan, kemudian memuat naik ramalan sebagai pengiriman di Kaggle. Sebilangan besar pertandingan di Kaggle mengikuti format ini, tetapi ada alternatifnya. Beberapa pertandingan dibahagikan kepada beberapa peringkat. Sebilangannya adalah pertandingan kod yang mesti dihantar dari dalam Notebook Kaggle.

Set data Kaggle

Kaggle menghoskan lebih dari 35 ribu set data. Ini terdapat dalam berbagai format penerbitan, termasuk nilai yang dipisahkan koma (CSV) untuk data tabel, JSON untuk data seperti pohon, pangkalan data SQLite, arkib ZIP dan 7z (sering digunakan untuk set data gambar), dan Set Data BigQuery, yang beraneka ragam Set data Sterabyte yang dihoskan di pelayan Google.

Terdapat beberapa cara untuk mencari set data Kaggle. Di laman utama Kaggle, anda akan menemui senarai kumpulan data dan set data "panas" yang dimuat naik oleh orang yang anda ikuti. Pada halaman kumpulan data Kaggle, anda akan menemui senarai set data (awalnya disusun oleh "paling panas" tetapi dengan pilihan pesanan lain) dan penapis carian. Anda juga boleh menggunakan tag dan halaman tag untuk mencari set data, misalnya //www.kaggle.com/tags/crime.

Anda boleh membuat set data awam dan peribadi di Kaggle dari mesin tempatan anda, URL, repositori GitHub, dan keluaran Notebook Kaggle. Anda boleh menetapkan set data yang dibuat dari URL atau repositori GitHub untuk dikemas kini secara berkala.

Pada masa ini, Kaggle mempunyai beberapa set data, cabaran, dan buku nota COVID-19. Sudah ada beberapa sumbangan masyarakat terhadap usaha memahami penyakit ini dan virus yang menyebabkannya.

Buku nota Kaggle

Kaggle menyokong tiga jenis buku nota: skrip, skrip RMarkdown, dan Jupyter Notebook. Skrip adalah fail yang melaksanakan segala sesuatu sebagai kod secara berurutan. Anda boleh menulis buku nota dalam R atau Python. R coders dan orang yang menghantar kod untuk pertandingan sering menggunakan skrip; Pengkod Python dan orang yang melakukan analisis data penerokaan cenderung lebih suka Jupyter Notebook.

Buku nota mana-mana jalur boleh memiliki pemecut GPU (Nvidia Tesla P100) atau TPU percuma dan mungkin menggunakan perkhidmatan Google Cloud Platform, tetapi ada kuota yang berlaku, misalnya 30 jam GPU dan 30 jam TPU per minggu. Pada dasarnya, jangan gunakan GPU atau TPU di buku nota melainkan anda perlu mempercepat latihan pembelajaran mendalam. Menggunakan perkhidmatan Google Cloud Platform boleh dikenakan caj ke akaun Google Cloud Platform jika anda melebihi peruntukan tahap percuma.

Anda boleh menambahkan set data Kaggle ke buku nota Kaggle pada bila-bila masa. Anda juga boleh menambahkan set data Pertandingan, tetapi hanya jika anda menerima peraturan pertandingan. Sekiranya anda mahu, anda boleh merantai buku nota dengan menambahkan output satu buku nota ke data buku nota lain.

Buku nota berjalan dalam kernel, yang pada dasarnya adalah bekas Docker. Anda boleh menyimpan versi buku nota semasa anda mengembangkannya.

Anda boleh mencari buku nota dengan pertanyaan kata kunci laman web dan penapis pada buku nota, atau dengan melayari halaman utama Kaggle. Anda juga boleh menggunakan senarai Notebook; seperti set data, susunan buku nota dalam senarai adalah secara "panas" secara lalai. Membaca buku nota awam adalah kaedah yang baik untuk belajar bagaimana orang melakukan sains data.

Anda boleh berkolaborasi dengan orang lain dalam buku nota dengan pelbagai cara, bergantung pada sama ada buku nota itu umum atau peribadi. Sekiranya bersifat umum, anda boleh memberikan hak penyuntingan kepada pengguna tertentu (semua orang dapat melihat). Sekiranya bersifat peribadi, anda boleh memberikan hak menonton atau menyunting.

API awam Kaggle

Selain membina dan menjalankan buku nota interaktif, anda boleh berinteraksi dengan Kaggle menggunakan baris perintah Kaggle dari mesin tempatan anda, yang memanggil API awam Kaggle. Anda boleh memasang Kaggle CLI menggunakan pemasang Python 3 pip, dan mengesahkan mesin anda dengan memuat turun token API dari laman Kaggle.

Kaggle CLI dan API dapat berinteraksi dengan pertandingan, set data, dan buku nota (kernel). API adalah sumber terbuka dan dihoskan di GitHub di //github.com/Kaggle/kaggle-api. Fail README di sana menyediakan dokumentasi lengkap untuk alat baris perintah.

Komuniti dan pendidikan Kaggle

Kaggle mengadakan forum perbincangan komuniti dan kursus mikro. Topik forum merangkumi Kaggle sendiri, permulaan, maklum balas, Soal Jawab, set data, dan kursus mikro. Kursus mikro merangkumi kemahiran yang berkaitan dengan saintis data dalam beberapa jam setiap satu: Python, pembelajaran mesin, visualisasi data, Pandas, kejuruteraan ciri, pembelajaran mendalam, SQL, analisis geospasial, dan sebagainya.

Secara keseluruhan, Kaggle sangat berguna untuk belajar sains data dan untuk bersaing dengan orang lain mengenai cabaran sains data. Ia juga sangat berguna sebagai repositori untuk set data awam standard. Namun, ini bukan pengganti untuk perkhidmatan sains data awan berbayar atau untuk melakukan analisis anda sendiri.