План

  • Введение
  • Data processing с Pandas
  • Построение моделей с Scikit-learn

Data Science 101


1. Скачайте репозиторий

https://github.com/woters/ds101

2. Или откройте его через binder

http://mybinder.org/repo/woters/ds101

3. Или через nbviewer

http://nbviewer.ipython.org/github/woters/ds101


IPython & Jupyter

http://jupyter.org/

IPython - интерактивный shell для Python. У него очень много достоинств, но основное в том, что вы, как data scientist, имеете возможность очень быстро протестировать свои идеи не создавая новых файлов.

Jupyter блоктон это такая оболочка в форме веб приложение вокруг IPython shell, которая позволяет создавать и расшаривать документы, которые содержат код, графики, визуализации и текст. Jupyter умеет работать не только с Python, а еще с R, Julia, Scala...


In [80]:
from IPython.display import IFrame
IFrame('http://jupyter.org/', width='100%', height=350)


Out[80]:

Pandas

http://pandas.pydata.org

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


In [81]:
from IPython.display import IFrame
IFrame('http://i.giphy.com/12Y8uwQsnpizCw.gif', width='100%', height=350)


Out[81]:

In [82]:
from IPython.display import IFrame
IFrame('http://pandas.pydata.org/', width='100%', height=350)


Out[82]:

Scikit-Learn

http://scikit-learn.org/

Существует несколько Python библиотек для Machine Learning. Одна из лучших - Scikit Learn, в ней уже реализованно большое количество оптимизированных ML алгоритмов. Scikit Learn отличается чистым кодом, понятным API и полной документацией.


In [1]:
from IPython.display import IFrame
IFrame('http://scikit-learn.org/', width='100%', height=350)


Out[1]:

Давайте немного попрактикуемся в использовании Jupyter. Help, doc links

Jupyter блокнот состоит из ячеек, в них вы можете писать как текст, так и код.
Для того, чтобы выполнить код в ячейке нажмите Shift + Enter.


In [8]:
print('hello')


hello

In [30]:
list(range(10))


Out[30]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Keyboard Shortcuts:

  • shift/alt + enter
  • tab
  • esc
  • a(bove)
  • b(elow)
  • Y - to code
  • M - to markdown



Если вы не знаете, как использовать ту, или иную функцию, добавьте в конце функции знак вопроса и вы получите документацию по ней.


In [17]:
list?

В IPython встроенны несколько полезных magic commands, одна из них %time позволяет измерить время выполнения вашего кода.


In [56]:
%time _ = [i for i in range(1000)]


CPU times: user 47 µs, sys: 1e+03 ns, total: 48 µs
Wall time: 52 µs

%timeit (%% - multiline) выдает усредненное значение, выполнив в цикле наш код.


In [83]:
%%timeit 
_ = list(range(200))


100000 loops, best of 3: 2.28 µs per loop

Также Jupyter позволяет запустить команды системного шелла:


In [75]:
! echo "print('wasup!')" > my.py

In [79]:
! ls


0-intro.ipynb   1-pandas.ipynb  3-sklearn.ipynb LICENSE         README.md       data            environment.yml examples        exercises       images          my.py           resources.md

Выполним созданный файл


In [78]:
%run my.py


wasup!

5 минут попрактиковаться с Jupyter.


In [ ]: