Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы 2022-2023 / 2 сем / Baraeva_Elizaveta_lb3

.doc
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
63 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В. И. Ульянова (Ленина)

Кафедра МО ЭВМ

отчет

по лабораторной работе №3

по дисциплине «Информатика»

Тема: Введение в анализ данных

Студентка гр. 2383

Бараева Е. Н.

Преподаватель

Иванов Д. В.

Санкт-Петербург

2023

Цель работы.

Познакомиться с анализом данных при помощи библиотеки sklearn, а также реализовать программу с выполнением поставленной задачи, используя язык программирования Python.

Задание.

Вариант 4

Вам необходимо провести кластеризацию существующих сортов ириса для расширения ассортимента цветочного магазина. Для этого необходимо использовать библиотеку sklearn и встроенный в него набор данных об ирисах.

Реализуйте следующие функции:

  • load(): напишите код загрузки датасета load_iris с параметром return_X_y=True и верните первые сто элементов (классы опустить).

  • train_and_predict(X, n_clusters, random_state): напишите код, который обучит модель на данных X с кол-вом кластеров n_cluster, random_state, предскажет X и вернёт предсказанные данные.

  • optimal_n_clusters(X, n_clusters, random_state): напишите код, который обучит данные X с кол-вом кластеров n_cluster, random_state и вернёт инерцию.

Обращение к датасетам происходят через datasets, к классу кластеризации – MiniBatchKMeans.

Выполнение работы.

В функции load() был загружен датасет с помощью функции load_iris() с параметром return_X_y=True, который отвечает за возвращаемые данные функции. Затем возвращаются первые 100 элементов.

В функции train_and_predict() была обучена модель на данных X с помощь функции MiniBatchKMeans() и метода fix(). В функцию MiniBatchKMeans() были переданы: количество кластеров, количество создаваемых случайных чисел. После этого был применен метод predict(X), который прогнозирует, к какому ближайшему кластеру принадлежит каждая выборка в X.

В функции optimal_n_clusters(), как и в train_and_predict(), была обучена модель данных с помощь функции MiniBatchKMeans() и метода fix(), но в конце был применен метод inertia_. Этот метод возвращает сумму квадратов расстояний выборок до ближайшего к ним центра кластера.

Разработанный программный код см. в приложении А.

Тестирование.

Результаты тестирования представлены в табл. 1.

Таблица 1 – Результаты тестирования

№ п/п

Входные данные

Выходные данные

Комментарии

1.

print(load())

[[5.1 3.5 1.4 0.2]

[4.9 3. 1.4 0.2]

[4.7 3.2 1.3 0.2]

[4.6 3.1 1.5 0.2]

[5. 3.6 1.4 0.2]]

Проверка функции load(). Было взято первые 5 элементов.

Верно.

2.

X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])

print(optimal_n_clusters(X, 2))

16.045778756163884

Проверка функции optimal_n_clusters().

Верно.

3.

X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])

print(train_and_predict(X, 5, 100))

[4 2 0 1 3 1]

Проверка функции train_and_predict().

Верно.

Вывод.

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

ПРИЛОЖЕНИЕ А ИСХОДНЫЙ КОД ПРОГРАММЫ

Название файла: main_lb3.py

from sklearn import datasets

from sklearn.cluster import MiniBatchKMeans

def load():

iris = datasets.load_iris(return_X_y=True)

return iris[0][:100]

def train_and_predict(X, n_clusters=1, random_state=42):

return MiniBatchKMeans(n_clusters=n_clusters, random_state=random_state).fit(X).predict(X)

def optimal_n_clusters(X, n_clusters=1, random_state=42):

return MiniBatchKMeans(n_clusters=n_clusters, random_state=random_state).fit(X).inertia_

4

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