Аналіз даних з використанням мови Python - Силабус освітнього компонента

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи, Інформаційні управляючі системи та технології, Інформаційне забезпечення робототехнічних систем
Статус дисципліни Вибіркова
Форма навчання очна(денна)
Рік підготовки, семестр 3 курс, осінній семестр
Обсяг дисципліни 4 кредити/120 годин (36 годин – лекції, 18 годин – лабораторні, 66 годин – СРС)
Семестровий контроль/ контрольні заходи Залік/залікова робота, МКР, захист лабораторних робіт
Розклад занять http://rozklad.kpi.ua
Мова викладання Українська
Інформація про керівника курсу / викладачів Лектор: ст. викладач Тимофєєва Юлія Сергіївна, yulia.s.timofeeva@gmail.com, Лабораторні: ст. викладач Тимофєєва Юлія Сергіївна, yulia.s.timofeeva@gmail.com,
Розміщення курсу https://campus.kpi.ua

Програма навчальної дисципліни

Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Під час навчання студенти ознайомляться з основними поняттями, методами та засобами попередньої підготовки, статистичної обробки, візуалізації та аналізу даних, основами машинного навчання. На лабораторних заняттях навчаться використовувати основні бібліотеки мови Python для роботи з даними (NumPу, SciPy, Mаtрlоtlіb, Seaborn, Sсіkіt-lеаrn, Pаndаѕ). Передбачено контроль якості отриманих знань у вигляді модульної контрольної роботи.

Метою навчальної дисципліни

є формування у студентів теоретичних знань і практичних здатностей застосовувати загальні методи і засоби підготовки, статистичної обробки, візуалізації та аналізу даних, використовуючи основні бібліотеки мови Python для роботи з даними.

Предмет навчальної дисципліни:

методи та засоби аналізу даних та їх реалізація на мові Python.

Програмні результати навчання, на формування та покращення яких спрямована дисципліна:

використовувати бібліотеки мови Python для обробки, візуалізації та аналізу даних; обирати методи та алгоритми для попередньої обробки даних; обирати найбільш інформативні способи представлення даних; використовувати алгоритми машинного навчання для класифікації, кластеризації, регресійного аналізу і т.д.; створювати програми мовою Python для роботи з даними

Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)

Пререквізити

вміти користуватися комп’ютером, мати базові знання з програмування, структур даних та алгоритмів, математичного аналізу, математичної статистики, мати досвід написання простих програм мовою Python.

Постреквізити

після проходження дисципліни студенти зможуть ефективно обробляти, візуалізувати та аналізувати дані, отримані внаслідок власних експериментів та досліджень застосовувати основні алгоритми машинного навчання, використовувати засоби бібліотек NumPу, SciPy, Mаtрlоtlіb, Seaborn, Sсіkіt-lеаrn, Pаndаѕ.

Зміст навчальної дисципліни

Розділ 1. Основні поняття обробки даних Тема 1.1. Основні поняття обробки даних Розділ 2. Статистичний аналіз даних Тема 2.1. Дескриптивна статистика з Python Тема 2.2. Перевірка статистичних гіпотез за допомогою SciPy Тема 2.3. Кореляційний та регресійний аналіз даних засобами Python Розділ 3. Структури даних бібліотек NumPy та Pandas Тема 3.1. Структури даних бібліотеки NumPy Тема 3.2. Структури даних Pаndаѕ Тема 3.3. Об’єднання та групування даних в Pandas Розділ 4. Методи візуалізації даних Тема 4.1. Візуалізація даних Тема 4.2. Діаграми для однієї та двох характеристик Тема 4.3. Часові ряди в Pandas Розділ 5. Методи та алгоритми попередньої обробки даних Тема 5.1. Робота з файлами в Pandas Тема 5.2. Попередня обробка даних Тема 5.3. Очищення та трансформація даних Розділ 6. Основи машинного навчання Тема 6.1. Підготовка даних для навчання Тема 6.2. Регресія та кластеризація в sсіkіt-lеаrn Тема 6.3. Класифікація в sсіkіt-lеаrn Тема 6.4. Вдосконалення моделей в sсіkіt-lеаrn Тема 6.5. Рекомендаційні системи

Навчальні матеріали та ресурси

Базова література

  1. Марченко О.О., Россада Т.В. Актуальні проблеми Data Mining: Навчальний посібник для студентів факультету комп’ютерних наук та кібернетики. – Київ. – 2017. – 150 с.
  2. Ланде Д.В., Субач І.Ю., Бояринова Ю.Є. Основи теорії і практики інтелектуального аналізу даних у сфері кібербезпеки: навчальний посібник. – К.: ІСЗЗІ КПІ ім. Ігоря Сікорського», 2018. — 297 с.
  3. Бахрушин В.Є. Методи аналізу даних : навчальний посібник для студентів / В.Є. Бахрушин. – Запоріжжя : КПУ, 2011. – 268 с.
  4. Wes McKinney. Python for Data Analysis_ Data Wrangling with Pandas, NumPy, and IPython. – O’Reilly Media, 2017. – 482 p.
  5. Gayathri Rajagopalan. A Python Data Analyst’s Toolkit. — apress, 2021. — 409 p.
  6. Alex Campbell. Data Visualization Guide. — 2021. – 113 p.

