Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор

Автор: admin от 3-09-2020, 10:43, посмотрело: 249

Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (1. 概要編)".



1.1 Что такое Decision Tree?



1.1.1 Пример Decision Tree



Например, у нас есть следующий набор данных (дата сет): погода, температура, влажность, ветер, игра в гольф. В зависимости от погоды и остального, мы ходили (〇) или не ходили (×) играть в гольф. Предположим, что у нас есть 14 сложившихся вариантов.



Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор


Из этих данных мы можем составить структуру данных, показывающую, в каких случаях мы шли на гольф. Такая структура из-за своей ветвистой формы называется Decision Tree.






Например, если посмотреть на Decision Tree, изображенный на картинке выше, мы поймем, что сначала проверяли погоду. Если было ясно, мы проверяли влажность: если она высокая, то не шли играть в гольф, если низкая — шли. А если погода была облачная, то шли играть в гольф вне зависимости от других условий.

Категория: Программирование

 

Как мы рекомендуем новинки каталога в онлайн-кинотеатре ivi (+ код на Python)

Автор: admin от 11-12-2019, 02:35, посмотрело: 74

В блоге онлайн-кинотеатра ivi накопилось достаточно статей про архитектуру рекомендательной системы Hydra. Однако рекомендации — это не только внешний API, но и алгоритмы, которые живут «под капотом» и реализуют достаточно сложную бизнес-логику.



В этой статье я расскажу о проблеме «холодного старта» контента. Если вам интересно узнать, как мы рекомендуем контент, который недавно добавился в каталог и не успел набрать фидбэк от пользователей — добро пожаловать под кат.



Как мы рекомендуем новинки каталога в онлайн-кинотеатре ivi (+ код на Python)

Статья будет содержать воспроизводимый пример кода на языке Python с использованием Keras.

Категория: Веб-разработка

 

Как решить старую задачу с помощью ML на Python и .Net

Автор: admin от 24-06-2019, 15:30, посмотрело: 133

Как решить старую задачу с помощью ML на Python и .Net

Бывает, что некоторые задачи преследуют тебя много лет. Для меня такой задачей стала склейка предложений текстов, в которых жестко забит переход на новую строку, а часто еще и перенос слов. На практике, это извлеченный из PDF или с помощью OCR текст. Часто можно было встретить такие тексты на сайтах он-лайн библиотек, в архивах старых документов, которые редактировались еще DOS-редакторами. И такое форматирование очень мешает затем правильной разбивке на предложения (а с переносами — и на токены) для последующей NLP-обработки. Да и банально показать такой документ в поисковой выдаче — будет некрасиво.



Решал я эту задачу несколько раз — на Delphi, C#. Тогда это был жесткий алгоритм, где руками прописывал, например, какая может быть ширина текста, чтобы этот текст считался отформатированным "по-старому". Не всегда это срабатывало идеально, но в общем, хватало.

Категория: Программирование

 

Субъективное видение идеального языка программирования

Автор: admin от 7-01-2019, 17:25, посмотрело: 217

Дальнейший текст — моя точка зрения. Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а просто опишу общие подходы. P.S. У меня когда-то была идея создать свой язык программирования, но это оказалось довольно сложным процессом, который я пока не осилил.



Влияние предыдущего опыта



На написание статьи меня вдохновила вот эта статья. Автор придумал свой язык программирования, и этот язык своим синтаксисом и особенностями оказался подозрительно похожим на Free Pascal, на котором и была написана реализация ВМ для языка. И это не совпадение. Языки программирования, на которых мы раньше писали, загоняют мышление в рамки языка. Мы сами можем не замечать этого, но сторонний наблюдатель с иным опытом может посоветовать что-то неожиданное или сам научиться чему-то новому.



Рамки мышления немного раздвигаются после освоения нескольких языков. Тогда в языке А вам может захотеться иметь фичу из Б и наоборот, а ещё появится осознание сильных и слабых стороны каждого языка.



Например, когда я пробовал придумать и создать свой язык, мои размышления кардинально отличались от тех, что были описаны в статье выше. Я думал о совершенно иных вещах в рамках совершенно иных терминов. Ниже я опишу фичи языка, которые я хотел бы видеть в "идеальном" языке программирования.



