Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лектор - Николай Анохин
Постановка задачи кластеризации. Функции расстояния. Критерии качества кластеризации. EM-алгоритм. K-means и модификации.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №4 "Задача классификации"
Лектор - Николай Анохин
Постановка задач классификации и регрессии. Теория принятия решений. Виды моделей. Примеры функций потерь. Переобучение. Метрики качества классификации. MDL. Решающие деревья. Алгоритм CART.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №5 "Обработка текстов, Naive Bayes"
Лектор - Николай Анохин
Условная вероятность и теорема Байеса. Нормальное распределение. Naive Bayes: multinomial, binomial, gaussian. Сглаживание. Генеративная модель NB и байесовский вывод. Графические модели.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №6 "Линейные модели для классификации и регрессии"
Лектор - Николай Анохин
Обобщенные линейные модели. Постановка задачи оптимизации. Примеры критериев. Градиентный спуск. Регуляризация. Метод Maximum Likelihood. Логистическая регрессия.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №7 "Машина опорных векторов"
Лектор - Николай Анохин
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. KKT-условия. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №3 "Различные алгоритмы кластеризации"
Лектор - Николай Анохин
Иерархическая кластеризация. Agglomerative и Divisive алгоритмы. Различные виды расстояний между кластерами. Stepwise-optimal алгоритм. Случай неэвклидовых пространств. Критерии выбора количества кластеров: rand, silhouette. DBSCAN.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №8 "Методы снижения размерности пространства"
Лектор - Владимир Гулин
Проблема проклятия размерности. Отбор и выделение признаков. Методы выделения признаков (feature extraction). Метод главных компонент (PCA). Метод независимых компонент (ICA). Методы основанные на автоэнкодерах. Методы отбора признаков (feature selection). Методы основанные на взаимной корреляции признаков. Метод максимальной релевантность и минимальной избыточности (mRMR). Методы основанные на деревьях решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №10 "Алгоритмические композиции. Завершение"
Лектор - Владимир Гулин
Ключевые идеи бустинга. Отличия бустинга и бэггинга. Алгорим AdaBoost. Градиентный бустинг. Мета-алгоритмы над алгоритмическими композициями. Алгоритм BagBoo.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №4 "Задача классификации"
Лектор - Николай Анохин
Постановка задач классификации и регрессии. Теория принятия решений. Виды моделей. Примеры функций потерь. Переобучение. Метрики качества классификации. MDL. Решающие деревья. Алгоритм CART.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №5 "Обработка текстов, Naive Bayes"
Лектор - Николай Анохин
Условная вероятность и теорема Байеса. Нормальное распределение. Naive Bayes: multinomial, binomial, gaussian. Сглаживание. Генеративная модель NB и байесовский вывод. Графические модели.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №6 "Линейные модели для классификации и регрессии"
Лектор - Николай Анохин
Обобщенные линейные модели. Постановка задачи оптимизации. Примеры критериев. Градиентный спуск. Регуляризация. Метод Maximum Likelihood. Логистическая регрессия.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №7 "Машина опорных векторов"
Лектор - Николай Анохин
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. KKT-условия. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №3 "Различные алгоритмы кластеризации"
Лектор - Николай Анохин
Иерархическая кластеризация. Agglomerative и Divisive алгоритмы. Различные виды расстояний между кластерами. Stepwise-optimal алгоритм. Случай неэвклидовых пространств. Критерии выбора количества кластеров: rand, silhouette. DBSCAN.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №8 "Методы снижения размерности пространства"
Лектор - Владимир Гулин
Проблема проклятия размерности. Отбор и выделение признаков. Методы выделения признаков (feature extraction). Метод главных компонент (PCA). Метод независимых компонент (ICA). Методы основанные на автоэнкодерах. Методы отбора признаков (feature selection). Методы основанные на взаимной корреляции признаков. Метод максимальной релевантность и минимальной избыточности (mRMR). Методы основанные на деревьях решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №10 "Алгоритмические композиции. Завершение"
Лектор - Владимир Гулин
Ключевые идеи бустинга. Отличия бустинга и бэггинга. Алгорим AdaBoost. Градиентный бустинг. Мета-алгоритмы над алгоритмическими композициями. Алгоритм BagBoo.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №9 "Алгоритмические композиции. Начало"
Лектор - Владимир Гулин
Комбинации классификаторов. Модельные деревья решений. Смесь экспертов. Stacking. Стохастические методы построения ансамблей классификаторов. Bagging. RSM. Алгоритм RandomForest.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №1 "Задачи Data Mining"
Лектор - Николай Анохин
Обзор задач Data Mining. Стандартизация подхода к решению задач Data Mining. Процесс CRISP-DM. Виды данных. Кластеризация, классификация, регрессия. Понятие модели и алгоритма обучения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №12 "Ограниченная машина Больцмана"
Лектор - Павел Нестеров
Нейросетейвой автоэнкодер. Стохастические и рекурентные нейронные сети. Машина Больцмана и ограниченная машина Больцмана. Распределение Гиббса. Алгоритм contrastive divergence для обучения РБМ. Сэмплирование данных из РБМ. Бинарная РБМ и гауссово-бинарная РБМ. Влияние регуляризации, нелинейное сжатие размерности, извлечение признаков. Semantic hashing.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №11 "Основы нейронных сетей"
Лектор - Павел Нестеров
Биологический нейрон и нейронные сети. Искусственный нейрон Маккалока-Питтса и искусственная нейронная сеть. Персептрон Розенблатта и Румельхарта. Алгоритм обратного распространения ошибки. Момент обучения, регуляризация в нейросети, локальная скорость обучения, softmax слой. Различные режимы обучения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №13 "Глубокие нейронные сети"
Лектор - Павел Нестеров
Трудности обучения многослойного персептрона. Предобучение используя РБМ. Глубокий автоэнкодер, глубокая многослойная нейросеть. Deep belief network и deep Boltzmann machine. Устройство человеческого глаза и зрительной коры головного мозга. Сверточные сети.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №9 "Алгоритмические композиции. Начало"
Лектор - Владимир Гулин
Комбинации классификаторов. Модельные деревья решений. Смесь экспертов. Stacking. Стохастические методы построения ансамблей классификаторов. Bagging. RSM. Алгоритм RandomForest.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №1 "Задачи Data Mining"
Лектор - Николай Анохин
Обзор задач Data Mining. Стандартизация подхода к решению задач Data Mining. Процесс CRISP-DM. Виды данных. Кластеризация, классификация, регрессия. Понятие модели и алгоритма обучения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №12 "Ограниченная машина Больцмана"
Лектор - Павел Нестеров
Нейросетейвой автоэнкодер. Стохастические и рекурентные нейронные сети. Машина Больцмана и ограниченная машина Больцмана. Распределение Гиббса. Алгоритм contrastive divergence для обучения РБМ. Сэмплирование данных из РБМ. Бинарная РБМ и гауссово-бинарная РБМ. Влияние регуляризации, нелинейное сжатие размерности, извлечение признаков. Semantic hashing.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №11 "Основы нейронных сетей"
Лектор - Павел Нестеров
Биологический нейрон и нейронные сети. Искусственный нейрон Маккалока-Питтса и искусственная нейронная сеть. Персептрон Розенблатта и Румельхарта. Алгоритм обратного распространения ошибки. Момент обучения, регуляризация в нейросети, локальная скорость обучения, softmax слой. Различные режимы обучения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №13 "Глубокие нейронные сети"
Лектор - Павел Нестеров
Трудности обучения многослойного персептрона. Предобучение используя РБМ. Глубокий автоэнкодер, глубокая многослойная нейросеть. Deep belief network и deep Boltzmann machine. Устройство человеческого глаза и зрительной коры головного мозга. Сверточные сети.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Рассматриваются методы решения систем линейных алгебраических уравнений с трехдиагональными, симметричными и положительно определенными матрицами коэффициентов.
Точечная оценка. Определение
Пример 1
Свойства точечных оценок
Несмещенность
Пример 2
Состоятельность
Эффективность
Асимптотическая нормальность
Робастность
3. Задача кластеризации
В задачах кластеризации целевая переменная не задана. Цель –
отыскать “скрытую структуру” данных.
Зачем вообще рассматривать задачи без целевой переменной?
1. разметка данных – дорогое удовольствие
2. можно сначала поделить, а потом разметить
3. возможность отслеживать эволюционные изменения
4. построение признаков
5. exploratory data analysis
2 / 30
6. Топ 1000 самых посещаемых доменов рунета
T-SNE + DBSCAN
5 / 30
7. Постановка задачи
Дано. N обучающих D-мерных объектов xi ∈ X, образующих
тренировочный набор данных (training data set) X.
Найти. Модель h∗
(x) из семейства параметрических функций
H = {h(x, θ) : X × Θ → N}, ставящую в соответствие произвольному
x ∈ X один из K кластеров так, чтобы объекты внутри одного
кластера были похожи, а объекты из разных кластеров различались.
Как определить похожесть объектов?
Как оценить качество модели?
Как выбрать K?
6 / 30
9. Old Faithful data set
D = date of recordings in month (in August)
X = duration of the current eruption in minutes
Y = waiting time until the next eruption in minutes
(a) Yellowstone Park (b)
8 / 30
10. Смесь нормальных распределений
“Скрытая” K-мерная переменная z – принадлежность объекта к
одному из кластеров
p(zk = 1) = πk , zk ∈ {0, 1},
k
zk = 1 → p(z) =
k
πzk
k
Распределение x для каждого из K кластеров
p(x|zk) = N(x|µk , Σk ) → p(x|z) =
k
N(x|µk , Σk )zk
Смесь нормальных распределений
p(x) =
k
πk N(x|µk , Σk )
9 / 30
11. Апостериорная вероятность принадлежности к k кластеру
(априорная равна πk )
γ(zk ) = p(zk = 1|x) =
p(zk = 1)p(x|zk = 1)
K
j=1 p(zj = 1)p(x|zj = 1)
=
=
πk N(x|µk , Σk )
K
j=1 πj N(x|µj , Σj )
10 / 30
12. Maximum Likelihood (!)
ML принцип
Пусть дано семейство параметрических моделей h(x, θ). Выбираем
вектор параметров θ, максимизирующий функцию правдоподобия
(likelihood) p(D|θ), соответствующую рассматриваемому семейству
моделей.
Функция правдоподобия
log(X|π, µ, Σ) =
N
n=1
log
k
πk N(xn|µk , Σk ) → max
π,µ,Σ
Сложности
схлопывание компонент
переименование кластеров
невозможно оптимизировать аналитически
11 / 30
14. Expectation Maximization (!)
E Expectation: при фиксированных µk , Σk , πk
γ(znk ) =
πk N(xn|µk , Σk )
K
j=1 πj N(xn|µj , Σj )
M Maximization: при фиксированных γ(znk )
Nk =
N
n=1
γ(znk ), µk =
1
Nk
N
n=1
γ(znk )xn
Σk =
1
Nk
N
n=1
γ(znk )(xn − µk )(xn − µk )T
πk =
Nk
N
S Остановиться при достижении сходимости
13 / 30
16. EM-алгоритм
Дано. Известно распределение P(X, Z|θ), где x – наблюдаемые
переменные, а z – скрытые.
Найти. θ, максимизирующее P(X|θ).
E вычислить P(Z|X, θold
) при фиксированном θold
M вычислить θnew
= arg maxθ Q(θ, θold
), где
Q(θ, θold
) = EZ[ln p(X, Z|θ)] =
Z
p(Z|X, θold
) ln p(X, Z|θ))
Улучшение: ввести априорное распределение p(θ)
15 / 30
17. K-means
Пусть Σk = I, тогда
p(x|µk , Σk ) =
1
√
2π
exp(−
1
2
x − µk
2
)
Рассмотрим стремление → 0
γ(znk ) =
πk exp(− 1
2 xn − µk
2
)
j πj exp(− 1
2 xn − µj
2)
→ rnk =
1, для k = arg minj xn − µj
2
0, иначе
Функция правдоподобия
EZ[ln p(X, Z|µ, Σ, π)] → −
N
n=1
K
k=1
rnk xn − µk
2
+ const
Вектор средних
µk = n rnk xn
n rnk
16 / 30
18. K-means
1 function kmeans(X, K):
2 initialize N # number of objects
3 initialize Mu = (mu_1 ... mu_K) # random centroids
4 do:
5 # E step
6 for k in 1..K:
7 for x in 1..N:
8 compute r_nk # Cluster assignment
9 # M step
10 for k in 1..K:
11 recompute mu_k # Update centroids
12 until Mu converged
13 J = loss(X, Mu)
14 return Mu, J
Сложность O(NK)
Локальная оптимизация (!)
17 / 30
21. Модификации k-means
На каждом шаге работаем с b случайно выбранными объектами
из каждого кластера (mini-batch k-means)
Критерий качества (k-medoids)
˜J =
N
n=1
K
k=1
rnk d(xn, µk )
d – функция расстояния, µk – один из объектов в кластере
20 / 30
22. Альтернативные функции расстояния
Def
Функция d(x, y) : X × X → R является функцией расстояния,
определенной на пространстве X тогда и только тогда, когда
∀x ∈ X, ∀y ∈ X, ∀z ∈ X выполнено:
1. d(x, y) ≥ 0
2. d(x, y) = 0 ⇔ x = y
3. d(x, y) = d(y, x)
4. d(x, y) ≤ d(x, z) + d(y, z)
21 / 30
23. Расстояния 1
Минковского
dr (x, y) =
N
j=1
|xj − yj |r
1
r
Евклидово r = 2
dE (x, y) = d2(x, y)
Манхэттэн r = 1
dM (x, y) = d1(x, y)
r = ∞
d∞(x, y) = max
j
|xj − yj |
22 / 30
24. Проблема
Функции расстояния чувствительны к преобразоаниям данных
Решение
Преобразовать обучающую выборку так, чтобы признаки имели
нулевое среднее и единичную дисперсию – инвариантность к
растяжению и сдвигу (standartize)
Преобразовать обучающую выборку так, чтобы оси совпадали с
главными компонентами матрицы ковариации – инвариантность
относительно поворотов (PCA)
23 / 30
25. Расстояния 2
Жаккар
dJ (x, y) = 1 −
|x ∩ y|
|x ∪ y|
Косинус
dc (x, y) = arccos
xy
x y
Правки
de – наименьшее количество
удалений и вставок, приводящее x к
y.
Хэмминг
dH – количество различных
компонент в x и y.
24 / 30
26. Проклятие размерности
Задача
Даны два случайных вектора x и y в пространстве размерности D.
Как зависит математическое ожидание косинус-расстояния между x
и y от размерности D?
dc (x, y) = arccos
D
j=1 xj yj
D
j=1 x2
j
D
j=1 y2
j
Наблюдения:
числитель стремится к нулю
знаменатель положительный
Вывод: dc (x, y) → π
2 .
25 / 30
27. Альтернативные критерии качества
Критерий
J =
K
k=1 xi ∈Ck
xi − mk
2
=
=
1
2
K
k=1
nk
1
n2
k xi ∈Ck xj ∈Ck
xi − xj
2
=
=
1
2
K
k=1
nk
1
n2
k xi ∈Ck xj ∈Ck
s(xi , xj )
=
1
2
K
k=1
nk¯sk
Примеры ¯si
sk = min
xi ,xj
s(xi , xj ); ¯sk = max
xi ,xj
s(xi , xj )
26 / 30
28. Кластеризация
Идея
Выбрать критерий качества кластеризации J и расстояние между
объектами d(xi , xj ) и вычислить разбиение выборки на кластеры,
которое которое соответствует оптимальному значению выбранного
критерия.
27 / 30
29. Качество кластеризации
Пусть дана обучающая выборка, для которой правильная
кластеризация C известна. С помощью выбранного алгоритма
получена кластеризация K. Проверить, насколько K совпадает с C.
Rand Index
a – кол-во пар объектов, попавших в один кластер и в C, и в K
b – кол-во пар объектов, попавших в разные кластеры и в C, и в K
RI =
a + b
CN
2
Mutual Information
MI =
c∈C k∈K
p(c, k) log
p(c, k)
p(k)p(c)
28 / 30
30. Задача
Дано: Сгенерированная смесь из гауссовских распределений
Требуется: Исследовать стабильность и чувствительность к
линейным преобразованиям алгоритма k-means
Пошаговая инструкция
1. Скачать и запустить шаблон кода на python
http://bit.ly/1yyVTyw
$ python kmeans.py -h
$ python kmeans.py
2. Заполнить функцию rand_index
Меняется ли rand от запуска к запуску?
3. Дописать функцию cluster_data
Реализовать N-times random restart
4. Как меняется результат кластеризации, если применить к
данным различные линейные преобразования?
29 / 30