Допоміжна література

  1. Василенко О. А. Математично-статистичні методи аналізу у прикладних дослідженнях: навч. посіб. / О. А. Василенко, І. А. Сенча. – Одеса: ОНАЗ ім. О. С. Попова, 2011. – 166 с.
  2. Sanjeev J. Wagh. Fundamentals of Data Science. — Taylor & Francis Group, LLC, 2022. – 297 р.
  3. Avinash Navlani. Python Data Analysis. —Packt Publishing, 2021. – 463 p.
  4. Joel Grus. Data Science from Scratch. – O’Reilly Media, Inc., 2019. – 513p.

Навчальний контент

Методика опанування навчальної дисципліни (освітнього компонента)

Лекційні заняття

Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1.1. Основні поняття обробки даних
Структура дисципліни та РСО. Поняття даних, типи даних, структуровані дані, набори даних та їх складові, основні завдання обробки даних, особливості обробки даних. Класифікація та загальний огляд етапів та методів обробки даних. Бібліотеки Python для роботи з даними.
2 Тема 2.1. Дескриптивна статистика з Python
Основні засоби статистики для виявлення характеристик набору даних. Виявлення статистичних характеристик масивів даних засобами NumPy та SciPy. Перевірка гіпотез, загальний алгоритм перевірки гіпотез, основні статистичні тести.
3 Тема 2.2. Перевірка статистичних гіпотез за допомогою SciPy
Перевірка гіпотез за допомогою функцій модуля stats бібліотеки SciPy. Функції для однієї вибірки. Перевірка гіпотез про рівність математичних сподівань. Використання односторонніх альтернативних гіпотез. Перевірка гіпотез про розподіл випадкової величини, функція stats.normaltest.
4 Тема 2.3. Кореляційний та регресійний аналіз даних засобами Python
Кореляційний аналіз даних, відповідні функції NumPy та SciPy. Коефіцієнти кореляції Пірсона та Спірмена. Модель простої лінійної регресії та її побудова засобами SciPy.
5 Тема 3.1. Структури даних бібліотеки NumPy
Багатовимірні масиви NumPy, переваги їх використання при обробці даних. Створення масивів, атрибути масивів, робота з різними вимірами. Функції для об’єднання масивів. Арифметичні та булеві операції з масивами.
6 Тема 3.2. Структури даних Pаndаѕ
Об’єкт Series, його атрибути та індекси. Двовимірний об’єкт DataFrame, гнучкі індекси рядків та стовпців. Додавання та видалення рядків та стовпців. Об’єкт Index та його типи.
7 Тема 3.3. Об’єднання та групування даних в Pandas
Об’єднання DataFrame та Series за допомогою функції concat. Функція merge та її параметри, різні типи об’єднання. Групування даних за допомогою groupby. Методи згрупованих об’єктів та їх використання.
8 Тема 4.1. Візуалізація даних
Перша частина модульної контрольної роботи. Аналіз даних методами візуалізації. Основні бібліотеки для візуалізації даних: matplotlib, Pandas, Seaborn. Стовпчикові діаграми.
9 Тема 4.2. Діаграми для однієї та двох характеристик
Гістограми та їх побудова засобами Python. Діаграми розмаху та їх використання для виявлення статистичних викидів. Побудова діаграм розсіювання. Використання теплокарт для відображення кореляції між величинами.
10 Тема 4.3. Часові ряди в Pandas
Поняття часових рядів. Робота з часовими рядами в Pandas. Використання дати та часу як індексу в об’єктах Pandas. Візуалізація часових рядів. Аналіз часових рядів засобами Pаndаѕ.
11 Тема 5.1. Робота з файлами в Pandas
Основні функції для читання файлів різних форматів, типових для представлення наборів даних. Параметри функцій читання та запису файлів. Різні орієнтації файлів json. Читання наборів даних з вебсторінок.
12 Тема 5.2. Попередня обробка даних
Основні дії під час попередньої обробки даних. Перейменування даних. Сортування в Pandas. Перетворення типів даних. Виявлення та обробка повторюваних даних. Відсутні дані, їх виявлення, видалення та заповнення.
13 Тема 5.3. Очищення та трансформація даних
Друга частина модульної контрольної роботи. Визначення помилкових та аномальних даних. Фільтрація даних. Широкий та довгий формати та трансформація між ними.
14 Тема 6.1. Підготовка даних для навчання
Основні категорії моделей машинного навчання. Знайомство з бібліотекою scikit-learn. Поділ даних на навчальну та тестову вибірки. Масштабування та центрування даних. Кодування категоріальних даних. Виявлення відсутніх даних та їх заповнення в scikit-learn.
15 Тема 6.2. Регресія та кластеризація в sсіkіt-lеаrn
Лінійна регресія. Навчання та тестування моделі. Метрики для оцінки моделі регресії. Гіперпараметри регресійної моделі. Задача кластеризації, алгоритм k-середніх. Метрики для оцінки моделі кластеризації.
16 Тема 6.3. Класифікація в sсіkіt-lеаrn
Бінарна класифікація і логістична регресія. Метрики для оцінки моделі класифікації. Збалансовані та незбалансовані класи. Дерево рішень, ансамблеві методи та бустинг.
17 Тема 6.4. Вдосконалення моделей в sсіkіt-lеаrn
Пошук найкращих гіперпараметрів за допомогою класу GridSearch. Перехресна перевірка. Вибір, вилучення, підсилення та створення ознак. Аналіз головних компонентів.
18 Тема 6.5. Рекомендаційні системи
Пошук аномалій за допомогою машинного навчання. Рекомендаційні системи, їх види. Використання машинного навчання для рекомендацій. Джерела даних.

