Анализ данных на Python: различия между версиями

Материал из MathINFO
Перейти к навигации Перейти к поиску
 
(не показано 19 промежуточных версий этого же участника)
Строка 11: Строка 11:
 
Пояснения:  
 
Пояснения:  
  
* '''Лабораторные работы:''' небольшие домашние задания, обязательные к выполнению к следующему занятию.<br>Могут включать задачи на закрепление пройденного материала или задачи, предполагающие самостоятельное<br>изучение небольших блоков по основам Python по предложенных материалам (конспекты или видео).<br>Всего запланировано 8 лабораторных работ с одинаковым весом.
+
* '''Лабораторные работы:''' небольшие домашние задания, обязательные к выполнению к следующему занятию.<br>Могут включать задачи на закрепление пройденного материала или задачи, предполагающие самостоятельное<br>изучение небольших блоков по основам Python по предложенных материалам (конспекты или видео).
 
* '''Домашние задания:''' объёмные домашние задания по итогу нескольких пройденных тем. Представляют собой<br> индивидуальные мини-проекты, в которых необходимо поработать с предложенными данными по инструкции <br>и проинтерпретировать предложенные результаты.
 
* '''Домашние задания:''' объёмные домашние задания по итогу нескольких пройденных тем. Представляют собой<br> индивидуальные мини-проекты, в которых необходимо поработать с предложенными данными по инструкции <br>и проинтерпретировать предложенные результаты.
 
* Поздняя сдача лабораторных работ не предусмотрена.
 
* Поздняя сдача лабораторных работ не предусмотрена.
Строка 24: Строка 24:
 
==Материалы курса==
 
==Материалы курса==
  
