Pull to refresh
2
0

Пользователь

Send message

Напишем и поймем Decision Tree на Python с нуля! Часть 5. Информационная энтропия

Reading time4 min
Views6.9K
Данная статья — пятая в серии. Ссылки на предыдущие статьи: первая, вторая, третья, четвертая

5.1 Информационная энтропия (Средний объем информации)


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

В начале, определимся с понятием объем информации. Интуитивно понятно, что объем данных = сложность, запутанность данных. Дерево решений собирает данные с одинаковыми значениями классов с каждого ветвления, таким образом снижая степень запутанности значений класса. Следовательно, при выборе атрибута, согласно которому лучше всего проводить ветвление, опираться стоит на то, насколько простыми стали данные после разветвления.
Читать дальше →

Как разобраться в дереве принятия решений и сделать его на Python

Reading time5 min
Views32K
Совсем скоро, 20 ноября, у нас стартует новый поток «Математика и Machine Learning для Data Science», и в преддверии этого мы делимся с вами полезным переводом с подробным, иллюстрированным объяснением дерева решений, разъяснением энтропии дерева решений с формулами и простыми примерами, вводом понятия «информационный выигрыш», которое игнорируется большинством умозрительно-простых туториалов. Статья рассчитана на любящих математику новичков, которые хотят больше разобраться в работе дерева принятия решений. Для полной ясности взят совсем маленький набор данных. В конце статьи — ссылка на код на Github.


Приятного чтения!

25 лучших репозиториев GitHub для разработчиков Python

Reading time3 min
Views28K
Согласно опросу разработчиков на StackOverflow в 2020 году*, Python — один из самых любимых языков в мире. Что еще более интересно, Python — это язык, который разработчики больше всего хотят попробовать в своей работе. Если вы один из тех, кто использует Python и хочет прокачать свои знания, или один из тех, кто хочет изучить Python, вы попали в нужное место. Под катом 25 лучших репозиториев Python на GitHub.

Читать дальше →

Напишем и поймем Decision Tree на Python с нуля! Часть 4. Структуры данных

Reading time5 min
Views11K
Данная статья — четвертая в серии. Ссылки на предыдущие статьи: первая, вторая, третья

4.1 Структуры данных


Структура данных — это представление того, как организованы отдельные данные.

Массив


image
Читать дальше →

Квантовая теория. Вселенная из волн вероятностей

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

image Что будет, если по аналогии с двущелевым опытом, все пространство на пути частицы до экрана будет заполнено щелями?
Читать дальше →

Мелкая питонячая радость #11: реактивное программирование, парсинг страниц и публикация моделей машинного обучения

Reading time4 min
Views7.5K

image


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

Читать дальше →

Автоматизация работы с проектом Python

Reading time11 min
Views10K

Сегодня делимся с вами переводом статьи DevOps инженера из IBM, об автоматизации сборки быстро собираемых и удобно отлаживаемых образов Docker для проектов на Python с помощью Makefile. Этот проект не только упрощает отладку в Docker, но и заботится о качестве кода вашего проекта. Подробности, как всегда, под катом.
Приятного чтения!

Валидация и обработка исключений с помощью Spring

Reading time8 min
Views21K

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

В этой статье я обобщаю свой опыт и даю несколько советов по валидации интерфейсов.

Читать далее

О полезности contextvars

Reading time5 min
Views31K

В Python есть множество возможностей и языковых конструкций. Какие-то мы используем каждый день, а о некоторых даже опытные программисты узнают с удивлением после нескольких лет работы с языком (привет, Ellipsis!). Совсем недавно вышел Python 3.9, но в этой статье я расскажу о функциональности, представленной еще в версии 3.7. На мой взгляд, она совершенно незаслуженно обделена пристальным вниманием. Речь, конечно же, о contextvars.
Читать дальше →

Как фотоны воспринимают время?

Reading time5 min
Views66K

У каждого есть мечта; я хотел бы дожить до рассвета, но знаю, что мне осталось менее трёх часов. Будет ночь, но это неважно. Умирать просто. Для этого не нужен свет. Так тому и быть: я умру при свете звёзд.
— Виктор Гюго

