Running cv2 in virtualenv on Mac

You may install cv2 using one of the available guides, f.e. this one.

And then just symlink so files into required virtualenv:

ln -s /usr/local/opt/opencv/lib/python2.7/site-packages/cv2.so /Users/user/.virtualenv/virtualenv/lib/python2.7/site-packages/

How to solve circular / recursive import error in python

Circular / recursive import error occurs when you try to

import a1 from a.py

in the b.py, which is also used in a1 in a.py.

The solution is to import functions directly in the function body, not in the beginning of the module.

If you have a better approach, you are very welcome to suggest it on the SO question.

Running Theano-based DeepMind DQN on Mac

Theano-based implementation of Deep Q-learning is available on github. During the DeepHack hackathon our team «’drop table table users;» (which consists of me, Alexey Ozerin, Alexander Notchenko, Mikhail and Artur Kuzin) managed to get this code up and running on Ubuntu in a couple of minutes because of the provided dep_script.sh. But running this code on Mac resulted in some problems, which we were able to solve succeffully.

Continue reading

Перенаправление системных потоков (на примере stdout) в python

Так можно делать, только в приложениях, который никогда не будет поддерживать опасный психопат, который знает где вы живёт.

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

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

output = out.split('_')[0] + '_funnel.out'

o = open(output,'a')

#Saving pointer to native stdout
saveout = sys.stdout
sys.stdout = open(output, 'w')

print_something_using_print()
print "one more line"

#Returning ouput back to sys
sys.stdout = saveout

sys.stdout =sys.__stdout__

Оптимизация валютного инвестиционного портфеля

Оптимизация валютного инвестиционного портфеля

Оригинал этого поста был написан в блоге Yhat — компании, развивающей онлайн-платформу по обработке данных Ryan’ом. Этот пост посвящен тому, как оптимизировать портфель инвестиций с целью получить максимальную прибыль при желаемом уровне риска. Несмотря на то, что в прримере описывается выбор инвестиций в иностранную валюту, это можно использовать для любых других вариантов вложений денег, потому что они все рассчитываются при помощи одной математической модели.
Continue reading

Установка Ipython, SciPy, NumPy на Mac

Оказалось, что нельзя просто так взять и поставить ipython notebook на Mac. Даже используя менеджер пакетов brew.

Собственно, в этом небольшом руководстве содержится информация о том, как поставить всё необходимое для работы над анализом данных на Mac.

Continue reading

Предсказание количества лайков. Сравнение несколько регрессионных алгоритмов.

В начале апреля я узнал о суперкрутом конкурсе SNA Hackaton. К сожалению, узнал я лишь за неделю, но и для того, чтобы принять в нём участие, надо было доделать более важные дела. Суть конкурса в том, что участникам выдавался небольшой (~500 МБ) набор данных, содержащий текст поста в Одноклассниках, его время, идентификатор и идентификатор группы, а также собранные им лайки.

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

Честно сказать, результатом пары бессонных ночей я доволен и не доволен одновременно. С одной стороны, хочется сказать спасибо организаторам за то, что дали такую прекрасную возможность проанализировать данные и построить и проверить все эти гипотезы. Благодаря этому конкурсу я немного больше узнал про SciKit-learn и NLP (Natural Language Processing, а не то, что вы подумали). Но с другой стороны, у меня появилось желание получить модель получше, которое я пока, к сожалению, не реализовал.

Поскольку блог сжимает оригинальный html файл, посмотреть результаты исследования можно и с нормальной версткой.
Continue reading

Анализ 300 лучших комментариев на TJournal.ru

Когда ты любишь то, чем ты занимаешься – это болезнь. Хорошо, если тебе нравится не коллекционировать марки, потому что мало кто способен выслушивать то, как ты можешь часами рассуждать насчёт отличий английских марок 30х от бельгийских, которые выпускались в 40х. Просто прекрасно, если тебе нравится валить боком или кататься на сноуборде, потому что тогда наверняка у тебя будет парочка историй, которые будут интересны кому-то, кроме таких же сумасшедших как ты.

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

Continue reading

Манипуляция и обработка данных в Python (Data wrangling and munging)

Тем временем, я продолжаю переводить статьи с примерами синтаксиса, посвящённые тому, как использовать Pandas для анализа данных. В этом переводе нет графиков, зато полностью раскрывается тема того, как можно обращаться с массивом данных, совмещать несколько в один, обращаться к столбцам, а также различным образом группировать и выбирать данные из набора.

Если что-то отображается некорректно, то можно посмотреть оригинальный html файл или сгенерировать его из ipynb исходника.

Другие статьи по работе с данными в Python

Шпаргалка по статистическому анализу

Анализ данных при помощи Python. Основные статистики и обзор данных (Exploratory Analysis)

Анализ данных при помощи Python. Основные статистики и обзор данных (Exploratory Analysis) часть 2

Анализ данных при помощи Python. Графики в pandas и matplotlib.

Continue reading

Анализ данных при помощи Python. Основные статистики и обзор данных (Exploratory Analysis) часть 2

В первом и втором я показал, как можно начинать исследование данных. Сегодня публикую ещё один перевод, на основе ещё одной конспекта про то, как это делается. В отличии от первых двух постов, тут будет больше синтаксиса с манипуляцией данными (data munging).

Если что-то отображается некорректно, то можно посмотреть оригинальный html файл или сгенерировать его из ipynb исходника.

Continue reading