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

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

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

… 

 

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

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

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

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

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

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

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

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

… 

 

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

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

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

… 

 

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

В первом посте я написал про то, какие графики можно построить при помощи matplotlib и pandas. А теперь посмотрим на то, с чего начинается любой анализ данных на самом деле. В этом переводе рассматривается как загрузить набор данных, рассмотреть с какими переменными мы имеем дело и сделать какие-то первые выводы.

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

… 

 

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

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

Для анализа данных и того, чтобы понять собственно, что за эти данными скрывается было придумано очень много сложных и не очень инструментов. Нас интересуют самые основные библиотеки, которые применяются при анализа данных при помощи Пайтона: NumPySciPy, Matplotlib и Pandas. При помощи них мы познакомимся с тем, с чего начинается любое исследование – посмотрим на имеющиеся данные и попытаемся понять, с чем имеем дело. В англоязычной литературе это называется Exploratory Analysis. При написании этого поста я нашёл несколько IPython конспектов, на основе которых и оформляю этот пост. Ссылки на них приведены в конце.

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

… 

 

Gag Driven Education

Собственно, больше всего полезного опыта и знаний я получил, желая сделать что-то совсем бесполезное и тупое. Например — писал бота, который смотрит кто когда и во сколько заходит вконтакт (так я и выучил Python), или вот например сейчас, пока битый час искал нужный параметр, чтобы построить нужный график в R.

А виной всему послужила мысль о том, что «Сетевой маркетинг — это бесконечная история о том, как люди пытаются бороться с первым началом термодинамики». Чтобы проиллюстрировать эту мысль, я задался целью сделать вот этот график:

physistsИтак, нужно было сделать простейший stacked barplot, что весьма просто делается командой barplot(). В итоге я вспомнил, как правильно инициализировать объекты в R и докопался до дао параметра xlim:

#Инициализируем данные
mydata<- data.frame(x=1,y=rep(0,100))
mydata[100,]<-1

#Тут ключевое — это as.matrix() и table(), потому что без них выйдет полная фигня, а также xlim — который позволяет сделать график не таким широким
barplot(as.matrix(table(mydata$y)), width=0.5,xlim=c(0,5),beside = FALSE,main=”Количество физиков в сетевом маркетинге”,
, col=c(“darkblue”,”red”),
legend = c(‘Все остальные’,’Физики’))

Теперь собственно, способы инициализации пустого фрейма:

1) Использование rbind

До цикла:

d = NULL

Внутри loop:

d = rbind(d, data.frame(x, y, z))

2) Способ быстрее, но требует знать конечный размер объекта

d = data.frame( x=rep(0, 10), y=rep(0,10), z=rep(0,10))

В цикле:

d[i, ] = c(x, y, z)

3) Сначала инициализируем нужные векторы, а затем:

x = NULL
y = NULL
z = NULL

Затем:

d = data.frame(x, y, z)

 

 

 

Data Mining Cheatsheet Mind Map

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

Data Mining Mind Map

Data Mining Mind Map

 

 

 

Самые интересные, на мой взгляд лекции с ШАД Яндекса

Combinatorial Theory of OverfittingKonstantin Vorontsov (Russia)
Active learning to rankVladimir Gulin (20 min).
это очень крутая лекция от автора исходного алгоритма, факт его доклада показывает на каком уровне проходит конференция в Яндексе:
Explaining AdaBoostRobert Schapire (USA)
MatrixNet is Yandex’s implementation of Gradient Boosted Decision Tree algorithm (GBRT)Andrey Gulin (Russia)

 

10 вещей, которые говорят о том, что ты занимаешься анализом данных

10. Обычно ты думаешь «Как же много данных, так мало памяти».
9. Ты знаешь, что такое гетероскедастичность.
8. Ты знаешь вероятность того, что пойдёт дождь лучше синоптиков.
7. Обычно ты смотришь на свой чек в магазине, пытаясь предсказать, что ты купишь в следующий раз, основываясь на статистике.
6. Ты считаешь, что анализ данных это круто, и ты даже сформулировал теорему, чтобы это доказать.
5. После 3х часов ночи, цифры иногда отвечают на твои вопросы. Вслух.
4. Когда ты ночью считаешь овец, чтобы уснуть, ты не можешь уснуть.
3. Ты догадываешься, где спрятаны скрытые закономерности.
2. В субботней утро у тебя начинается похмелье Шапиро-Уилка.
1. Ты можешь улучшить эффективность любого процесса, просто взяв статистику за последний год и проведя 10 минут в консоли питона.

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