Kaggle: Къде учените по данни учат и се състезават

Науката за данните обикновено е по-скоро изкуство, отколкото наука, въпреки името. Започвате с мръсни данни и стар статистически модел за прогнозиране и се опитвате да се справите по-добре с машинно обучение. Никой не проверява работата ви и не се опитва да я подобри: Ако вашият нов модел се вписва по-добре от стария, вие го приемате и преминавате към следващия проблем. Когато данните започнат да се отклоняват и моделът спре да работи, вие актуализирате модела от новия набор от данни.

Правенето на наука за данни в Kaggle е съвсем различно. Kaggle е онлайн среда и общност за машинно обучение. Той има стандартни набори от данни, които стотици или хиляди индивиди или екипи се опитват да моделират и има класация за всяко състезание. Много състезания предлагат парични награди и статусни точки и хората могат да усъвършенстват своите модели до приключване на състезанието, за да подобрят резултатите си и да се изкачат по стълбата. Малките проценти често правят разлика между победителите и подгласниците.

Kaggle е нещо, с което професионалните изследователи на данни могат да играят в свободното си време, а амбициозните изследователи на данни могат да използват, за да се научат как да изграждат добри модели за машинно обучение.

Какво е Kaggle?

Погледнато по-изчерпателно, Kaggle е онлайн общност за учени по данни, която предлага състезания по машинно обучение, набори от данни, тетрадки, достъп до ускорители на обучение и образование. Антъни Голдблум (главен изпълнителен директор) и Бен Хамнър (технически директор) основават Kaggle през 2010 г., а Google придобива компанията през 2017 г.

Състезанията на Kaggle подобриха състоянието на изкуството на машинното обучение в няколко области. Единият е картографиране на тъмната материя; друго е изследването на ХИВ / СПИН. Разглеждайки победителите в състезанията Kaggle, ще видите много модели XGBoost, някои модели Random Forest и няколко дълбоки невронни мрежи.

Kaggle състезания

Има пет категории на състезанието Kaggle: Първи стъпки, Детска площадка, Представено, Изследване и Набиране.

Първи стъпки състезанията са полупостоянни и са предназначени да бъдат използвани от нови потребители, които само стъпват на вратата в областта на машинното обучение. Те не предлагат награди или точки, но имат достатъчно уроци. Първи стъпки състезанията имат двумесечни класации.

Състезанията на детски площадки са една стъпка над Първи стъпки в трудност. Наградите варират от слава до малки парични награди.

Препоръчаните състезания са предизвикателства за пълномащабно машинно обучение, които създават трудни проблеми с прогнозирането, обикновено с търговска цел. Представените състезания привличат някои от най-страховитите експерти и екипи и предлагат наградни фондове, които могат да достигнат до един милион долара. Това може да звучи обезсърчително, но дори и да не спечелите нито едно от тях, ще се поучите от опитите и от четенето на решения на други хора, особено високо класираните решения.

Изследователските състезания включват проблеми, които са по-експериментални от включените проблеми. Те обикновено не предлагат награди или точки поради техния експериментален характер.

В състезанията за набиране на персонал хората се състезават за изграждане на модели за машинно обучение за предизвикателства, подготвени от корпорацията. В края на състезанието заинтересованите участници могат да качат автобиографията си за разглеждане от домакина. Наградата е (потенциално) интервю за работа във фирма или организация, която е домакин на състезанието.

Има няколко формата за състезания. В стандартно състезание Kaggle потребителите могат да получат достъп до пълните набори от данни в началото на състезанието, да изтеглят данните, да изграждат модели на данните локално или в Kaggle Notebooks (виж по-долу), да генерират файл за прогнози, след това да качват прогнозите като подаване на Kaggle. Повечето състезания на Kaggle следват този формат, но има алтернативи. Няколко състезания са разделени на етапи. Някои са състезания по код, които трябва да се подават от Kaggle Notebook.

Набори от данни Kaggle

Kaggle хоства над 35 хиляди набора от данни. Те са в различни формати на публикации, включително стойности, разделени със запетая (CSV) за таблични данни, JSON за дървовидни данни, бази данни SQLite, ZIP и 7z архиви (често използвани за набори от данни с изображения) и BigQuery набори от данни, които са много -терабайтови SQL набори от данни, хоствани на сървърите на Google.

