Добавил:
baraevaliza
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы 2022-2023 / 2 сем / Baraeva_Elizaveta_lb3
.pdf
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В. И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра МО ЭВМ
ОТЧЕТ
по лабораторной работе №3
по дисциплине «Информатика»
Тема: Введение в анализ данных
Студентка гр. 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 сем
