/
LeonBlue
/
ML_algos_from_scratch_python
Обзор
Документация
Войти
/
LeonBlue
/
ML_algos_from_scratch_python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
examples/kmeans_example.py
57 строк
2 KB
LeonBlue
Добавлены Jupyter ноутбуки для теории и визуализации алгоритмов, обновлены зависимости в requirements.txt, улучшены классы KMeans и LogisticRegression с методами для получения и установки параметров модели.
07 дек 2025, 01:03
07 дек 2025, 01:03
80e326c
Код
Авторство
О чём код?
""" Пример использования K-Means кластеризации """ import numpy as np import sys import os # Добавляем путь к корню проекта sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from ml_algorithms.unsupervised import KMeans def main(): # Генерация синтетических данных с тремя кластерами np.random.seed(42) n_samples_per_cluster = 50 # Кластер 1 cluster1 = np.random.randn(n_samples_per_cluster, 2) + np.array([0, 0]) # Кластер 2 cluster2 = np.random.randn(n_samples_per_cluster, 2) + np.array([5, 5]) # Кластер 3 cluster3 = np.random.randn(n_samples_per_cluster, 2) + np.array([0, 5]) # Объединение данных X = np.vstack([cluster1, cluster2, cluster3]) # Перемешивание indices = np.random.permutation(len(X)) X = X[indices] # Обучение модели model = KMeans(n_clusters=3, max_iter=300, random_state=42, init='k-means++', distance='chebyshev') model.fit(X) # Предсказания labels = model.predict(X) print("K-Means кластеризация") print("=" * 50) print(f"Число кластеров: {model.n_clusters}") print(f"\nЦентроиды:") for i, centroid in enumerate(model.centroids_): print(f" Кластер {i}: {centroid}") print(f"\nРаспределение точек по кластерам:") unique, counts = np.unique(labels, return_counts=True) for cluster_id, count in zip(unique, counts): print(f" Кластер {cluster_id}: {count} точек") if __name__ == "__main__": main()