Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
семестр 2 / Задания ИТиП 2 семестр.docx
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
28.8 Кб
Скачать

Лабораторная работа № 6. Кривые обучения.

Цель работы: Научиться использовать кривые обучения.

Дано: Набор изображений со спутника с деревьевьями и без (см. прошлые работы)

Задание:

1. Подготовить изображения:

А) согласно лабораторной работе № 5, оставить 60 главных координат.

Примечание: если вы использовали функцию с сохранением результата svd в файл, можно использовать эти данные.

Б) использовать всего только 3000 + j * 200 изображений

В) разделить на две равные группы для обучения и кроссвалидации.

2. Создать необходимые функции для проведения машинного обучения.

3. Построить кривые обучения по используемым данным (зависимость функции стоимости получившейся в результате обучения гипотезы от количества используемых образцов).

кол-во изображений

1

100

200

300

400

Ncv

Jоб

Jcv

4. По кривым обучения сделать выводы о возможных действиях для улучшения машинного обучения.

Лабораторная работа № 7. Машинное обучение без учителя.

Цель работы: Научиться разделять данные на несколько групп.

Дано: Набор изображений со спутника с деревьевьями и без (см. прошлую работу)

Задание:

1. Загрузить изображения, сделать массив для машинного обучения (каждая строка -- изображение)

2. С помощью метода главных координат найти главные две координаты изображений.

3. Построить график в этих координатах, на котором каждая точка -- это представление изображения в этих двух координатах.

4. Разделить изображения на 3 группы с помощью метода K-means. Использовать не сами изображения, а две главные координаты:

a. Выбрать начальные центры групп (использовать координаты первых трёх изображений)

б. Найти квадрат расстояния от каждого изображения до каждого из центров в виде массива:

dists такой, что dists[i,j] – расстояние от i-го изображения до j-го центра

в. Отнести каждое изображение к одной из групп по минимальному расстоянию. Для каждого изображения найти ближайший центр. Удобно использовать функцию

np.argmin(dist, axis=#Нужное направление#)

которая находит индекс элемента в массиве с минимальным значением.

г. Обновить центры групп как среднее арифметическое всех изображений, для которых предыдущий центр был ближайшим. Выделить нужные изображения можно с помощью команды:

X[idx == i, :]

где idx – массив с номером группы для каждого изображения (из пункта в),

i – номер группы, которую нужно выделить.

д. Создать цикл, выполняющий операции а-г до тех пор, пока центры групп меняют положение.

5. Построить график (как в п.3), только разделить найденные группы по цветам. Для этого можно в цикле вызвать функцию scatter.

Лабораторная работа № 8. Обнаружение аномалий.

Цель работы: Научиться определять параметры нормального распределения по данным, не переписывать цель как выводы к работе и обнаруживать аномальные данные по распределению.

Теория.

В предоставленных для машинного обучения данных бывают аномалии (значения, сильно выбивающиеся из общего распределения). Они возникают из-за ошибок при сборе и обработке данных и могут привести к неправильной работе алгоритма. Например, если данные -- это изображения, то могут быть пересвеченные или зашумлённые изображения.

Для устранения аномалий необходимо создать модель, определяющую степень схожести данных. Это может быть некоторая функция, которая принимает большие значения, если образец похож на другие и маленькие, если образец отличается.

Поскольку многие процессы в мире в той или иной степени подчиняются нормальному распределению, то можно в качестве такой функции использовать его плотность вероятности. Она тем меньше, чем менее вероятно появление образца в данных.

Для процесса с одним параметром плотность распределения определяется следующим образом:

где m - среднее значение параметра, 𝜎- его среднеквадратическое отклонение.

Для процесса с несколькими независимыми параметрами, плотности вероятности перемножаются.

Для найденного распределения, можно найти аномалии по следующему критерию:

где X – все параметры данных, pпор – порог принятия решения.

Для обучения данные представляются своими параметрами (X) и ответом (y), где y=1 если имеется аномалия, иначе 0.

Для нахождения аномалий данные для обучения, кроссвалидации и тестирования распределяются несколько иначе.

Поскольку требуется определить правильные параметры распределения процесса, то в данные для обучения аномалии не добавляются.

В данные кроссвалидации и тестирования аномалии добавляются в одинаковом количестве и данные перемешиваются.

В процессе обучения по данным обучения строится модель (плотность вероятности, что образец нормальный), далее по данным кроссвалидации определяется оптимальный порог вероятности, по которому следует отсеивать аномалии таким образом, чтобы вероятность ошибки была минимальна. Можно использовать другие методы, например f-score.

Отличие данного метода от логистической регрессии заключается в том, что в данных нет зависимости y(X). Аномальные данные -- это любые сильно отличающиеся значения. Обычно аномальных данных намного меньше, чем нормальных.

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

Найти: Изображения, отличающиеся от других (аномальные).

Задание.

  1. Загрузить изображения, с помощью метода главных координат выделить вектора 2 главных координат (см. предыдущую работу)

  2. Загрузить только изображения с лесом (начинающиеся с "Forest")

Примечание: У типа str есть метод str.startswith(‘Начало строки’), позволяющее выделить нужные названия из списка названий файлов

  1. Преобразовать изображения из п. 2 с помощью преобразования из п. 1.

  2. Определить параметры нормального 2-мерного распределения по выборке из п. 3.

  3. Построить график с изображениями в главных координатах, нанести на него контурный график распределения (см. полезные функции).

  4. Добавить к выборке 4 аномальных изображения, полученных из j-го изображения:

img_a1 = img / 5; # Тёмное:

img_a2 = img * 5 * (img < 52) + 255 * (img > 51) # Пересвеченное

img_a3 = img.copy() # С чёрными и белыми точками

img_a3[::2,::2,:] = 0

img_a3[1::2, 1::2, :] = 255

img_a4 = imgs[0].copy() # C перепутанными 0 и 2 каналами

img_a4[:,:,2], img_a4[:,:,0] = img_a4[:,:,0], img_a4[:,:,2]

  1. Создать функцию, отделяющую нормальные изображения от аномальных на основе параметров нормального распределения из п. 4 и порога принятия решения.

  2. Определить оптимальный порог принятия решения так, чтобы как можно больше изображений было определено правильно.

Соседние файлы в папке семестр 2