===Неделя 0. Напоминания про Python и Jupyter Notebook===
+
===Неделя 0. Про Python и Jupyter Notebook===
  
 
Для подготовки к работе на курсе можно ознакомиться со следующими материалами [https://edu.hse.ru/course/view.php?id=133389 онлайн-курса]:  
 
Для подготовки к работе на курсе можно ознакомиться со следующими материалами [https://edu.hse.ru/course/view.php?id=133389 онлайн-курса]:  
Строка 166: Строка 166:
 
===Неделя 5. Примеры работы с API ===
 
===Неделя 5. Примеры работы с API ===
  
* Файл к занятию ([ipynb]).
+
* Файл к занятию ([https://github.com/allatambov/PyPerm24/blob/main/05-vk-practice.ipynb ipynb]).
* Выгрузка постов и комментариев из ВКонтакте (ipynb с решениями).
+
* Выгрузка постов и комментариев из ВКонтакте ([https://github.com/allatambov/PyPerm24/blob/main/05-vk-practice-solutions.ipynb ipynb] с решениями).
  
 
Дополнительно:
 
Дополнительно:
Строка 173: Строка 173:
 
* [https://dev.vk.com/ru/api/api-requests Документация] API ВКонтакте.
 
* [https://dev.vk.com/ru/api/api-requests Документация] API ВКонтакте.
 
* [https://requests.readthedocs.io/en/latest/ Документация] модуля requests, [https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP статья] о состояниях HTTP.
 
* [https://requests.readthedocs.io/en/latest/ Документация] модуля requests, [https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP статья] о состояниях HTTP.
 +
* Дальнейшая работа с постами ВКонтакте – анализ тональности ([https://github.com/allatambov/WebScrape24/blob/main/psy_practice05_texts.ipynb ipynb], файл [https://github.com/allatambov/WebScrape24/blob/main/comments_as_rows.csv comments_as_rows.csv])
 +
* Небольшой практикум с примерами работы с API Википедии ([https://github.com/allatambov/WebScrape24/blob/main/ps%D1%83_practice04_solutions.ipynb ipynb]).
 +
 +
===Лабораторная работа 5. Работа со словарями ===
 +
 +
Для выполнения лабораторной работы необходимо вспомнить о словарях (неделя 3),<br>
 +
при необходимости ознакомиться со следующими материалами:
 +
 +
* [https://github.com/allatambov/ICEF24/blob/main/dicts.ipynb Конспект] по словарям.
 +
* Pythontutor: [https://pythontutor.ru/lessons/dicts/ словари], w3schools: [https://www.w3schools.com/python/python_dictionaries.asp dictionaries].
 +
 +
{| class="wikitable"
 +
|-
 +
! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать
 +
|-
 +
| Лабораторная работа 5 || [https://github.com/allatambov/PyPerm24/blob/main/pyperm-lab05.ipynb ipynb] || 18 мая 11:30 || [https://www.dropbox.com/request/mjNOgwMKVH7B2jT0hzVA ссылка] на Dropbox
 +
|-
 +
|}
 +
 +
===Неделя 6. Парсинг HTML с Beautiful Soup и Pandas ===
 +
 +
* Введение в HTML ([https://github.com/allatambov/PyPerm24/blob/main/Intro_HTML.pdf слайды]).
 +
* Практикум по парсингу HTML с BeautifulSoup: тэги и атрибуты ([https://github.com/allatambov/PyPerm24/blob/main/06-html-practice.ipynb ipynb]), решения ([https://github.com/allatambov/PyPerm24/blob/main/06-html-practice-solutions.ipynb ipynb]).
 +
* Парсинг таблиц с Pandas ([https://github.com/allatambov/PyPerm24/blob/main/06-html-tables.ipynb ipynb]).
 +
 +
Дополнительно:
 +
 +
* [https://beautiful-soup-4.readthedocs.io/en/latest/ Документация] библиотеки bs4 (Beautiful Soup).
 +
* Ловля исключений и обработка ошибок: [https://docs.python.org/3/tutorial/errors.html документация] для try-except.
 +
* Введение в управление браузером с Selenium.
 +
 +
===Неделя 7. Иерархический кластерный анализ ===
 +
 +
Файлы с данными: [https://raw.githubusercontent.com/allatambov/PyPerm24/main/Baltimore_data.csv Baltimore_data.csv],
 +
[https://raw.githubusercontent.com/allatambov/PyPerm24/main/Percent_of_Area_Covered_by_Trees.geojson Percent_of_Area_Covered_by_Trees.geojson],
 +
[https://raw.githubusercontent.com/allatambov/PyPerm24/main/coffee_and_code.csv coffee_and_code.csv].
 +
 +
* Иерархический кластерный анализ: введение ([https://github.com/allatambov/PyPerm24/blob/main/07-cluster00.ipynb ipynb]).
 +
* Практикум по иерархическому кластерному анализу, количественные данные ([https://github.com/allatambov/PyPerm24/blob/main/07-cluster01.ipynb ipynb]).
 +
* Практикум по иерархическому кластерному анализу, качественные данные ([https://github.com/allatambov/PyPerm24/blob/main/07-cluster02.ipynb ipynb]).
 +
 +
===Неделя 8. Визуализация данных с Matplotlib ===
 +
 +
* Файл с данными: [https://www.dropbox.com/scl/fi/44safy9dssp4plr2wyv8k/Online-Retail.csv?rlkey=1vprvuksmc6gowschlxe10or2&st=2vt8hexv&dl=0 Online-Retail.csv]
 +
* Практикум по визуализации ([https://github.com/allatambov/PyPerm24/blob/main/08-vis-practice.ipynb ipynb]), решения практикума ([https://github.com/allatambov/PyPerm24/blob/main/08-vis-practice-solutions.ipynb ipynb]).
 +
* Официальная [https://matplotlib.org/stable/ документация] matplotlib.
 +
 +
===Неделя 9. Доверительное оценивание и проверка гипотез ===
 +
 +
Краткая теория для повторения:
 +
 +
* Доверительные интервалы: [https://github.com/allatambov/IntroProbStat2024/blob/main/add/conf-intervals.pdf. pdf], [https://rpsychologist.com/d3/ci/ визуализация].
 +
* Проверка гипотез: [https://github.com/allatambov/IntroProbStat2024/blob/main/add/hypo.pdf pdf].
 +
* Доверительные интервалы и проверка гипотез вместе: [https://github.com/allatambov/IntroProbStat2024/blob/main/add/ci-hypo-short.pdf pdf].
 +
 +
Практика:
 +
 +
* Файл с данными: [https://github.com/allatambov/PyPerm24/blob/main/Cowles.csv Cowles.csv]
 +
* Практикум: сырой файл к занятию ([https://github.com/allatambov/PyPerm24/blob/main/09-stats.ipynb ipynb]), полный файл с комментариями ([https://github.com/allatambov/PyPerm24/blob/main/09-stats-upd.ipynb ipynb]).
 +
 +
Дополнительно:
 +
 +
* Сводная информация по полезным тестам и функциям ([https://github.com/allatambov/PyPerm24/blob/main/09-info-tests.ipynb ipynb]).
 +
 +
===Лабораторная работа 6. Проверка гипотез и визуализация с seaborn ===
 +
 +
Для выполнения лабораторной работы потребуются материалы недели 9 <br>
 +
(включая дополнительный файл со сводными материалами по статистическим тестам).
 +
 +
{| class="wikitable"
 +
|-
 +
! Лабораторная работа !! Задания !! Дедлайн !! Куда сдавать
 +
|-
 +
| Лабораторная работа 6 || [https://github.com/allatambov/PyPerm24/blob/main/pyperm-lab06.ipynb ipynb] || 17 июня 23:59 || [https://www.dropbox.com/request/USUCErpqhnuTZcLBVqHz ссылка] на Dropbox
 +
|-
 +
|}
 +
 +
===Неделя 10. Линейная регрессия с библиотекой statsmodels ===
 +
 +
* Файл с данными: [https://github.com/allatambov/PyPerm24/blob/main/Salaries.csv Salaries.csv], «сырой» [https://github.com/allatambov/PyPerm24/blob/main/10-linreg-raw.ipynb ipynb-файл] с занятия.
 +
* Парная и множественная линейная регрессия со statsmodels ([https://nbviewer.org/github/allatambov/PyDataAnalysis/blob/main/seminar04-OLS.ipynb ipynb]).
 +
* Линейная регрессия с эффектами взаимодействия ([https://nbviewer.org/github/allatambov/PyDataAnalysis/blob/main/seminar05-OLS-interactions.ipynb ipynb]).
 +
 +
Дополнительно:
 +
 +
* Еще один практикум по моделям с эффектом взаимодействия + выгрузка выдачи в HTML или LaTeX ([https://github.com/allatambov/PyReg23/blob/main/reg-practice06.ipynb ipynb]).
  
 
== Домашние задания ==
 
== Домашние задания ==
Строка 180: Строка 266:
 
! Домашнее задание !! Дедлайн !! Куда загружать
 
! Домашнее задание !! Дедлайн !! Куда загружать
 
|-
 
|-
| [https://github.com/allatambov/PyPerm24/blob/main/hw01.ipynb Домашнее задание №1] || 19 мая 23:59 (по Перми)|| [https://www.dropbox.com/request/HlHlDJIqODEAgpl1ba1H ссылка] на Dropbox
+
| [https://github.com/allatambov/PyPerm24/blob/main/hw01.ipynb Домашнее задание №1] || 20 мая 23:59 (по Перми)|| [https://www.dropbox.com/request/HlHlDJIqODEAgpl1ba1H ссылка] на Dropbox
 +
|-
 +
| [https://github.com/allatambov/PyPerm24/blob/main/hw02.ipynb Домашнее задание №2] || 10 июня 23:59 (по Перми)|| [https://www.dropbox.com/request/5olhTQGFBaDbMRF8PFUw ссылка] на Dropbox
 +
|-
 +
| [https://github.com/allatambov/PyPerm24/blob/main/hw03.ipynb Домашнее задание №3] || 22 июня 23:59 (по Перми)|| [https://www.dropbox.com/request/Gs40HuicsISUk8Rtl42T ссылка] на Dropbox
 
|-
 
|-
 
|}
 
|}

Текущая версия на 02:35, 17 июня 2024

Дорогие студенты!

Это страница обязательного курса «Анализ данных на Python», читаемого на программе «Разработка информационных систем для бизнеса»
2 курса бакалавриата в 4 модуле 2023-2024 учебного года.

Занятия ведёт: Тамбовцева Алла Андреевна.

Содержание

Правила игры

Формула оценки: 0.4 × Лабораторные работы + 0.2 × ДЗ1 + 0.25 × ДЗ2 + 0.15 × ДЗ3.

Пояснения:

  • Лабораторные работы: небольшие домашние задания, обязательные к выполнению к следующему занятию.
    Могут включать задачи на закрепление пройденного материала или задачи, предполагающие самостоятельное
    изучение небольших блоков по основам Python по предложенных материалам (конспекты или видео).
  • Домашние задания: объёмные домашние задания по итогу нескольких пройденных тем. Представляют собой
    индивидуальные мини-проекты, в которых необходимо поработать с предложенными данными по инструкции
    и проинтерпретировать предложенные результаты.
  • Поздняя сдача лабораторных работ не предусмотрена.
  • Домашние задания, сданные после срока, оцениваются с использованием понижающих коэффициентов:
    опоздание в пределах часа – штраф 10% от полученной оценки, в пределах суток – штраф 30%.
    Домашние задания, сданные позже, не принимаются и не оцениваются.

Среда для работы

Перед занятиями необходимо установить дистрибутив Anaconda (скачать можно здесь), который включает в себя
интерпретатор языка Python, библиотеки для обработки, анализа и визуализации данных, а также среду для работы
Jupyter Notebook. Также есть возможность работать в Jupyter Notebook онлайн, используя ресурс Google Colab
(для создания и редактирования файлов нужен аккаунт Gmail).

Подробности по установке и работе – см. ниже в неделе 0.

Материалы курса

Неделя 0. Про Python и Jupyter Notebook

Для подготовки к работе на курсе можно ознакомиться со следующими материалами онлайн-курса:

А также с материалами по работе в Jupyter Notebook и Google Colab:

Дополнительно:

Неделя 1. Индексируемые структуры данных в Python

  • «Сырые» ipynb-файлы с занятий: группа 1, группа 2, группа 3, группа 4.
  • Обзор индексируемых структур данных в Python: строки, кортежи, списки (ipynb).
  • Цикл for и его аналоги: списковые включения и функция map() (ipynb).

Дополнительно:

Лабораторная работа 1. Условные конструкции и индексируемые структуры

Для выполнения лабораторной работы необходимо знать формулировку логических выражений
и конструкцию if-elif-else в Python. Для этого (на выбор) можно:

  • Прослушать материал темы 2 Условия и логические выражения онлайн-курса «Python как иностранный».
  • Прочитать конспект лекции Логические выражения и условные конструкции.
  • Изучить материалы онлайн-учебника Pythontutor.

Также могут пригодиться дополнительные материалы по методам на списках из недели 1.

Лабораторная работа Задания Дедлайн Куда сдавать
Лабораторная работа 1 ipynb 13 апреля 11:30 ссылка на Dropbox

Неделя 2. Знакомство с массивами NumPy

  • «Сырые» ipynb-файлы с занятий: пара 1, пара 2.
  • Списки vs массивы (ipynb).
  • Описание выборки, сохранённой в массив (ipynb).

Дополнительно:

Лабораторная работа 2. Работа с массивами, ввод и вывод

Для выполнения лабораторной работы помимо материалов недели 2 необходимо понимать
устройство ввода и вывода в Python и быть знакомыми с методами .split() и .join(). Для этого можно:

  • Прочитать конспект лекции Ввод-вывод и форматирование строк.
  • Прочитать конспект лекции Методы .split() и .join() и разбор задач по этой теме.
Лабораторная работа Задания Дедлайн Куда сдавать
Лабораторная работа 2 ipynb 20 апреля 11:30 ссылка на Dropbox

Неделя 3. Словари, массивы NumPy, датафреймы Pandas

  • Файл к занятию: ipynb.
  • Словари и массивы, последовательности и датафреймы Pandas (ipynb).
  • Введение в датафреймы pandas: загрузка и описание данных (ipynb), файл Salaries.csv.

Дополнительно:

Лабораторная работа 3. Функции и lambda-функции

Для выполнения лабораторной работы помимо материалов недели 3 необходимо уметь писать
пользовательские функции, lambda-функции и сочетать их с другими функциями Python. Для этого можно:

  • Прослушать материал темы 8 Функции (достаточно первого раздела) онлайн-курса «Python как иностранный».
  • Прочитать конспект лекции Функции (для желающих – более подробная лекция И.В.Щурова).
  • Прочитать конспект по lambda-функциям.
Лабораторная работа Задания Дедлайн Куда сдавать
Лабораторная работа 3 ipynb 27 апреля 11:30 ссылка на Dropbox

Неделя 4. Операции с датафреймами Pandas, введение в визуализацию

Дополнительно:

Лабораторная работа 4. Методы на строках и работа с txt-файлами

Для выполнения лабораторной работы необходимо самостоятельно познакомиться с обработкой txt-файлов.
Для этого (на выбор) можно:

  • Прослушать материал темы 9 Текстовые файлы и таблицы онлайн-курса «Python как иностранный».
  • Прочитать конспект лекции Чтение и запись txt-файлов (txt-файл здесь).

Также могут пригодиться дополнительные материалы по методам на строках из недели 1.

Лабораторная работа Задания Дедлайн Куда сдавать
Лабораторная работа 4 ipynb 4 мая 23:59 ссылка на Dropbox

Неделя 4*. Обработка текстов и облака слов

Синхронного занятия нет, предлагается видеозапись и конспект.
Данная тема будет включена во вторую часть первого домашнего задания.

  • Файлы для работы: stopwords-ru.txt, guitar.jpeg, text-practice.ipynb, сайт Freepik как источник изображений.
  • Видеозаписи: предварительная обработка текста (01), облако слов (02), добавление маски (03).
  • Подробный конспект с решениями (ipynb).

Неделя 5. Примеры работы с API

  • Файл к занятию (ipynb).
  • Выгрузка постов и комментариев из ВКонтакте (ipynb с решениями).

Дополнительно:

Лабораторная работа 5. Работа со словарями

Для выполнения лабораторной работы необходимо вспомнить о словарях (неделя 3),
при необходимости ознакомиться со следующими материалами:

Лабораторная работа Задания Дедлайн Куда сдавать
Лабораторная работа 5 ipynb 18 мая 11:30 ссылка на Dropbox

Неделя 6. Парсинг HTML с Beautiful Soup и Pandas

  • Введение в HTML (слайды).
  • Практикум по парсингу HTML с BeautifulSoup: тэги и атрибуты (ipynb), решения (ipynb).
  • Парсинг таблиц с Pandas (ipynb).

Дополнительно:

  • Документация библиотеки bs4 (Beautiful Soup).
  • Ловля исключений и обработка ошибок: документация для try-except.
  • Введение в управление браузером с Selenium.

Неделя 7. Иерархический кластерный анализ

Файлы с данными: Baltimore_data.csv, Percent_of_Area_Covered_by_Trees.geojson, coffee_and_code.csv.

  • Иерархический кластерный анализ: введение (ipynb).
  • Практикум по иерархическому кластерному анализу, количественные данные (ipynb).
  • Практикум по иерархическому кластерному анализу, качественные данные (ipynb).

Неделя 8. Визуализация данных с Matplotlib

Неделя 9. Доверительное оценивание и проверка гипотез

Краткая теория для повторения:

  • Доверительные интервалы: pdf, визуализация.
  • Проверка гипотез: pdf.
  • Доверительные интервалы и проверка гипотез вместе: pdf.

Практика:

  • Файл с данными: Cowles.csv
  • Практикум: сырой файл к занятию (ipynb), полный файл с комментариями (ipynb).

Дополнительно:

  • Сводная информация по полезным тестам и функциям (ipynb).

Лабораторная работа 6. Проверка гипотез и визуализация с seaborn

Для выполнения лабораторной работы потребуются материалы недели 9
(включая дополнительный файл со сводными материалами по статистическим тестам).

Лабораторная работа Задания Дедлайн Куда сдавать
Лабораторная работа 6 ipynb 17 июня 23:59 ссылка на Dropbox

Неделя 10. Линейная регрессия с библиотекой statsmodels

  • Файл с данными: Salaries.csv, «сырой» ipynb-файл с занятия.
  • Парная и множественная линейная регрессия со statsmodels (ipynb).
  • Линейная регрессия с эффектами взаимодействия (ipynb).

Дополнительно:

  • Еще один практикум по моделям с эффектом взаимодействия + выгрузка выдачи в HTML или LaTeX (ipynb).

Домашние задания

Домашнее задание Дедлайн Куда загружать
Домашнее задание №1 20 мая 23:59 (по Перми) ссылка на Dropbox
Домашнее задание №2 10 июня 23:59 (по Перми) ссылка на Dropbox
Домашнее задание №3 22 июня 23:59 (по Перми) ссылка на Dropbox