Scikit-Learn: тонкие вопросы о реализации методов машинного обучения

Рассмотрим несколько с виду простых вопросов об алгоритмах машинного обучения и их реализации, на которые, однако, немногие смогут верно ответить (можете попробовать сами – не читая объяснений, также в посте приведены дополнительные вопросы специально оставленные без ответа). Материал для среднего уровня (тех, кто уже знает ML и библиотеку sklearn).

Читать далее

Python и Pandas: делаем быстрее

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

bystro.jpg

Читать далее

Считаем категории

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

count Читать далее

Случайный лес (Random Forest)

Случайный лес — один из самых потрясающих алгоритмов машинного обучения, придуманные Лео Брейманом и Адель Катлер ещё в прошлом веке. Он дошёл до нас в «первозданном виде» (никакие эвристики не смогли его существенно улучшить) и является одним из немногих универсальных алгоритмов. Универсальность заключается, во-первых, в том, что он хорош во многих задачах (по моим оценкам, 70% из встречающихся на практике, если не учитывать задачи с изображениями), во-вторых, в том, что есть случайные леса для решения задач классификации, регрессии, кластеризации, поиска аномалий, селекции признаков и т.д.

random_forest.jpg Читать далее

Питон (Python)

Сейчас практически все, кто занимается анализом малых данных, делают это с помощью Питона… а ведь ещё 5 лет назад не было пакетов типа scikit-learn и единственной средой с реализованными бустингом, случайным лесом и т.п. оставался R (+ RStudio, т.к. никаких ноутбуков тоже не было). Или приходилось реализовывать все алгоритмы «с нуля», что я и делал в том же Matlab-е. Ещё были разные программки на С/С++ типа libSVM, SVMlight

%d0%bf%d0%b8%d1%82%d0%be%d0%bd

Читать далее

Python: категориальные признаки

Увидел несколько «немного неуклюжих» программ на Питоне, в которых авторы возились с категориальными признаками и решил написать небольшую заметку: как делать базовые вещи в несколько строк. Все примеры выложены на гитхабе, а ниже пояснения.

contries

Читать далее

NumPy — делаем быстрее

Чтобы ускорить выполнение кода на интерпретируемом языке программирования, следуют известным советам по избеганию использования циклов, своевременному выделению памяти, применению параллелизации и встроенных средств линейной алгебры. Для М-языка (Matlab) все советы можно найти в гл.15 уже старенькой книги автора. В принципе, они все годятся и для библиотеки NumPy языка Python, поскольку она практически копирует функционал Матлаба. Но кроме самих советов есть некоторые тонкости их использования. Сейчас на одном конкретном примере покажем, как можно ускорить выполнение кода.

speed

Читать далее

Знакомство с Pandas (слайды)

Для магистров ВМК МГУ подготовил презентацию по пакету Pandas. С удивлением обнаружил, что по очень популярной среди питонистов панде совсем нет образовательных презентаций. Например, на www.slideshare.net нет ни одного материала по этому пакету (только среди обзоров пакетов для аналитиков данных). Поэтому исправил данный недостаток и закачал туда свою презенташку. Читать далее

Pandas

Чтобы в Питоне работать с данными, в которых не все признаки вещественные, приходится использовать пакет Pandas. В нём реализован тип дата-фрейм (который соответствует аналогичному в R). По сравнению с R здесь всё менее интуитивно, например, специфическая индексация элементов дата-фрейма (которую, впрочем, нетрудно освоить). Очень хороших учебных пособий по Панде нет, но на станице пакета размещено pdf-описание, в котором, в принципе, всё необходимое есть. Проще на основе описания создать себе ноутбук с подсказками основных функций. Мой лежит здесь.