Наука о данных — различия между версиями

Материалы по математике, 2018-19 учебный год
Перейти к: навигация, поиск
(Материалы)
(Занятия 23-25: SQL)
 
(не показаны 24 промежуточные версии 2 участников)
Строка 69: Строка 69:
 
** Дополнительно: [http://pandas.pydata.org/pandas-docs/stable/10min.html 10-минутное введение (обзор возможностей)], [http://pandas.pydata.org/pandas-docs/stable/tutorials.html#pandas-cookbook pandas-cookbook], [http://pandas.pydata.org/pandas-docs/stable/indexing.html индексация и выбор данных (подробно)]
 
** Дополнительно: [http://pandas.pydata.org/pandas-docs/stable/10min.html 10-минутное введение (обзор возможностей)], [http://pandas.pydata.org/pandas-docs/stable/tutorials.html#pandas-cookbook pandas-cookbook], [http://pandas.pydata.org/pandas-docs/stable/indexing.html индексация и выбор данных (подробно)]
 
* [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps06/ps06.ipynb ДЗ№6]
 
* [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps06/ps06.ipynb ДЗ№6]
 +
 +
=== Занятие 10: примеры использования pandas ===
 +
* [http://nbviewer.math-hse.info/url/math-info.hse.ru/f/2018-19/nes-ds/lecture-pandas2.ipynb ipynb-файл с занятия]
 +
 +
=== Занятие 11: продвинутые возможности pandas ===
 +
* [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2013.ipynb Погода и мультииндексы]
 +
* [http://nbviewer.math-hse.info/url/math-info.hse.ru/f/2018-19/nes-ds/lecture-pandas-pivot-join-weather.ipynb pivot-melt, merge-join] (сырой ipynb с занятия)
 +
 +
=== Занятие 12: ещё о pandas ===
 +
* [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/pandas-datareader-pics.ipynb Чтение данных из World Bank, мультииндексы и картинки]
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps07/ps07.ipynb ДЗ№7]
 +
 +
=== Занятия 13 и 14: веб-скреппинг ===
 +
* Извлечение данных из веб-страниц с помощью BeautifulSoup и requests: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%208.ipynb конспект], [http://www.youtube.com/watch?v=3nPksaHTMGI видео]
 +
** Оригинальная документация (англ.): [http://docs.python-requests.org/en/latest/ requests] [http://www.crummy.com/software/BeautifulSoup/bs4/doc/ BeautifulSoup].
 +
* [http://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps08/ps08.ipynb ДЗ№8]
 +
 +
=== Занятие 15: продвинутый скреппинг: RoboBrowser и Selenium ===
 +
* Извлечение данных с помощью RoboBrowser: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Эмуляция-действий-с-браузером конспект],
 +
** Оригинальная документация (англ.): [http://robobrowser.readthedocs.org/en/latest/ RoboBrowser]
 +
* Selenium: [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb#Selenium конспект], [http://selenium-python.readthedocs.org/ неофициальная документация] по Python-Selenium (её проще читать, чем официальную),
 +
* [https://youtu.be/tC618tbA5Yk?t=11m10s видео].
 +
 +
=== Занятие 16: REST API: XML/JSON ===
 +
* Работа с открытыми API с помощью XML. [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%209.ipynb конспект] [http://www.youtube.com/watch?v=5aelkl2HAow видео].
 +
** Документация по API MediaWiki (движка Википедии): [https://www.mediawiki.org/wiki/API:Main_page основная на английском], [https://www.mediawiki.org/wiki/API:Main_page/ru на русском], [https://en.wikipedia.org/w/api.php автогенерированная на английском], [https://ru.wikipedia.org/w/api.php на русском].
 +
* JSON и API. [http://nbviewer.math-hse.info/github/ischurov/pythonhse/blob/master/Lecture%2010.ipynb конспект], [http://www.youtube.com/watch?v=tC618tbA5Yk видео]
 +
** [https://ischurov.github.io/jupyter-json.html Интерактивное исследование JSON в Jupyter]
 +
* [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps09/ps09.ipynb ДЗ №9]
 +
 +
=== Занятие 17: немного о математике и визуализациях ===
 +
* SymPy & Plotly [http://math-info.hse.ru/f/2018-19/nes-ds/sympy-and-plotly.html сырой конспект с занятия] ([http://math-info.hse.ru/f/2018-19/nes-ds/sympy-and-plotly.ipynb исходник])
 +
* [https://docs.sympy.org/latest/index.html SymPy] (символьные вычисления в Python): официальная документация
 +
* [https://plot.ly/python/ plot.ly] (для Python)
 +
 +
=== Занятие 18: ещё немного о математике о визуализациях ===
 +
* scipy (функции для решения математических задач) & plotly.express (быстрая визуализация данных в plot.ly) [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/optimize-and-plotly-express.ipynb сырой конспект с занятия]
 +
* [https://scipy-lectures.org scipy-lectures]: тьюториалы по scipy.
 +
* [https://nbviewer.jupyter.org/github/plotly/plotly_express/blob/master/walkthrough.ipynb plotly.express]: примеры использования.
 +
== Часть 2 ==
 +
=== Занятие 19: введение в R ===
 +
* [https://cloud.r-project.org скачать R] [https://www.rstudio.com/products/rstudio/download/ скачать RStudio] (Desktop, Open Source License), [https://rstudio.cloud rstudio.cloud] (можно ничего не скачивать).
 +
* [https://swcarpentry.github.io/r-novice-inflammation/13-supp-data-structures/ структуры данных],  [https://www.datamentor.io/r-programming/data-frame/ dataframe], [https://swcarpentry.github.io/r-novice-inflammation/15-supp-loops-in-depth/index.html циклы] [https://swcarpentry.github.io/r-novice-inflammation/02-func-R/index.html функции], [http://github.com/rstudio/cheatsheets/raw/master/base-r.pdf шпаргалка по базовому R].
 +
* Что было на занятии: [http://math-info.hse.ru/f/2018-19/nes-ds/rhistory.txt история команд], [http://math-info.hse.ru/f/2018-19/nes-ds/notebook.nb.html R Notebook]
 +
 +
=== Занятие 20: tidyverse ===
 +
* Установка tidyverse: <code>install.packages("tidyverse")</code>. Возможно, вам придётся установить переменную окружения [https://code.adonline.id.au/changing-the-default-library-folder-path-in-r/ R_LIB_USER], чтобы она указывала на какой-нибудь каталог, в который вы имеете право записывать файлы (туда будут устанавливаться библиотеки).
 +
* [https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html введение в dplyr].
 +
* [https://r4ds.had.co.nz/tidy-data.html tidyr] (заблокировано в РФ): <code>gather</code> и <code>spread</code>.
 +
* [https://datacarpentry.org/dc_zurich/R-ecology/04-dplyr группировка и агрегирование].
 +
 +
=== Занятие 21: ggplot2 ===
 +
* Что было на занятиях: [http://math-info.hse.ru/f/2018-19/nes-ds/r-ggplot2.html R Notebook].
 +
* [https://r4ds.had.co.nz/data-visualisation.html введение в ggplot2] (заблокировано в РФ), [https://www.r-graph-gallery.com галерея визуализаций в R], [http://www.ggplot2-exts.org/gallery/ галерея дополнений к ggplot2].
 +
 +
=== Занятие 22: регулярные выражения ===
 +
* [https://habr.com/ru/post/349860/ Подробный текст про регулярки]
 +
* [https://regex101.com regex101] — визуальный отладчик регулярных выражений.
 +
 +
=== Занятия 23-25: SQL ===
 +
* конспекты занятий: [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sql.ipynb раз], [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sql2.ipynb два], [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sql3.ipynb три].
 +
* [https://www.w3schools.com/sql/ SQL Tutorial] (W3Schools) — я в основном следовал этому тьюториалу.
 +
* [https://blog.jooq.org/2016/03/17/10-easy-steps-to-a-complete-understanding-of-sql/ Полезная статья] для понимания SQL.
 +
* Библиотека [https://docs.python.org/3/library/sqlite3.html sqlite3] в Python.
 +
* [http://www.sqlitetutorial.net SQLite Tutorial]
 +
* [https://nbviewer.jupyter.org/url/python.math-hse.info/static/assignments_release/nes-datascience2019/ps11/ps11.ipynb ДЗ№11]
 +
 +
=== Занятие 26: объектно-ориентированное программирование ===
 +
* [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/oop.ipynb конспект занятия]
 +
 +
=== Занятие 27: SQLAlchemy ===
 +
* [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/sqlalchemy.ipynb конспект занятия]
 +
 +
=== Занятие 28: элементы обработки естественного языка ===
 +
* [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/nlp.ipynb конспект занятия]
 +
 +
== Проекты ==
 +
=== Весенний проект ===
 +
* [[/Весенний проект|критерии]] (срок сдачи: 15 апреля, 23:00)
 +
Примеры хороших работ:
 +
* [https://nbviewer.jupyter.org/url/math-info.hse.ru/f/2018-19/nes-ds/spring-projects/anna-schetkina.ipynb PhD Guide Project], автор Анна Щёткина.
 +
 +
=== Летний проект ===
 +
* [[/Летний проект|критерии]] (срок сдачи: 12 июня, 23:00)
  
 
== Данные ==
 
== Данные ==
* [http://math-info.hse.ru/f/2018-19/spb-python/movie_metadata.csv imdb-5000]
+
* [http://math-info.hse.ru/f/2018-19/spb-python/movie_metadata.csv imdb-5000] (источник: https://www.kaggle.com/carolzhangdc/imdb-5000-movie-dataset)
 +
* [http://math-info.hse.ru/f/2018-19/nes-ds/gradebook.sqlite gradebook.sqlite]

Текущая версия на 12:36, 2 июня 2019

Курс ведёт Илья Щуров.

Содержание

Инструменты

Python

Мы используем Python версии 3 и оболочку Jupyter (ранее известную как IPython Notebook). Чтобы их установить, проще всего скачать пакет Anaconda. Обратите внимание: вам нужна версия с Python 3.x (в настоящее время — Python 3.7).

После установки Anaconda у вас появится:

  • Под Windows: в меню «Пуск» пункт «Anaconda», в нём подпункт «IPython Notebook».
  • Под Mac OS X: приложение Anaconda Launcher, в нём пункт ipython-notebook.

После запуска IPython Notebook у вас откроется окно браузера (и лучше пусть это будет не Internet Explorer, под ним IPython Notebook работает с некоторым скрипом, а иногда не работает) со списком файлов. В нём надо выбрать New → Python 3. Откроется новая вкладка браузера, в ней будет запущен пустой notebook, состоящий из отдельных ячеек (cells). В ячейку с кодом можно вписать код и нажать Shift+Enter — он выполнится и вам покажут тут же результат.

Для установки дополнительных пакетов вам необходимо открыть консоль (это может быть Anaconda Prompt под Windows или стандартный «Терминал» под Mac OS или Linux) и набрать команду conda install <название пакета> или pip install <название пакета> (например, conda install seaborn).

Вы также можете использовать Google Colaboratory (но интерфейс там будет немножко отличаться от интерфейса Jupyter).

Работа с ipynb-файлами

Чтобы скачать ipynb-файл, нужно кликнуть на иконку в красном кружке правой кнопкой и выбрать «сохранить файл как» или аналогичный пункт меню

Мы выкладываем материалы курса в виде ipynb-файлов. По ссылкам ниже вы можете просмотреть эти файлы. Если вы хотите открыть этот файл у себя, то вам необходимо скачать его (нажав на иконку в правом верхнем углу страницы с лекцией) и положить в каталог, из которого Jupyter открывает ноутбуки: например, воспользовавшись кнопкой Upload в самом Jupyter (на экране со списком файлов). Также этот каталог можно найти по строчке Serving notebooks from local directory: /home/user/IPython, появляющейся в чёрненьком окошке при запуске Jupyter; здесь /home/user/IPython — искомый путь.

Чтобы загрузить файл в Jupyter Notebook, можно нажать на кнопку Upload

Материалы

Занятие 1: Первое знакомство

Занятие 2: Списки и цикл for

Занятие 3: Ввод-вывод списков, проверка условий, цикл while

Занятие 4: Функции

Занятие 5: Списковые включения, zip, двумерные массивы и словари

Занятие 6: Сортировка

Занятие 7: Работа с файлами

Занятие 8: Numpy и картинки

Занятие 9: Введение в Pandas

Занятие 10: примеры использования pandas

Занятие 11: продвинутые возможности pandas

Занятие 12: ещё о pandas

Занятия 13 и 14: веб-скреппинг

Занятие 15: продвинутый скреппинг: RoboBrowser и Selenium

Занятие 16: REST API: XML/JSON

Занятие 17: немного о математике и визуализациях

Занятие 18: ещё немного о математике о визуализациях

Часть 2

Занятие 19: введение в R

Занятие 20: tidyverse

  • Установка tidyverse: install.packages("tidyverse"). Возможно, вам придётся установить переменную окружения R_LIB_USER, чтобы она указывала на какой-нибудь каталог, в который вы имеете право записывать файлы (туда будут устанавливаться библиотеки).
  • введение в dplyr.
  • tidyr (заблокировано в РФ): gather и spread.
  • группировка и агрегирование.

Занятие 21: ggplot2

Занятие 22: регулярные выражения

Занятия 23-25: SQL

Занятие 26: объектно-ориентированное программирование

Занятие 27: SQLAlchemy

Занятие 28: элементы обработки естественного языка

Проекты

Весенний проект

Примеры хороших работ:

Летний проект

Данные