Дисциплина «Машинное обучение в прикладных задачах анализа данных»
Рабочая тетрадь № 1
Цель изучения дисциплины – формирование компетенций в области современных информационных технологий с применением инструментария искусственного интеллекта и машинного обучения. Для реализации методов и алгоритмов будем использовать язык программирования Python.
|
Python является популярным высокоуровневым языком программирования, который применяется для решения прикладных задач принятия решений с использованием технологий искусственного интеллекта и машинного обучения.
Для реализации методов и алгоритмов, изучаемых в данной дисциплине, рекомендуется использовать среду разработок Anaconda, содержащую библиотеки языка программирования Python с открытым исходным кодом.
https://www.anaconda.com/products/individual
Для выполнения заданий из рабочих тетрадей рекомендуется использовать Jupyter Notebook.
| Название рабочих тетрадей должно содержать фамилию и имя студента, номер рабочей тетради. Например,
Для создания файла необходимо выбрать вкладку New/Notebook:
Далее File/Rename и указать название файла.
|
1.1. Теоретический материал – Типы данных
| Типы данных
Все типы данных в Python относятся к одной из 2-х категорий:
изменяемые (mutable) и неизменяемые (immutable).
Неизменяемые объекты:
числовые данные (int, float), bool, None, символьные строки (class 'str'), кортежи (tuple).
Изменяемые объекты:
списки (list), множества (set), словари (dict).
| 1.2. Пример
| Задача:
|
| Выведите на печать и определите тип переменной.
| Решение:
|
|
| Ответ:
|
|
| 1.3. Задание
| 1.
| Задача:
|
| Выведите на печать и определите тип переменной.
| Решение:
|
|
| Ответ:
|
|
|
2.1. Теоретический материал – Условный оператор
| If – Условный оператор
В коде часто приходится проверять выполнимость или невыполнимость каких-то условий. Синтаксис:
if <условие1 (булевское выражение)> :
<код, который выполнится, если условие верно>
elif <условие2 (булевское выражение)>:
<код, который выполнится, если условие1 было неверно, а условие2 верно>
else:
<код, который выполнится, если условие1 и условие2 были неверны>
Обратите внимание, что код, который должен выполняться внутри каждого условия, записывается с отступом в 4 пробела от уровня if, elif и else: в питоне области видимости переменных обозначаются отступами.
То есть, отступы позволяют понять, где начинается код, который должен выполняться при выполнении условия в if, и где заканчивается.
| 2.2. Пример
| 1.
| Задача:
|
| Вывести на экран является ли переменная х положительной, отрицательной или равна нулю.
| Решение:
|
|
| Ответ:
|
| x положительный
| 2.3. Задание
| 1.
| Задача:
|
| Напишите код. Задается х, напечатать какому из интервалов принадлежит: (-infinity, -5), [-5, 5] или от (5, +infinity)
| Решение:
|
|
| Ответ:
|
|
|
3.1. Теоретический материал – Циклы, массивы, срезы
| Циклы - for и while
Цикл while проверяет истинность условия, и если условие истинно, то выполняет инструкции цикла.
Синтаксис:
while условие:
инструкции
Инструкции, которые относятся к циклу while, располагаются на последующих строках и должны иметь отступ от начала ключевого слова while.
Цикл for проходит по набору значений, помещает каждое значение в переменную с которой в цикле можно производить различные действия.
Синтаксис:
for переменная in набор_значений:
инструкции
После ключевого слова for идет название переменной, в которую будут помещаться значения. После оператора in указывается набор значений и двоеточие. Инструкции, которые относятся к циклу, располагаются на последующих строках и должны иметь отступ.
При создании цикла удобно пользоваться функцией range(a, b), которая создает последовательность чисел от a до b-1.
| 3.2.1. Пример
| Задача:
|
| Вывести все числа от 1 до 10 с шагом 3.
| Решение:
|
|
| Ответ:
|
|
| 3.2.2. Пример
| Задача:
|
| Задан список. Напечатать все элементы списка.
| Решение:
|
|
| Ответ:
|
|
| 3.2.3. Пример
| Задача:
|
| Создать список от 1 до 99 с шагом 7.
| Решение:
|
|
| Ответ:
|
|
| 3.2.4. Пример
| Задача:
|
| Вывести на экран числа от 5 до 105 с шагом 25, используя функцию range()
| Решение:
|
|
| Ответ:
|
|
| 3.2.5. Пример
| Задача:
|
| Срез. Необходимо получить каждый k-й элемент массива a, начиная с элемента с индексом i (включительно) и заканчивая элементом с индексом j (не включительно), c шагом 2. Переставить все элементы в обратном порядке.
| Решение:
|
|
| Ответ:
|
|
| 3.3.1 Задание
| 1.
| Задача:
|
| Выведите числа из примера на while (3.2.1) в обратном порядке.
| Решение:
|
|
| Ответ:
|
|
| 3.3.2 Задание
| 1.
| Задача:
|
| При решении задач машинного обучения часто в качестве объектов исследования выступает человек. Создайте список значимых характеристик (признаков), идентифицирующих человека. Выведите список на экран.
| Решение:
|
|
| Ответ:
|
|
| 3.3.3 Задание
| 1.
| Задача:
|
| Создать список чисел от 2 до 15 с шагом 1.
| Решение:
|
|
| Ответ:
|
|
| 3.3.4 Задание
| 1.
| Задача:
|
| Выведите числа из примера на for c функцией range() (3.2.4) в обратном порядке.
| Решение:
|
|
| Ответ:
|
|
| 3.3.5 Задание
| 1.
| Задача:
|
| Срез. Напишите код, который все элементы массива x с четными индексами переставит в обратном порядке. Т.е. если x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], то код должен сформировать [8, 1, 6, 3, 4, 5, 2, 7, 0, 9].
| Решение:
|
|
| Ответ:
|
|
|
4.1. Теоретический материал - Библиотеки
| Машинное обучение опирается на фундаментальные понятия и законы математики и информатики. Библиотека математических функций (math) применяется при решении большинства прикладных задач анализа данных. Также, и некоторые другие библиотеки Python содержат математические функции (например, NumPy). Важную роль играет библиотека matplotlib, которая позволяет производить визуализацию расчетов в удобной для восприятия человеком форме: графики, диаграммы, гистограммы.
Подключение библиотек – синтаксис:
import math as m
import numpy as np
import matplotlib.pyplot as plt
etc…
Библиотеки в python содержат не только функции, позволяющие решать различные задачи, но и некоторые популярные константы, например число Эйлера.
| 4.2.1 Пример
| Задача:
|
| Рассчитать синус от е радиан и вывести результат на экран
| Решение:
|
|
| Ответ:
|
|
| 4.2.2 Пример
| Задача:
|
| Для функции на интервале [0;10] с шагом 0,05 построить график функции, закрасить площадь под ним и вычислить значение этой площади.
Для вычисления площади воспользуйтесь функцией trapz(), вычисляющей интеграл по правилу трапеции. Для ее корректной работы необходимо подключить следующие библиотеки:
from scipy.integrate import simps
from numpy import trapz
| Решение:
|
|
| Ответ:
|
|
| 4.2.3 Пример
| Задача:
|
| Дано некоторое распределение оценок в группе за экзамен. Нарисовать круговую и точечную диаграммы распределения.
| Решение:
|
|
| Ответ:
|
|
| 4.3.1 Задание
| 1.
| Задача:
|
| Задайте массив случайных значений из интервала (0; 1).
Рассчитайте средние и медианные значения для массива, сравните результаты, какие выводы можно сделать о значениях?
Постройте точечную диаграмму рассеяния полученного ряда.
| Решение:
|
|
| Ответ:
|
|
| 4.3.2 Задание
| 1.
| Задача:
|
| Дана функция Создать массив из 10 значений функции ( , например, изменяется от 1 до 10). Выделить срез первой половины массива и построить графики для основного массива, используя plt.plot(), для среза – точечный (plt.scatter()).
| Решение:
|
|
| Ответ:
|
|
| 4.3.3 Задание
| 1.
| Задача:
|
| Дана функция Построить график на интервале (0, 10) с шагом 1 с заливкой площади и найти эту площадь под ним. Для вычисления площади воспользуйтесь функцией trapz(), вычисляющей интеграл по правилу трапеции.
Для ее корректной работы необходимо подключить следующие библиотеки:
from scipy.integrate import simps
from numpy import trapz
| Решение:
|
|
| Ответ:
|
|
| 4.3.4 Задание
| 1.
| Задача:
|
| Откройте статистические данные по стоимости акций Apple, Microsoft, Google за 12 месяцев 2021 г. Постройте 3 графика на плоскости и оцените их динамику. Подумайте, как можно улучшить визуализацию результатов.
Для начальных данных допустимо использовать следующий ресурс: https://finance.yahoo.com
| Решение:
|
|
| Ответ:
|
|
| 4.3.5 Задание
| 1.
| Задача:
|
| Создайте простейший калькулятор, включающий основные действия для двух переменных , а также вычисление следующих функций: .
| Решение:
|
|
| Ответ:
|
|
| |