Мой опыт: когда-то я начинал с паскаля, впоследствии познакомился с Java, Kotlin, C++, Python, Scheme, а основными языком считаю Scala. Как и в вышеописанном случае, мой "идеальный" язык имеет много общего со Scala. По крайней мере, я отдаю себе отчёт в этом сходстве)

Категория: Программирование

 

Подборка @pythonetc, ноябрь 2018

Автор: admin от 12-12-2018, 10:55, посмотрело: 169

Подборка @pythonetc, ноябрь 2018


Это шестая подборка советов про Python и программирование из моего авторского канала @pythonetc.



Предыдущие подборки:




  • Октябрь 2018

  • Сентябрь 2018

  • Август 2018

  • Июль 2018

  • Июнь 2018

Категория: iOS

 

Подборка @pythonetc, август 2018

Автор: admin от 10-09-2018, 12:05, посмотрело: 204

Подборка @pythonetc, август 2018




Это третья подборка советов про Python и программирование из моего авторского канала @pythonetc.



Предыдущие подборки:




  • Июль 2018


  • Июнь 2018


Категория: Linux

 

Убираем радиальное искажение с фото и видео при помощи библиотеки openCV и языка python

Автор: admin от 30-10-2017, 01:30, посмотрело: 1 227

В данной статье будет рассказываться о применении библиотеки машинного зрения (openCV) для удаления эффекта радиального искажения (дисторсии) с фото и видео. Данный эффект также известен как эффект рыбьего глаза (fisheye) или distortion. Решение написать данную статью было принято после нескольких дней поиска информации в интернете. Не смотря на то, что есть гайды на английском языке, они не объясняют как правильно установить openCV, чтобы все работало. В статье присутствует готовый код.


Сразу привожу фото итогового результата. Слева оригинальное фото, справа — обработанное:


Убираем радиальное искажение с фото и видео при помощи библиотеки openCV и языка python Убираем радиальное искажение с фото и видео при помощи библиотеки openCV и языка python

Категория: Программирование

 

Pygest #15. Релизы, статьи, интересные проекты из мира Python [01 августа 2017 — 14 августа 2017]

Автор: admin от 14-08-2017, 10:25, посмотрело: 408

Pygest #15. Релизы, статьи, интересные проекты из мира Python [01 августа 2017 — 14 августа 2017] Всем привет! Это уже пятнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.



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



А теперь к делу!
Перейти к дайджесту

Категория: Программирование / Веб-разработка

 

Pygest #15. Релизы, статьи, интересные проекты из мира Python [01 августа 2017 — 14 августа 2017]

Автор: admin от 14-08-2017, 10:25, посмотрело: 408

Pygest #15. Релизы, статьи, интересные проекты из мира Python [01 августа 2017 — 14 августа 2017] Всем привет! Это уже пятнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.



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



А теперь к делу!
Перейти к дайджесту

Категория: Программирование / Веб-разработка

 

Метод оптимизации Trust-Region DOGLEG. Пример реализации на Python

Автор: admin от 13-08-2017, 08:25, посмотрело: 907

Метод оптимизации Trust-Region DOGLEG. Пример реализации на Python


Trust-region метод (TRM) является одним из самых важных численных методов оптимизации в решении проблем нелинейного программирования (nonlinear programming problems). Метод базируется на определении региона вокруг лучшего решения, в котором квадратичная модель аппроксимирует целевую функцию.



Методы линейного поиска (line search) и методы trust-region генерируют шаги с помощью аппроксимации целевой функции квадратичной моделью, но использую они эту модель по-разному. Линейный поиск использует её для получения направления поиска и дальнейшего нахождения оптимального шага вдоль направления. Trust-region метод определяет область (регион) вокруг текущей итерации, в котором модель достаточно аппроксимирует целевую функцию. В целях повышения эффективности направление и длина шага выбираются одновременно.



Trust-region методы надежны и устойчивы, могут быть применены к плохо обусловленным задачам и имеют очень хорошие свойства сходимости. Хорошая сходимость обусловлена тем, что размер области TR (обычно определяется модулем радиус-вектора) на каждой итерации зависит от улучшений сделанных на предыдущих итерациях.
->

Категория: Программирование

 
Назад Вперед