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

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

.pdf
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
188 Кб
Скачать
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В. И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра МО ЭВМ
ОТЧЕТ
по дисциплине «Информатика»
Тема: Введение в анализ данных
Студентка гр. 2383
Бараева Е. Н.
Преподаватель
Иванов Д. В.
Санкт-Петербург
2023
2
Цель работы.
Познакомиться с анализом данных при помощи библиотеки 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() были переданы: количество кластеров, количество
3
создаваемых случайных чисел. После этого был применен метод 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.045778756163 884
Проверка функции 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, и реализована программа, загружающая и
обучающая данные, а также предсказывающая и считающая инерцию.
4
ПРИЛОЖЕНИЕ А
ИСХОДНЫЙ КОД ПРОГРАММЫ
Название файла: 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_
Соседние файлы в папке 2 сем