Перемещаясь со скоростью света, фотоны, испущенные Солнцем, достигают Земли примерно за 8 минут. Путь в 150 миллионов километров по пустому космосу – это не препятствие для света, но для нас это значит, что глядя на Солнце, мы видим его таким, каким оно было незадолго до этого, а не таким, какое оно в данный момент является. Если бы Солнце мгновенно исчезло прямо сейчас, мы не узнали бы об этом – ни из-за света, ни из-за гравитации – пока не прошли бы восемь минут. Но как это выглядит с точки зрения фотона? Известно, что если перемещаться со скоростью, приближающейся к скорости света, включается СТО Эйнштейна, время замедляется, а длина уменьшается. Однако же фотоны двигаются со скоростью не близкой, а равной скорости света. И насколько же тогда стареет фотон, испущенный Солнцем, к тому времени, как он достигает Земли?
Читать дальше →

Как же всё-таки не ошибаться?

Reading time11 min
Views5.3K
Всем привет! Меня зовут Виктория Головнева, я работаю джуниор аналитиком. Как и любой джун, я постоянно прохожу какие-то курсы, читаю статьи и книги по рабочей (и околорабочей) тематике, чтобы прокачивать мой уровень знаний в SQL, статистике, методах визуализации данных и многом другом.

Недавно мне попалась книга «Как не ошибаться. Сила математического мышления», Джордана Элленберга — о ней и пойдёт речь.

В этой статье я хочу привести несколько простых математических/логических задач, которые:

  • Помогут немного размять мозги;
  • Возможно, кому-то помогут узнать новые понятия из математики и статистики.

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

Заинтересовались? Тогда погнали под кат!


Читать дальше →

Парсинг и аудит

Reading time4 min
Views2.8K


Начнем с идеи. Допустим, вы, как настоящий аудитор, хотите провести экспертизу отчетности заводчика собак, используя в том числе и сторонние ресурсы. Для этого вы пробуете получить систематизированную информацию о щенках заводчика, зная, к примеру, лишь название их пород, и составить из нее таблицу в Pandas, пригодную к дальнейшей обработке любого характера (всевозможные статистические изыскания, агрегация и так далее). Но ваши данные хранятся в глубине некоторого абстрактного вебсайта, откуда вы можете вынуть их в только виде архива, где сложены документы нескольких форматов, внутри которых есть текст, картинки, таблицы. А если пород щенков много, а на каждую из них есть по десятку pdf-файлов с таблицами, откуда вам нужна не вся информация, а также, например, нужны названия этих таблиц или сноски? Добавим в наш проект несколько функций, решающих следующие задачи: выгрузка и распаковка архива с данными, поиск и обработка pdf файлов из архива, анализ полученных данных.

Читать дальше →

Как привести выписку ЕГРН в читаемый вид, используя python

Reading time2 min
Views7.7K

Тернист и труден путь человека, столкнувшегося с ФГИС ЕГРН Росреестра. Его ждут бесконечные ожидания загрузки браузера, ключи, капчи, интервалы между запросами в 5 минут. За что ему такие страдания? Он же уже внес свои кровные, когда решился работать с данной системой и заказывать свои выписки. Но нет — получение выписки из ЕГРН, это как раздевание репчатого лука. Последний шаг, который поджидает страдальца — скачанная, вожделенная выписка представлена zip архивом, в котором, гм, еще один архив и файл sig. А уже внутри лежит сам файл выписки. Но прочитать его тоже непросто — он в xml. И чтобы все срослось, необходимо, оказывается загружать этот xml вместе с sig на специальную страницу Росреестра. А там, там еще капча ждет. И так с каждой выпиской! Вот эту последнюю боль будем сегодня побеждать, используя python.

Задача:

  • распаковать все zip в папке,
  • загрузить по спец. ссылке в Росреестр,
  • скачать, наконец!, человекочитаемый вид выписки.
Читать дальше →

Система рекомендаций фильмов с GUI на Python

Reading time13 min
Views13K

«Без опыта я никому не нужен! Где взять опыт?» — часто думают люди, осваивающие новую для себя сферу или изучающие новый язык программирования. Решение есть — делать пет-проекты. Представленный под катом проект системы рекомендации фильмов не претендует на сложность и точность аналогичных систем от энтерпрайз-контор, но может стать практическим стартом для новичка, которому интересны системы рекомендации в целом. Этот пост также подойдет для демонстрации как использовать Python-библиотеку EasyGUI на практике.

Важное предупреждение: если вы крепкий миддл либо сеньор, то проект может показаться вам простым. Однако не стоит спешить опускать палец вниз и забывать про тех, кто не так опытен, и кому пост может быть полезен, ведь все мы когда-то были джунами.
Приятного чтения!

