- •Ссылки на лекции
- •Удобные функции: Функция с сохранением
- •Функция, создающие аргументы для двумерного графика
- •Загрузка файлов в Colab (на примере архива с изображениями деревьев)
- •Лабораторная работа № 1. Работа с изображениями
- •Лабораторная работа № 2. Подготовка изображений для машинного обучения
- •Лабораторная работа № 3. Классификация изображений на основе логистической регрессии
- •Лабораторная работа № 4. Проверка гипотезы
- •Лабораторная работа № 5. Метод главных координат.
- •Лабораторная работа № 6. Кривые обучения.
- •Лабораторная работа № 7. Машинное обучение без учителя.
- •Лабораторная работа № 8. Обнаружение аномалий.
Ссылки на лекции
Презентации:
https://drive.google.com/drive/folders/1WNP7nN6kBps0wmIGsGhmRhtdQJmFpWCg?usp=sharing
Плейлист:
https://www.youtube.com/playlist?list=PLqgCjH6Mu4yWjpN5jzascY6WxUCNkEC56
Отдельные лекции:
https://youtu.be/mfXwTC8v1HA
https://youtu.be/8DNNNwZ9YOI
https://youtu.be/9sHScyIC4QU
Установка python:
https://youtu.be/mfXwTC8v1HA
Вариант определяется двумя цифрами: i и j.
Примечание: Если выполнение в бригаде, то вариант выбирается по первому по алфавиту человеку в бригаде.
i – последняя цифра группы.
j – номер бригады.
Важно: Использовать числа i и j напрямую в программе нельзя, только рассчитанные на их основе исходные данные для задания.
Удобные функции: Функция с сохранением
Позволяет ускорить повторный запуск программы за счёт сохранения результата функции на компьютер. На вход подаётся выполняемая функция и название файла. Если такого файла нет, то создаётся файл, выполняется функция и результат записывается в этот файл, а потом возвращается как результат функции. Если файл есть, то результат загружается из файла.
from os.path import isfile
import numpy as np
# process – рассчитываемая функция, которая долго выполняется
# filename - название файла, в который сохраняется результат
# recount - если True, функция всегда пересчитывает результат (с
# сохранением)
def processWithMemory(process, filename, recount=False):
if not filename.endswith('.npy'):
filename = filename + '.npy'
if isfile(filename) and not recount:
return np.load(filename)
res = process()
np.save(filename, res)
return res
Пример:
x = np.array([[1, 2, 3],
[2, 1, 3],
[3, 3, 1]])
# Основная функция, результат которой очень долго рассчитывается
def func():
u, _, _ = np.linalg.svd(x)
return u
# Простое выполнение функции (каждый раз рассчитывается)
res1 = func()
# Выполнение функции с сохранением (первый раз рассчитывается и записывается в файл ‘f_res.npy’, далее загружается из файла)
res2 = processWithMemory(func, 'f_res')
Функция, создающие аргументы для двумерного графика
Позволяет создать параметры некоторой математической функции 2-х переменных для последующего отображения на графике.
# f – функция двух аргументов f(x,y) такая, что если на входе два
# вектора значений, функция выполняет операцию поэлементно и
# возвращает вектор значений r так , что
# для каждого i r[i] = f(x[i], y[i])
# x_lim, y_lim – кортежи с пределами построения графика для каждой переменной: (min, max)
# grid_n – количество отсчётов вдоль каждого аргумента, то есть график строится по grid_n x grid_n точкам
# Возвращаемое значение: кортеж с матрицами x,y,z для графика
def plot2d_params(f, x_lim, y_lim, grid_n=100, args = ()):
x1_p = np.linspace(x_lim[0], x_lim[1], grid_n)
x2_p = np.linspace(y_lim[0], y_lim[1], grid_n)
x1_p, x2_p = np.meshgrid(x1_p, x2_p)
s = x1_p.shape
r = f(x1_p.flatten(), x2_p.flatten(), *args)
r.shape = s
return (x1_p, x2_p, r)
Пример:
def graph_func(x, y):
return x ** 2 + y ** 2
x, y, z = plot2d_params(graph_func, (-10, 10), (-10, 10))
plt.contour(x, y, z, levels=10)
plt.show()