Има няколко начина за намиране на набори от данни на Kaggle. На началната страница на Kaggle ще намерите списък с „горещи“ набори от данни и набори от данни, качени от хора, които следвате. На страницата с набори от данни Kaggle ще намерите списък с набори от данни (първоначално подреден от „най-горещите“, но с други опции за поръчка) и филтър за търсене. Можете също да използвате тагове и страници с маркери, за да намерите набори от данни, например //www.kaggle.com/tags/crime.

Можете да създавате публични и частни набори от данни на Kaggle от вашата локална машина, URL адреси, хранилища на GitHub и изходи на Kaggle Notebook. Можете да зададете набор от данни, създаден от URL или GitHub хранилище, да се актуализира периодично.

В момента Kaggle има доста набори от данни за COVID-19, предизвикателства и тетрадки. Вече има няколко приноса на общността в усилията да се разбере тази болест и вирусът, който я причинява.

Бележници Kaggle

Kaggle поддържа три вида преносими компютри: скриптове, RMarkdown скриптове и Jupyter Notebooks. Скриптовете са файлове, които изпълняват всичко като код последователно. Можете да пишете тетрадки на R или Python. R кодерите и хората, изпращащи код за състезания, често използват скриптове; Кодерите на Python и хората, които правят изследователски анализ на данни, са склонни да предпочитат Jupyter Notebooks.

Преносимите компютри от всякакви ивици могат по избор да имат безплатен GPU (Nvidia Tesla P100) или TPU ускорители и могат да използват услугите на Google Cloud Platform, но има приложими квоти, например 30 часа GPU и 30 часа TPU на седмица. По принцип не използвайте GPU или TPU в тетрадка, освен ако не е необходимо да ускорите дълбокото обучение. Използването на услугите на Google Cloud Platform може да начисли такси за вашия акаунт в Google Cloud Platform, ако надвишите надбавките за безплатни нива.

Можете да добавяте набори от данни Kaggle към тетрадките Kaggle по всяко време. Можете също да добавите набори от данни за състезанието, но само ако приемете правилата на състезанието. Ако желаете, можете да свържете преносими компютри, като добавите изхода на един преносим компютър към данните на друг преносим компютър.

Преносимите компютри се изпълняват в ядра, които по същество са контейнери на Docker. Можете да запазвате версии на своите преносими компютри, докато ги разработвате.

Можете да търсите преносими компютри с заявка за ключови думи на сайта и филтър за преносими компютри, или като разглеждате началната страница на Kaggle. Можете също да използвате списъка на Notebook; като наборите от данни, редът на преносимите компютри в списъка по подразбиране е по „горещост“. Четенето на обществени тетрадки е добър начин да научите как хората правят наука за данните.

Можете да си сътрудничите с други хора по бележник по няколко начина, в зависимост от това дали бележникът е публичен или частен. Ако е публично, можете да предоставите права за редактиране на конкретни потребители (всеки може да преглежда). Ако е частен, можете да предоставите привилегии за преглед или редактиране.

Публичен API на Kaggle

В допълнение към изграждането и стартирането на интерактивни преносими компютри, можете да взаимодействате с Kaggle, като използвате командния ред Kaggle от вашата локална машина, който извиква публичния API на Kaggle. Можете да инсталирате Kaggle CLI с помощта на инсталатора на Python 3 pipи да удостоверите вашата машина, като изтеглите API маркер от сайта на Kaggle.

CLI и API на Kaggle могат да взаимодействат със състезания, набори от данни и тетрадки (ядра). API е с отворен код и се хоства на GitHub на //github.com/Kaggle/kaggle-api. Файлът README там предоставя пълната документация за инструмента за команден ред.

Общност и образование на Kaggle

Kaggle е домакин на общностни дискусионни форуми и микро-курсове. Темите на форума включват самия Kaggle, начало, обратна връзка, въпроси и отговори, набори от данни и микро-курсове. Микро-курсовете обхващат умения, свързани с изследователите на данни в рамките на няколко часа: Python, машинно обучение, визуализация на данни, Pandas, инженеринг на функции, задълбочено обучение, SQL, геопространствен анализ и т.н.

Като цяло Kaggle е много полезен за изучаване на наука за данни и за състезание с другите по предизвикателства в областта на науката за данни. Също така е много полезно като хранилище за стандартни публични набори от данни. Това обаче не е заместител на платени услуги за наука за облачни данни или за извършване на собствен анализ.