Когда я играю на Kaggle, я обычно выбираю Python и S klearn. Обычно по умолчанию для написания кода используется блокнот J upyter, но сейчас я решил впервые попробовать ядра kaggle.

Создать новое ядро ​​довольно просто. Все, что вам нужно сделать, это выбрать соревнование, щелкнуть подменю «Ядра» и затем щелкнуть «Новое ядро».

Как видно на картинке выше, я выбрал всем известное Соревнование Титаник.

После того, как вы нажмете кнопку «Новое ядро», у вас будет возможность выбрать, где вы будете писать свое следующее ядро: «Сценарий» или «Блокнот».

Вариант сценария имитирует вашу локальную командную строку Python, а вариант блокнота имитирует Jupyter с вашего персонального компьютера. Оба варианта поддерживают Python, R и уценку.

Как вы, наверное, догадались, я выбрал вариант Jupyter. Здесь вы можете найти его окончательную версию!
Ниже вы можете увидеть, как выглядит ядро ​​Jupyter сразу после того, как вы создадите новое.

Этот интерфейс содержит основные функции для написания вашего ядра, такие как выбор языка программирования (Python или R), запуск определенной ячейки или всего ядра, добавление внешних наборов данных. За каждым ядром находится док-контейнер, который смонтировал входные наборы данных от конкурентов, поэтому вам больше не нужно беспокоиться о загрузке и сохранении наборов данных.

В docker-контейнер также предварительно загружены наиболее распространенные библиотеки науки о данных, вы можете прочитать его Dockerfile, чтобы увидеть все доступные библиотеки. Может быть, вы спрашиваете себя: а что, если мне понадобится библиотека, которая не загружена в ядро ​​заранее? Я не находил в этой ситуации до сих пор, но после простого поиска в Google по поводу этой функции это оказалось не так просто. Кажется, есть такой вопрос в блоге kaggle.

Я был очень удивлен, увидев, что в ядрах много оперативной памяти, около 17 ГБ. Это больше, чем у большинства ноутбуков. В планы на 2018 год входит предоставление пользователям Kaggle возможности использовать ядра с собственными частными наборами данных, доступ к графическим процессорам и поддержку более сложных конвейеров. Звучит здорово !

Еще одна приятная функция, которая поставляется с ядрами, - это то, что вы можете отправлять свое решение прямо из него!
Чтобы отправить свое решение на соревнования Kaggle, обычно вам нужно отправить свои результаты в файл csv.

Вот как я сохранил результаты в файле csv из моего ядра для конкурса Titanic.

После того, как вы нажмете кнопку «Зафиксировать и запустить», вы увидите вкладку «Вывод» в меню ядра.

В моем случае я сохранил семь файлов результатов. Вы можете выбрать одно и нажать «Отправить на конкурс», чтобы напрямую принять участие в конкурсе «Титаник».
В первые дни, когда я начал использовать ядра, я хотел прекратить его использование, потому что у меня были несовместимые результаты вывода файлов. Это действительно раздражало. Через неделю я обнаружил, что это произошло из-за неправильного использования ядра, но это было не так очевидно. Давайте объясним, почему: я думал, что результаты в выходном файле сохраняются после каждого запуска функции save_submition_file (имя_файла, пассажира, прогнозы) во время разработки ядра (то есть ядро ​​находилось в режиме редактирования). Я тренировал множество версий модели дерева решений и запускал одну и ту же ячейку ядра для вызова функции save_submition_file, чтобы сохранить мои результаты с разными именами файлов. В то время кнопка «Выполнить и зафиксировать» называлась «Опубликовать». После каждого нажатия кнопки «Опубликовать», чтобы увидеть все ожидаемые выходные файлы, я мог видеть только один файл. После многих попыток я пришел к выводу, что после каждого нажатия кнопки «Опубликовать» все ядро ​​также запускается снова, а не только публикуется. Я думал, что публикация означает сохранение только новой версии ядра ...

По крайней мере, теперь название кнопки было изменено с «Опубликовать» на «Выполнить и зафиксировать» и стало немного более интуитивно понятным, чем весь код ядра следует для повторного запуска. Не знаю кто виноват, я или старые ядра UX :))

Еще мне не понравился журнал ошибок после нажатия кнопки «Выполнить и зафиксировать». У меня была ошибка в середине ядра, которую я не заметил, и из-за нее после нажатия кнопки «Выполнить и зафиксировать» ядро ​​не сгенерировало никаких выходных файлов. Я просмотрел журналы, но ничего не знало о моей ошибке. Было бы очень полезно видеть в журналах сообщение с моей ошибкой или иметь после каждого запуска статистику о количестве ячеек записной книжки со статусом успешный / неудачный.

Я должен признать, что инженеры Kaggle упорно работают над исправлением и улучшением ядер. Вышеуказанные проблемы были выявлены примерно в январе 2018 года во время моей работы над Ядром Титаника. Возможно, на момент чтения этой статьи эти проблемы уже решены 😉

В заключение хочу сказать, что работать с ядрами было здорово.
Мне очень нравится, что Kaggle предоставляет эту услугу, особенно для обмена знаниями в области машинного обучения. Я многому научился, получил новые идеи, читая другие ядра. Также вы можете получать комментарии и голоса по вашему ядру, которые вы можете видеть в качестве награды от сообщества Kaggle. Здесь вы можете прочитать, как повысить свой рейтинг для ядер, соревнований или обсуждений.
Я был бы рад услышать, как вы оцениваете использование ядер kaggle! Вы можете оставить комментарий, если хотите поделиться 😉

Первоначально опубликовано на tudorlapusan.ro 20 февраля 2018 г.