Лабораторні заняття

Назва лабораторної роботи Кількість ауд. годин
1 Лабораторна робота №1. Базове знайомство з бібліотекою NumPy 2
Мета роботи: Ознайомитись з основними можливостями роботи з масивами бібліотеки NumPy, визначити статистичні характеристики.
2 Лабораторна робота №2. Статистичний аналіз даних 2
Мета роботи: Ознайомитись з основними функціями бібліотеки NumPy та SciPy для описової статистики, перевірки статистичних гіпотез, кореляційного аналізу та лінійної регресії.
3 Лабораторна робота №3. Структури даних Pandas 2
Мета роботи: Ознайомитись з основними структурами даних бібліотеки Pandas: Series DataFrame, операціями над ними. Навчитись використовувати групування.
4 Лабораторна робота №4. Візуалізація даних за допомогою matplotlib та Seaborn 2
Мета роботи: Ознайомитись з основними діаграмами та графіками, що використовуються при аналізі даних. Навчитись будувати їх за допомогою бібліотек matplotlib та Seaborn.
5 Лабораторна робота №5. Робота з часовими рядами в Pandas 2
Мета роботи: Ознайомитись з основними представленнями часових рядів в Pandas та операціями з ними.
6 Лабораторна робота №6. Попередня обробка даних в Pandas 2
Мета роботи: Ознайомитись з операціями попередньої обробки даних Pandas.
7 Лабораторна робота №7. Кластеризація та регресія в scikit-learn 2
Мета роботи: Ознайомитись з побудовою моделей для вирішення задач регресії та кластеризації в scikit-learn, визначити основні оцінки цих моделей.
8 Лабораторна робота №8. Класифікація в scikit-learn 2
Мета роботи: Ознайомитись з побудовою моделей для вирішення задачі класифікації в scikit-learn, оцінкою та способами налаштування цих моделей.
9 Підсумкове заняття 2

Самостійна робота студента/аспіранта

Вид самостійної роботи Кількість годин СРС
1 Підготовка до лабораторних робіт 28
2 Підготовка до МКР 8
3 Опрацювання теоретичного матеріалу 30

Політика та контроль

Політика навчальної дисципліни (освітнього компонента)

Система вимог, які ставляться перед студентом:

  • правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та лабораторних заняттях;
  • на лекції викладач користується власним презентаційним матеріалом; використовує гугл-диск для викладання матеріалу поточної лекції, додаткової інформації, завдань до лабораторних робіт та інше;
  • питання на лекції задаються у відведений для цього час;
  • звіти з лабораторних робіт завантажуються напередодні захисту; для захисту лабораторної роботи необхідно продемонструвати роботу відповідної завданню програми та відповісти на питання щодо програми та контрольні питання;
  • модульні контрольні роботи пишуться на лекційних заняттях без застосування допоміжних засобів (мобільні телефони, планшети та ін.); результат завантажується у файлі через гугл-форму до відповідної директорії гугл-диску;
  • заохочувальні бали виставляються за: участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо. Кількість заохочуваних балів не більше 10;
  • штрафні бали виставляються за: несвоєчасне подання лабораторних робіт до захисту без поважних причин; переписування модульної контрольної роботи. Кількість штрафних балів не більше 10.

Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Поточний контроль: МКР, виконання та захист лабораторних робіт. Календарний контроль: проводиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу. Семестровий контроль: залік. Умови допуску до семестрового контролю: виконані та захищені лабораторні роботи, написана модульна контрольна робота. Якщо семестровий рейтинг не менше 60 балів, то залік виставляється автоматично, інакше — студент допускається до залікової контрольної роботи.

