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

Делаем проект по машинному обучению на 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
Первая часть этой главы будет посвящена попыткам понимания ключевых законов восприятия и обработки информации, ее оценки и приведения к мотивации сущности. Во второй части представлены измышления влияния этих законов на нашу жизнь, мотивацию и поведение.

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

Введение

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

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

M* — алгоритм поиска кратчайшего пути, через весь мир, на смартфоне - 1

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

Под катом представлена обобщенная эвристика к алгоритму A*, полезная именно в свете практической пригодности на больших графах при ограниченных ресурсах, например, на мобилке.
Читать полностью »

Поэтапное руководство по алгоритму автоматического размещения из CSS Grid - 1

Предлагаем вашему вниманию перевод статьи о методике, которая будет полезна разработчикам, использующим в своей работе CSS.

В этом руководстве мы рассмотрим все этапы алгоритма автоматического размещения элементов из модуля CSS Grid Layout. Каждый этап управляется с помощью свойства grid-auto-flow. В своих других статьях “Introducing the CSS Grid Layout” и “Seven Ways You Can Place Elements Using CSS Grid Layout” автор рассмотрел спецификацию CSS Grid и проанализировал, как с помощью Grid можно позиционировать элементы на веб-странице. Однако в этих материалах в сетке явным образом задавалась позиция единственного элемента. Остальные элементы размещались с помощью некоего алгоритма.

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