Анализ данных при помощи 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

 

 

 

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

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

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