Рейтинг студента складається з балів, що він отримує за:

  1. виконання та захист лабораторних робіт;
  2. виконання модульної контрольної роботи;
  3. заохочувальні та штрафні бали.

Система рейтингових балів та критерії оцінювання

Лабораторні завдання
  • «відмінно», пповна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації), повне виконання завдання лабораторної роботи – 9 балів;
  • «добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації), повне виконання завдання лабораторної роботи – 7-8 балів;
  • «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки у виконанні завдання лабораторної роботи – 5-6 балів;
  • «незадовільно», незадовільна відповідь та/або значні помилки у виконання завдання лабораторної роботи – 0 балів.

За запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал.

Модульні контрольні роботи
  • «відмінно», повна відповідь (не менш ніж 90% потрібної інформації), завдання виконано без помилок, дії обґрунтовано – 14 балів;
  • «добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), завдання виконано без значних помилок – 10-13 балів;
  • «задовільно», неповна відповідь, в деяких завданнях можуть бути присутні значні помилки, але не менше 60% виконано правильно – 7-9 балів;
  • «незадовільно», незадовільна відповідь (неправильне виконання завдань), потребує обов’язкового повторного написання в кінці семестру – 0 балів.
Заохочувальні бали

за виконання творчих робіт з кредитного модуля (наприклад, участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо) 1-2 бали, але в сумі не більше 10.

Штрафні бали

штрафні бали виставляються за: несвоєчасне подання до захисту лабораторних робіт без поважних причин; переписування модульної контрольної роботи. Кількість штрафних балів не більше 10.

Календарний контроль

За результатами навчальної роботи за перші 7 тижнів максимально можлива кількість балів – 32 бали (2 лабораторних роботи, перша частина модульної контрольної роботи). На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 16 балів.

За результатами 13 тижнів навчання максимально можлива кількість балів – 59 балів (5 лабораторних робіт, перша частина модульної контрольної роботи). На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 30 балів.

Максимальна сума вагових балів контрольних заходів протягом семестру складає:

RD = 8*rл.р.+2*rмкр+ (rз - rш)=8*9+2*14+(rз - rш)=100 + (rз - rш), де rл.р. – бал за лабораторну роботу (0…9); rмкр – бал за написання МКР (0…14); rз – заохочувальні бали (0…10); rзш – штрафні бали (0…10);.

Залік

Студенти, які виконали всі умови допуску до семестрової атестації (написали всі модульні контрольні, виконали і захистили всі лабораторні роботи) та набрали протягом семестру необхідну кількість балів (RD ≥ 60), отримують залікову оцінку (залік) автоматично відповідно до набраного рейтингу (табл. 1, що наведена нижче). У такому разі до заліково-екзаменаційної відомості вносяться бали RD та відповідні оцінки. Студенти, які набрали протягом семестру менше ніж 60 балів та не мають заборгованостей, зобов’язані виконувати залікову контрольну роботу. Залікова контрольна робота містить п’ять питань. Кожне питання оцінюється у 20 балів. Студентам, які протягом семестру набрали більш ніж 60 балів та виконали всі умови допуску, надається можливість виконувати залікову контрольну роботу з метою підвищення оцінки. В такому разі, попередній рейтинг студента з кредитного модуля скасовується і він отримує оцінку з урахуванням результатів залікової контрольної роботи (табл. 1, що наведена нижче).

Система оцінювання питань
  • «відмінно», повна відповідь (не менше 90% потрібної інформації) – 18-20 балів;
  • «добре», достатньо повна відповідь (не менше 75% потрібної інформації, або незначні неточності) – 15-17 балів;
  • «задовільно», неповна відповідь (не менше 60% потрібної інформації та деякі помилки) – 12-14 балів;
  • «незадовільно», незадовільна відповідь – 0-11 балів.

Сума набраних балів RD або балів за залікову роботу переводиться до залікової оцінки згідно з таблицею:

Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою
Кількість балів Оцінка
100-95 Відмінно
94-85 Дуже добре
84-75 Добре
74-65 Задовільно
64-60 Достатньо
Менше 60 Незадовільно
Не виконані умови допуску Не допущено

Додаткова інформація з дисципліни (освітнього компонента)

Робочу програму навчальної дисципліни (Силабус): Складено ст. викладач, Тимофєєва Юлія Сергіївна Ухвалено кафедрою ІСТ (протокол №21 від 29.06.2023 р.) Погоджено Методичною комісією факультету (протокол № 11 від 30.06.2023 р.)