import pandas as pd import matplotlib.pyplot as plt from sklearn.cluster import DBSCAN from sklearn.preprocessing import StandardScaler # Загрузка данных из .csv-файла data = pd.read_csv('stroke_prediction_ds.csv') # В датасете встречаются null-значения, поэтому предварительно очистим датасет от них data = data.dropna() # Выбор признаков (гипертензия и сердечные заболевания) features = data[['age', 'avg_glucose_level']] # Нормализация признаков перед применением алгоритма DBScan, что позволит алгоритму работать быстрее и давать лучшие # результаты, так как данные будут приведены к одному виду на единой шкале scaler = StandardScaler() features = scaler.fit_transform(features) # Создание экземпляра DBScan dbscan = DBSCAN(eps=0.1, min_samples=5) # Применение алгорита DBScan к данным data['cluster'] = dbscan.fit_predict(features) # Визуализация данных plt.scatter(data['age'], data['avg_glucose_level'], c=data['cluster']) plt.xlabel('Возраст') plt.ylabel('Средний уровень сахара в крови') plt.title('Кластеризация данных по возрасту и среднему уровню сахара в крови') plt.show()