10 идиоматических приемов для эффективного программирования на Python
Программирование само по себе очень увлекательное занятие, а программирование на Python увлекательнее вдвойне, поскольку в данном языке существует много разных способов реализации одних и...
Основные концепции и структуры Python, которые должен знать каждый серьёзный программист
Генераторы
Создание итератора в Python требует большой работы. Класс (в ООП) должен быть построен с применением методов __iter__() и __next__(), внутренние состояния должны быть сохранены...
Метод подсчёта количества решений
Линейные алгебраические уравнения — одни из самых простых уравнений, которые мы можем решить. Если в уравнении только одна переменная, решение тривиально, в то время как для...
Биномиальное распределение
Все знают и любят нормальное распределение. Оно используется в инвестиционном моделировании, A/B-тестах и улучшении производственных процессов (шесть сигм). Но мало кто хорошо знаком с...
Байесовская статистика для специалистов по данным
Возможно, вы помните теорему Байеса как громоздкое уравнение из курса статистики, которое вам нужно было заучить. Но за ним кроется нечто большее. Эта теорема...
Пять парадоксов с вероятностью, которые вас озадачат
А может быть сможете их перехитрить?
В повседневной жизни мы постоянно сталкиваемся с ситуациями неопределенности. Так, по крайней мере подсознательно, мы постоянно встречаемся с вероятностями....
Анализ аудиоданных с помощью глубокого обучения и Python (часть 2)
Предыдущая часть: Часть 1
Сверточные нейронные сети (CNN) схожи с обычными нейронными сетями: они состоят из нейронов с обучаемыми весами и сдвигами. Каждый нейрон получает...
Лучшие фреймворки для ИИ и машинного обучения в веб-разработке
Конкуренция на технологическом рынке чрезвычайно высока, и компании стремятся получить преимущество с помощью веб-дизайна и разработки.
Чтобы веб-приложение для бизнеса было современным и конкурентоспособным, при...
Python в 2021: расписание релизов и основные функции
На данный момент мы используем Python 3.8, а последняя стабильная версия 3.8.4 была выпущена совсем недавно. Python 3.9 уже находится на стадии бета-тестирования, а...
Разбор 7 ошибок Python
Как только задачи, стоящие перед специалистами по данным, переходят из родной научной области в сферу разработки ПО, решать их становится все труднее. И хотя...
Структуры данных: двусвязный (двунаправленный) список
Двусвязный список - это разновидность связного списка, при которой переход по элементам возможен в обоих направлениях (как вперед, так и назад), в отличие от односвязного списка.
Создание простой нейронной сети на Python
В течение последних десятилетий машинное обучение оказало огромное влияние на весь мир, и его популярность только набирает обороты. Все больше людей увлекается подотраслями этой...
10 трюков для мастеров Python
На первый взгляд Python может показаться простым языком, который любой может освоить, и многих удивляет, какого мастерства можно достичь в этом языке. Python один...
Почему Python используется для машинного обучения?
Скорее всего, вы знаете, что Python — это самый популярный высокоуровневый язык программирования с динамической семантикой. Он довольно прост для работы и чтения: его использование снижает...
4 простые визуализации данных в Python
Визуализация данных является неотъемлемой частью любых проектов в науке о данных или в проектах машинного обучения. Для того, чтобы получить некоторое представление об определенных...
Я хочу изучать AI и машинное обучение. С чего мне начать?
Когда-то я работал в Apple Store и мечтал изменить свою жизнь: вместо обслуживания техники Apple, мне хотелось ее создавать.
Я начал изучать машинное обучение (ML)...
Заставляем глубокие нейронные сети рисовать, чтобы понять, как они работают
Для нас до сих пор остаётся загадкой то, почему глубокое обучение так хорошо работает. Несмотря на то, что имеется куча догадок, почему глубокие нейронные...
Алгоритм поиска A*
Пошаговый разбор алгоритма поиска А*
Поиск короткого пути — это то, чем каждый занимается ежедневно. Алгоритм А *— один из самых популярных методов решения задач на поиск кратчайшего...
Почему в базе данных происходит взаимоблокировка?
Круг вопросов для обсуждения
Попробуем объяснить, что такое взаимная блокировка и почему она возникает в базе данных.
Напишем SQL-инструкции и искусственно вызовем взаимоблокировку, а также обсудим...
5 секретов наилучшего использования кортежей в Python
Python, являясь языком программирования общего назначения, предоставляет набор встроенных типов данных, включая int, str, tuple, list, dict и set. Четыре последних считаются контейнерами, так...
6 лучших JS-библиотек для визуализации данных и создания отчетов
Веб-инструменты для отчетов используются для представления, создания и изменения отчетов с помощью веб-интерфейса — веб-браузера. Эти инструменты могут быть встроены в сторонние приложения или...
Основы обработки естественного языка за 10 минут
Вероятно, вы находитесь здесь потому, что хотите как можно скорее научиться обработке естественного языка. Без лишних слов приступим к процессу.
Первым делом следует:
1. Установить зависимости...
Квантовые вычисления для всех
Квантовые вычисления. Наряду с квантовой запутанностью и квантовой телепортацией это модное учёное словечко широко распространено в научной фантастике и научно-популярных СМИ. Но что оно...
Статистика - это грамматика науки о данных. Часть 1
Повторение статистики для начала путешествия по науке о данных
Часть 1, Часть 2, Часть 3, Часть 4, Часть 5
«Статистика — это грамматика науки»
Данное высказывание приписывают английскому математику...
Что такое тензор?
Концепция тензора была создана в 1900 году двумя итальянскими математиками — Туллио Леви-Чивита и Грегорио Риччи-Курбастро, и, как это обычно бывает, основывалась на работе других математиков....
Экспоненциальное распределение
Мы всегда начинаем с вопроса “почему”, прежде чем переходить к формулам. Если вы понимаете, почему что-то работает, вы с большей вероятностью будете применять это...
Почему люди подсаживаются на TikTok? Алгоритм ИИ, который вас подловил
Tick Tok стремительно завоёвывает мир. Согласно данным Sensor Tower, это приложение для коротких видео было загружено более 2 миллиардов раз с App Store и...
Структуры данных: асимптотический анализ
Асимптотический анализ алгоритма - это определение математических границ/рамок его производительности во время выполнения, позволяющее очень легко находить время работы алгоритма в лучшем, среднем и худшем случае.
17 кодовых блоков, которые нужно знать каждому специалисту по обработке данных
17 кодовых блоков, которые помогут вам эффективно справляться с большинством задач и проектов. Разберем условные и итерационные циклы, списки, словари, операторы break и continue многое другое.
Эйнштейн и самая красивая из всех теорий
Британский физик-теоретик Поль Дирак (1902–1984), один из основоположников квантовой механики, однажды написал:
«Было трудно примирить ньютоновскую теорию гравитации, в соответствии с которой гравитационное взаимодействие распространяется...
Контейнеры это просто. Контейнерные технологии для начинающих
Вступление
Будь вы студент или уже состоявшийся разработчик, вы наверняка слышали о «контейнерах». Более того, вероятно вы слышали, что контейнеры — это «лёгкие» виртуальные машины....
3 простых шага для оптимизации гиперпараметров в любом Python-скрипте
Итак, вы написали Python-скрипт, который обучает и оценивает модель машинного обучения. И теперь вам хочется оптимизировать гиперпараметры и повысить производительность модели.
Я помогу!
В данной статье...
Для чего нужны стеки?
Когда я узнал, что такое стек, мне стало интересно его практическое применение. Оказалось, что чаще всего эта структура используется для имплементации операции “Отмена” (...
Как с помощью Python создавать математическую мультипликацию типа 3Blue1Brown
Для чего нужна математическая мультипликация?
Вы когда-нибудь пытались освоить математические концепции алгоритма машинного обучения с помощью образовательного ресурса 3Blue1Brown? 3Blue1Brown — это знаменитый математический канал...
Теория вероятностей, или Не стоит полагаться на случай
Понятия вероятности и случайности затрагивают практически все аспекты нашей жизни. Большинство своих решений мы принимаем, исходя из вероятности наиболее благоприятных для нас событий. Поэтому...
Все что нужно знать о древовидных структурах данных
Когда вы впервые учитесь кодировать, общепринято изучать массивы в качестве «основной структуры данных».
В конце концов, вы также изучаете хэш-таблицы. Для получения степени по «Компьютерным...
Распознавание лиц с помощью OpenCV
Читая очередную статью по OpenCV, я обнаружил, что в этой библиотеке есть собственная нейросеть для распознавания лиц с высокой точностью.
Я решил опробовать OpenCV и...
Инструменты для быстрого овладения наукой о данных
Компании типа BlobCity предоставляют множество шаблонов кода ИИ/МО. Этот инструментарий способен как облегчить работу опытных специалистов в области науки о данных, так и ускорить профессиональное становление новичков.
Анализ текста средствами языка программирования R
“Люди часто восхваляют классические произведения, даже не читая их”, — Марк Твен.
Надеюсь, что ваш опыт опровергает это высказывание Марка Твена, а также верю, что вы всё-таки...
Новый модуль временных рядов PyCaret
Новый модуль PyCaret отличается простотой и функциональностью. Рассмотрим его в действии.
Настройка Data Science окружения на вашем компьютере
После прохождения различных курсов и обучения на различных образовательных платформах, вроде Datacamp, вашим следующим шагом станет использование полученных знаний о Python, R, Git или...
Нет жесткому кодированию конфиденциальных данных в приложениях Python!
Защита конфиденциальных параметров - одна из приоритетных задач в IT-сфере. Мы расскажем, как обезопасить их в приложениях Python.
Разработка инфраструктуры и торговых ботов для ИИ-трейдинга
Примечание: данная статья преследует исключительно образовательные и развлекательные цели, не являясь прямой финансовой рекомендацией. Редакция каналов Better Programming и Nuances of Programming не несет...
Как Jupyter превратился в полноценную IDE
Jupyter Notebook - удобный инструмент для поэтапного развития идей по разработке ПО. Специалисты по данным используют его для записи процесса своей работы, экспериментов с...
Сумасшедший способ проверить, является ли число простым, используя регулярное выражение
В поисках алгоритмов для выявления простых чисел, вы где-нибудь, да встречали подобное выражение:
Что это? Это способ проверки, является ли число простым. Вам даже не...
Нейронная сеть с нуля при помощи numpy
Здесь можно посмотреть полный код.
Для того, чтобы полностью понять статью, нужны базовые знания принципов работы с numpy, линейной алгебры, работы с матрицами, дифференциации и...
ClickHouse + Kafka = ❤
Узнаем, как внедрить в проект средство аналитики, на что способен ClickHouse в сочетании с Kafka и для чего нужны здесь материализованные представления. Построим небольшую аналитическую систему.
14 наборов данных для датасайенс-проектов
Представляем 14 наборов данных, которые пригодятся для различных целей, например классификации текстов и изображений, создании системы рекомендаций, а также визуализации данных.
Декораторы в Python за три минуты
Декораторы представляют собой удобный для восприятия человеком способ расширения возможностей функции, метода или класса извне. Использование декораторов особенно полезно при декорировании (т. е. расширении)...
Тестирование больших данных: руководство для начинающих
Что такое тестирование больших данных, и с какими проблемами можно столкнуться в этом процессе? Расскажем про основные типы, способы и инструменты тестирования больших данных.
Статистика - это грамматика науки о данных. Часть 4
Повторение статистики для начала путешествия по науке о данных
Часть 1, Часть 2, Часть 3, Часть 4, Часть 5
Введение
Предположим, у нас есть диаграмма...
Как собрать кубик Рубика с помощью генетических алгоритмов
Введение
В качестве эксперимента я решил собрать кубик Рубика с помощью генетических алгоритмов (ГА). Их основная концепция заключается в том, чтобы найти решение путем имитации...
Классы данных в Python и их ключевые особенности
Значимым компонентом любого проекта в программировании являются данные, с которыми неизбежно взаимодействуют все программы. Например, при разработке веб-сайта вы должны представить тексты и изображения...
19 скрытых фич Sklearn, о которых вам следует знать
Сегодня поговорим о 19 функциях Sklearn, о которых вы не слышали. Они представляют собой элегантную замену обычных операций, которые вы выполняете вручную.
Где и как применить Python на практике? Три основные сферы его применения
Если вы собираетесь изучать такой язык программирования, как Python, или уже изучаете — у вас может возникнуть резонный вопрос:
«Для решения каких конкретных задач я могу использовать...
Краткое руководство по созданию наборов данных с помощью Python
Хотите собирать и хранить данные своих пользователей? Краткий гайд поможет вам в три шага создать собственный пользовательский датасет. Для этого вам понадобится менее часа и минимальный набор инструментов, включающий API Google Sheets и Streamlit.
Бета-распределение: интуиция, примеры, вывод
Часть 1, Часть 2, Часть 3
Бета-распределение — это распределение вероятностей по вероятностям. Мы можем использовать его для моделирования вероятностей: рейтинг кликов вашей рекламы, коэффициент конверсии клиентов,...
Развёртывание модели машинного обучения в виде REST API
В статье вы узнаете, как разворачивать модели машинного обучения и составлять прогнозы при помощи любого языка программирования, который вам нравится. Конечно, за основу вы...
Введение в потоки Redis
Redis — это хранилище структуры данных в памяти, в основном используемое в качестве базы данных, кэша и брокера сообщений. Система Redis чрезвычайно популярна среди...
Тематическое моделирование с помощью BERT
Часто, когда заказчики обращаются ко мне с просьбой провести анализ их продукта на основе НЛП, они задают один и тот же вопрос:
«Какая тема чаще...
14 проектов по науке о данных для вашего 14-дневного карантина
Проекты по визуализации
Возможно, самые короткие по срокам проекты визуализации данных! Ниже приведены три интересных набора данных, с помощью которых вы сможете пополнить свои портфолио,...
Простыми словами о рекурсии
В программировании рекурсия, или же рекурсивная функция — это такая функция, которая вызывает саму себя.
Рекурсию также можно сравнить с матрёшкой. Первая кукла самая большая, за ней...
Как за секунды обрабатывать DataFrame с миллиардами строк
Анализ больших данных в Python переживает свой ренессанс. Всё началось с NumPy, которая тоже в каком-то смысле причастна к инструменту, с которыми я вас...
Как составить Data Science портфолио? Часть 1
Как получить работу в области Data Science? Во-первых, нужно знать основы статистики, машинного обучения, программирования и т.д. Во-вторых, вам нужно будет составить портфолио. Да, несомненно,...
Стилизация фотографий под мультфильмы с помощью Python
Чтобы придать фотографиям особый эффект рисованного мультфильма, можно применить на них методы машинного обучения Python
Как вы, наверное, знаете, рисование или создание мультфильмов не всегда делается...
Байесовский вывод - интуиция и примеры
Часть 1, Часть 2, Часть 3
Зачем кто-то вообще изобрел байесовский вывод?
Чтобы обновлять вероятность по мере поступления новых данных.
Суть байесовского вывода в том, чтобы объединить...
Как создавать анимированные графы в Python
Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Структуры данных: связный список
Связный список - последовательность структур данных, связанных ссылками - вторая по частоте использования после массива структура данных. Рассмотрим основные операции и покажем пример на языке С.
4 альтернативы Pandas: ускоренное выполнение анализа данных
Бенчмарк производительности популярных инструментов анализа данных заставит вас иногда отказываться от Pandas. Каждый из этих инструментов - Polars, DuckDB, Vaex и Modin - при анализе данных на кластере машин работает гораздо быстрее, чем Pandas.
5 рекомендаций по оптимизации запросов SQL
Никогда не поздно проанализировать свой стиль программирования запросов SQL, выявить недостатки и исправить. Рассмотрим 5 способ улучшить запросы и повысить свою продуктивность.
Шесть рекомендаций для начинающих специалистов по Data Science
Навыки, необходимые для работы
Сфера data science пользуется большим спросом, однако для трудоустройства вам потребуется опыт работы. Несмотря на это, у множества лучших специалистов стоит самый...
Топ — 9 фреймворков в мире искусственного интеллекта
Сначала были роботы, затем ассистенты Google Now и Siri, а сегодня новый ИИ — Google Duplex. Похоже, искусственный интеллект добился определенных успехов в том чтобы стать...
Объясняем производящую функцию моментов
1. Начнем с главного — что такое “момент” в вероятности и статистике?
Скажем, нас интересует случайная переменная X.
Моменты — это ожидаемые значения X, например, E(X), E(X²), E(X³) и т.д.
...
Почему теория графов круче, чем вы думали
Что такое графы?
Спросите специалиста из любой области науки, как работает предмет его исследований. Наверняка он предложит вам рассмотреть некую систему с существующими внутри нее связями....
Сопряженное априорное распределение
Часть 1, Часть 2, Часть 3
1. Что такое априорное распределение?
Априорная вероятность — это вероятность события до того, как мы получили дополнительные данные. В байесовском выводе априорное распределение — это...
5 подводных камней нереляционных баз данных
Когда речь заходит о нереляционных базах данных, не все видят две стороны одной медали: многие упускают из виду то, что у этих баз данных...
Погружение в графы
Графы в большинстве своем представляют собой неупорядоченные деревья. В основном это утверждение касается ненаправленных и невзвешенных графов. Однако оно остается в силе и в...
Алгоритм XGBoost: пусть он царствует долго!
Хоть с того момента и прошло 15 лет, я до сих пор помню первый день на моей первой работе. Я только-только выпустился из ВУЗа...
Годовой план изучения науки о данных
2020-ый наконец-то закончился, а значит уже можно начать планировать 2021-ый. Для начала зададим себе вопрос: чему мы хотим научиться в этом году?
Многие выбирают в...
Оптимизация работы баз данных с PostgreSQL 12
PostgreSQL претендует на звание самой передовой базы данных с открытым исходным кодом в мире, и вполне заслуженно. Основные технические возможности, производительность и рабочие характеристики...
Структуры данных: кольцевой (циклический, замкнутый) связный список
Кольцевой связный список - это разновидность связного списка, при которой первый элемент указывает на последний, а последний - на первый. Кольцевой связный список можно сделать как из односвязного , так и из двусвязного списка.
NoSQL убивает SQL?
На прошлой неделе мой друг переслал мне письмо от успешного предпринимателя, который утверждает, что “SQL мёртв”.
Предприниматель убеждён, что чрезвычайно популярные NoSQL базы данных, такие...
25 прикольных вопросов для собеседования по машинному обучению
Могут ли вопросы на собеседовании по машинному обучению быть одновременно прикольными и глубокими?
25 вопросов, которые не просто проверят знания и навыки кандидата, но и...
7 трюков pandas для науки о данных
1. Анализ образцов датафреймов с помощью df.groupby().__iter__()
Обычно исследовать набор данных строка за строкой или группа за группой в блокнотах Jupyter сложнее, чем в Excel....
Машинное обучение. С чего начать? Часть 2
Предыдущая часть: Часть 1
Очистка данных
В любом проекте приходится заниматься «чисткой данных». К следующему этапу можно переходить только после приведения в порядок ваших данных.
Чаще всего...
4 шага к совершенству: правила для идеальных функций
Функции — это блоки кода, выполняющие требуемые действия. Они являются фундаментальными составляющими любого проекта разработки. Без них мы не сможем ни обработать данные, ни представить их...
Как построить идеальное хранилище данных
Может показаться, что в последние годы многое изменилось в сфере сбора и хранения данных. Такие вещи, как NoSQL, «Big Data», различные графические и потоковые...
5 базовых статистических концептов, которые должен знать каждый специалист по обработке данных
В таком искусстве, как наука о данных, статистика может оказаться мощным инструментом. В широком смысле, статистика означает использование математики для технического анализа данных. Базовая...
4 пакета Python для причинно-следственного анализа данных
Эти 4 пакета Python - Causalinference, Causallib, Causalimpact и DoWhy - помогут овладеть навыками причинно-следственного анализа. Изучив эту область экспериментальной статистики, вы сможете устанавливать и обосновывать причинно-следственные связи при исследовании самых различных данных.
Исследование данных - основные понятия
Данные многое вам скажут, если вы готовы слушать.
- Джим Бергесон
Данные можно назвать Богом. Все на свете проверяется только благодаря данным. Вы не сможете претендовать...
Простое руководство по визуализации данных в машинном обучении
Создание информационных визуализаций - важнейший процесс, помогающий определить эффективность модели МО. Библиотека Yellowbrick, обладающая богатым функционалом, значительно упростит этот процесс.
Python 3.9
Что нового ожидает нас в этой версии и в будущих релизах?
Вышел полный релиз Python 3.9!
Очевидно, что эта версия знаменует собой переломный момент в эволюции Python....
Структуры данных: основы алгоритмов
Как написать алгоритм? Это, скорее, зависит от задачи и ресурсов. Четко определенных стандартов их написания не существует. Рассмотрим же характеристики алгоритмов и их сложности.
MongoDB: введение, преимущества и настройка среды
В данной серии руководств объясним ключевые концепции MongoDB, необходимые для создания и развертывания высоко масштабируемой базы данных с акцентом на производительность.
5 минут на машинное обучение
Теорема и наивный классификатор Байеса
Наивный классификатор Байеса — это набор простых и эффективных алгоритмов машинного обучения для решения различных задач классификации и регрессии. Эта...
6 алгоритмов машинного обучения, которые должен знать каждый исследователь данных
Машинное обучение - одна из тех областей, которые должен знать каждый, кто изучает науку о данных. Предлагаем описание 6 ключевых алгоритмов контролируемого МО, изложенное простым, доступным языком.
Руководство по структурам данных и алгоритмам: введение и настройка среды
Различные типы структур данных так или иначе используются почти в каждом корпоративном приложении. Пройдя это руководство, вы получите четкое представление о структурах данных, необходимое для понимания сложности приложений корпоративного уровня.
9 важных сниппетов Python для оптимизации работы со скриптами
Ускорение работы на Python
Написание скриптов на Python для решения самых разных задач — одно из моих любимых занятий. Когда самостоятельно доходишь до ответа, который предлагает...
Python: 5 ошибок в применении охвата списка
Охват списка, (далее ОС), бесспорно, самая мощная возможность Python, которая может оказаться невероятно эффективным инструментом, но может и сильно снизить читаемость кода. Рассмотрим несколько...
Топ-10 ошибок анализа данных
Аналитик данных — лучший в статистике среди программистов и лучший программист среди статистиков. В этом топе обсудим, как программисту стать лучше в статистике.
Примеры, код...
Сложные ИИ-модели созданы с помощью некачественных данных
Те, кто занят в сфере искусственного интеллекта, в том числе и в проекте Deepnews, часто презентуют свои новейшие модели как инновационные и эффективные средства...
Как прошло мое собеседование в Uber на должность старшего инженера-разработчика
Что нужно для подготовки? Разберем структуру собеседования: как устроен процесс, что происходит на каждом раунде, какие задаются вопросы.
GitHub Codespaces: быстрая разработка на ходу с Flutter
В прошлую пятницу мне на почту пришло приглашение попробовать бета-версию GitHub Codespaces!
Я сразу же взял один из своих примерных проектов на Flutter (Fluttersaurus) и...
Как запросить датафрейм Pandas с помощью SQL
Пользуетесь ли вы SQL в Pandas? Узнайте, как запросить датафрейм Pandas с помощью SQL, используя возможности и учитывая ограничения библиотеки Pandasql.
Бэкенд-разработчик: какие знания нужны для трудоустройства
Представляем вашему вниманию дорожную карту, которая позволит получить перспективную и высокооплачиваемую должность бэкенд-разработчика.