Рубрика «алгоритм» - 6

Пишем XGBoost с нуля — часть 2: градиентный бустинг - 1

Всем привет!

В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали
алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение подводим итоги, сравнивая результаты работы с аналогами из Sklearn'а.

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

Пишем XGBoost с нуля — часть 2: градиентный бустинг - 2
Читать полностью »

Пишем XGBoost с нуля — часть 1: деревья решений - 1

Привет!

После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что-то новое почерпну), я решил сделать своё собственное руководство, каким бы я хотел его видеть. Задача на словах простая, но, как известно, дьявол кроется в мелочах, коих в алгоритмах с деревьями очень много.

Так как тема достаточно обширная, то очень сложно будет уместить всё в одну статью, поэтому будет две публикации: первая посвящена деревьям, а вторая часть будет посвящена реализации алгоритма градиентного бустинга. Весь изложенный здесь материал собран и оформлен на основе открытых источников, моего кода, кода коллег и друзей. Сразу предупреждаю, кода будет много.

Пишем XGBoost с нуля — часть 1: деревья решений - 2
Читать полностью »

Делаем проект по машинному обучению на Python. Часть 3 - 1

Перевод A Complete Machine Learning Walk-Through in Python: Part Three

Многим не нравится, что модели машинного обучения представляют собой чёрные ящики: мы кладём в них данные и безо всяких объяснений получаем ответы — часто очень точные ответы. В этой статье мы постараемся разобраться, как созданная нами модель делает прогнозы и что она может рассказать о решаемой нами задаче. И завершим мы обсуждением самой важной части проекта по машинному обучению: задокументируем сделанное и представим результаты.

В первой части мы рассмотрели очистку данных, разведочный анализ, конструирование и выбор признаков. Во второй части изучили заполнение отсутствующих данных, реализацию и сравнение моделей машинного обучения, гиперпараметрическую настройку с помощью случайного поиска с перекрёстной проверкой и, наконец, оценку получившейся модели.
Читать полностью »

Делаем проект по машинному обучению на Python. Часть 2 - 1

Перевод A Complete Machine Learning Walk-Through in Python: Part Two

Собрать воедино все части проекта по машинному обучению бывает весьма непросто. В этой серии статей мы пройдём через все этапы реализации процесса машинного обучения с использованием реальных данных, и узнаем, как сочетаются друг с другом различные методики.

В первой статье мы очистили и структурировали данные, провели разведочный анализ, собрали набор признаков для использования в модели и установили базовый уровень для оценки результатов. С помощью этой статьи мы научимся реализовывать на Python и сравнивать несколько моделей машинного обучения, проводить гиперпараметрическую настройку для оптимизации лучшей модели, и оценивать работу финальной модели на тестовом наборе данных.

Весь код проекта лежит на GitHub, а здесь находится второй блокнот, относящийся к текущей статье. Можете использовать и модифицировать код по своему усмотрению!
Читать полностью »

Делаем проект по машинному обучению на Python. Часть 1 - 1

Перевод A Complete Machine Learning Project Walk-Through in Python: Part One.

Когда читаешь книгу или слушаешь учебный курс про анализ данных, нередко возникает чувство, что перед тобой какие-то отдельные части картины, которые никак не складываются воедино. Вас может пугать перспектива сделать следующий шаг и целиком решить какую-то задачу с помощью машинного обучения, но с помощью этой серии статей вы обретёте уверенность в способности решить любую задачу в сфере data science.

Чтобы у вас в голове наконец сложилась цельная картина, мы предлагаем разобрать от начала до конца проект применения машинного обучения с использованием реальных данных.
Читать полностью »

В этой статье рассматриваются сходства и различия двух подходов к решению алгоритмических задач: динамического программирования (dynamic programing) и принципа «разделяй и властвуй» (divide and conquer). Сравнение будем производить на примере, соответственно, двух алгоритмов: бинарного поиска (как быстро найти число в отсортированном массиве) и расстояния Левенштейна (как преобразовать одну строку в другую с минимальным количеством операций).

Хочу сразу заметить, что данное сравнение и объяснение не претендует на исключительную правильность. И возможно даже некоторые преподаватели в университетах захотели бы меня отчислить :) Эта статья является всего-лишь моей персональной попыткой разложить себе же все по полочками и понять что такое динамическое программирование и каким образом в нем участвует принцип «divide and conquer».

Итак, приступим…

image
Читать полностью »

image

Привет! В прошлой статье «бесконечный узор на основе простых чисел» я рассказал про алгоритм, который позволяет генерировать бесконечные красивые узоры, похожие то ли на инопланетные рисунки, то ли на нечто технологическое, подобно устройству микросхем. Однако, алгоритм для генерирования 2D узоров можно так же использовать и для создания мелодий. Подробнее под катом.
Читать полностью »

Революцию в ИИ произведут не дроиды, а тостеры - 1

Будут ли интеллектуальные алгоритмы будущего походить на роботов общего назначения, так же хорошо справляющихся с непринуждённой беседой и чтением карт, как с кухонными задачами? Или наши цифровые помощники будут больше походить на специализированные гаджеты – то есть, это будет не разговорчивый шеф-повар, а кухня, набитая бытовой техникой?

Если алгоритм пытается сделать слишком многое, у него начинаются проблемы. Приведённый ниже рецепт был создан искусственной нейросетью – таким типом искусственного интеллекта, который обучается на примерах. Этот алгоритм тщательно изучил порядка 30 000 кулинарных рецептов, от супов и пирогов до барбекю, а затем попробовал выдать собственный рецепт. Результат получился, скажем так, неортодоксальным.
Читать полностью »

Осознание человеческой сущности через понимание ИИ. Часть 2. Замочная скважина - 1
Первая часть этой главы будет посвящена попыткам понимания ключевых законов восприятия и обработки информации, ее оценки и приведения к мотивации сущности. Во второй части представлены измышления влияния этих законов на нашу жизнь, мотивацию и поведение.

В процессе разработки механизмов обработки информации поступающей с систем информации, механизмов обучения, хранения, принятия решений были определены некоторые особенности, которые повторяются во всех системах. Это своего рода оказалось связующим звеном, позволяющим строить многоуровневые системы выполняющие разные функции, но работающие по одним принципам. Эти принципы я попробую объяснить, и возможно, их понимание позволит по другому взглянуть на вашу жизнь, ваши решения и мотивацию.
Читать полностью »

Введение

Введение посвящено тому, как ход событий и умозаключений привели к появлению идеи и началу ее реализации.

С давнего времени меня занимает проблема ИИ. В начале это были попытки сделать продвинутого чат-бота. Затем пришло осознание, что это будет всего лишь программа, которая на запрос будет давать ответ в соответствии со своей базой данных (БД). Благодаря тому, что все знания системы будут заполнятся относительно случайно (в процессе разговора, обучения), мы получаем псевдонепредсказуемые ответы, но ведь сама система не осознает, что она отвечает. Следом была попытка разработать систему с более подвинутыми источниками познания, в надежде, что это даст какой-то толчок к появлению ИИ. Обработка изображения с камеры, звуков с микрофона, попытка создать бинокулярное зрение, чтобы опознавать образы объемных предметов… Все это было всего лишь очередным вводом данных в БД. Бесспорно, все это полезно и необходимо в робототехнике, но к самому интеллекту не приведет.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js