«Жизнь» на PostgreSQL

Reading time4 min
Views20K
Недавно на Хабре была опубликована статья Морской бой в PostgreSQL. Должен признаться: я обожаю решать на SQL задачи, для SQL не предназначенные. Особенно одним SQL-оператором. И полностью согласен с авторами:

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

И еще. Будем честны: всегда использовать SQL по назначению — тоска зеленая. Вспомните, какие примеры приводятся во всех учебниках, начиная с той самой статьи Кодда? Поставщики да детали, сотрудники да отделы… А где же удовольствие, где же фан? Для меня один из источников вдохновения — сравнение процедурных решений с декларативными.

Я, позвольте, не буду объяснять, что такое Жизнь Джона Конвея. Скажу только, что — оказывается — используя клеточный автомат Жизни, можно построить универсальную машину Тьюринга. Мне кажется, это грандиозный факт.

Так вот, можно ли реализовать игру Жизнь одним оператором SQL?
Конечно можно

Мелкая питонячая радость #8: мелкие удовольствия для работы с БД

Reading time3 min
Views17K

Беглый опрос коллег на моем текущем проекте показал, что при словах "ORM и работа с БД" в подавляющем большинстве случаев звучат слова "Алхимия" и "Django ORM". Знания этих двух слов, в общем, достаточно, чтобы писать чистый, аккуратный и рабочий код. Но расширение инженерного кругозора пока еще никому не вредило, поэтому сегодня мы добавим в нашу картину мира несколько (возможно, до этого дня незнакомых) классных штук для работы с БД.


Читать дальше →

Мелкая питонячая радость #10: конечные автоматы и глубокое обучение в несколько строк

Reading time3 min
Views24K

Конечно, самая большая радость этих дней — python 3.9. Но кроме этой радости кто-то должен ворошить github в поисках мелких приятностей, которые несут добро и свет тем, кто пишет на python.


Transitions


Тем, кому приходилось писать реализацию какого-нибудь сложного информационного процесса, знает эту проблему.


У вас есть некий объект, который может находиться всегда только в одном состоянии.
Переходы между состояниями описываются диаграммой состояний — из какого в какое состояние объект может перейти, а из какого в какое — не может.


Читать дальше →

Python: коллекции, часть 1/4: классификация, общие подходы и методы, конвертация

Reading time7 min
Views364K
Коллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции.

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

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

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Будем рассматривать стандартные встроенные коллекционные типы данных в Python: список (list), кортеж (tuple), строку (string), множества (set, frozenset), словарь (dict). Коллекции из модуля collections рассматриваться не будут, хотя многое из статьи должно быть применимым и при работе с ними.

ОГЛАВЛЕНИЕ:


  1. Классификация коллекций;
  2. Общие подходы к работе с коллекциями;
  3. Общие методы для части коллекций;
  4. Конвертирование коллекций.
Читать дальше →

Python: коллекции, часть 2/4: индексирование, срезы, сортировка

Reading time10 min
Views190K
Часть 1 Часть 2 Часть 3 Часть 4
imageДанная статья является продолжением моей статьи "Python: коллекции, часть 1: классификация, общие подходы и методы, конвертация".

В данной статье мы продолжим изучать общие принципы работы со стандартными коллекциями (модуль collections в ней не рассматривается) Python.

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

ОГЛАВЛЕНИЕ:


  1. Индексирование
  2. Срезы
  3. Сортировка
Читать дальше →

Python: коллекции, часть 3/4: объединение коллекций, добавление и удаление элементов

Reading time6 min
Views77K
Часть 1 Часть 2 Часть 3 Часть 4
imageПродолжим изучать общие принципы работы со стандартными коллекциями (модуль collections в ней не рассматривается) Python. Будут рассматриваться способы объединения и обновления коллекций с формированием новой или изменением исходной, а также способы добавлять и удалять элементы в изменяемые коллекции.

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Оглавление:


  1. Объединение строк, кортежей, списков, словарей без изменения исходных.
  2. Объединение множеств без изменения исходных.
  3. Объединение списка, словаря и изменяемого множества с изменением исходной коллекции.
  4. Добавление и удаление элементов изменяемых коллекций.
  5. Особенности работы с изменяемой и не изменяемой коллекцией.
Читать дальше →

Information

Rating
Does not participate
Location
Казахстан
Date of birth
Registered
Activity