Telegram Web
↔️ Как не потерять данные из-за пропусков: практические стратегии

Пропущенные данные — распространённая проблема в реальных проектах. Причины могут быть разными: ошибки при сборе, повреждение файлов, неполные опросы и прочее.

Представляем три продвинутых способа иммутации пропусков с использованием Pandas и Scikit-learn:

1️⃣ Множественная иммутация с помощью цепочек уравнений (MICE)

Использует модели, например, Байесовскую регрессию или случайный лес, чтобы последовательно заполнять пропуски, обучаясь на известных данных.
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer

iterative_imputer = IterativeImputer(random_state=42, max_iter=10)
df_imputed = pd.DataFrame(iterative_imputer.fit_transform(df), columns=df.columns)
print(df_imputed.isnull().sum().sum()) # Пропусков больше нет


Можно менять модель, например, использовать RandomForestRegressor для иммутации.

2️⃣ Иммутация с помощью K-ближайших соседей (KNN)

Заполняет пропуски, опираясь на похожие строки с известными значениями. Вес соседей можно задавать по расстоянию или равномерно.
from sklearn.impute import KNNImputer

knn_imputer = KNNImputer(n_neighbors=5, weights='distance')
df_knn = pd.DataFrame(knn_imputer.fit_transform(df), columns=df.columns)
print(df_knn.isnull().sum().sum())


3️⃣ Ансамблевая иммутация разными моделями

Запускаем разные иммутационные модели, получаем несколько вариантов заполненных данных, а затем выбираем лучший результат, ориентируясь на ключевые признаки:
from sklearn.linear_model import BayesianRidge
from sklearn.ensemble import ExtraTreesRegressor, RandomForestRegressor

imputers = {
'bayesian_ridge': IterativeImputer(estimator=BayesianRidge(), random_state=42),
'extra_trees': IterativeImputer(estimator=ExtraTreesRegressor(n_estimators=10, random_state=42), random_state=42),
'rf_regressor': IterativeImputer(estimator=RandomForestRegressor(n_estimators=10, random_state=42), random_state=42)
}

imputed_datasets = {}
for name, imputer in imputers.items():
imputed_datasets[name] = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)
print(f"{name}: Средний доход = {imputed_datasets[name]['income'].mean():.2f}")


➡️ Итоги:
— KNN хорошо подходит для небольших числовых датасетов, но требует ресурсов на больших.
— Ансамблевые методы дают лучшее качество, но сложнее и тяжелее в вычислениях.
— MICE — золотая середина для многих задач.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥1🥰1👏1
🚀Kafka must-have инструмент для современных проектов MLOps!

Присоединяйся к вебинару и узнай, как настроить Kafka для обработки потоковых данных и интегрировать её в MLOps-проекты. Вебинар проходит в рамках подписки на курсы OTUS, которая даёт возможность приобрести 3 курса по цене одного.

🔑 Что будет:
— Практическое и теоретическое руководство по настройке Kafka в Docker и взаимодействию с ней через Python.
— Обзор инструментов для работы с Kafka: поднятие UI-интерфейса и управление потоками данных.
— Примеры использования Kafka для связи микросервисов и обзор ключевых функций, делающих её незаменимой брокером сообщений.
— Как использовать Kafka в MLOps: сбор данных для ML-моделей, мониторинг их работы и интеграция предсказаний в реальном времени.

🚀Регистрация по ссылке - https://otus.pw/18rU/
Подробнее о подписке OTUS - https://otus.pw/SMQu/

👉 Запишись сейчас, количество мест ограничено!
👍21
🔥 Как НЛМК отслеживает ковши с расплавленным чугуном — и зачем это нужно

Раньше ковши искали по рации. Сегодня — за ними следит цифровая система: знает, где каждый ковш, сколько в нём чугуна, куда он движется и не перегрелась ли футеровка.

В новом кейсе рассказываем:
— почему стандартные RFID-метки плавились и что сделали вместо
— как устроена цифровая модель предприятия
— что даёт это внедрение: меньше простоев, теплопотерь и аварий

👷‍♂️ Спойлер: теперь даже ковши «думают».

📌 Читать: https://proglib.io/sh/mXKzViUZen

Библиотека дата-сайентиста #буст
1👍1😁1
2025/07/08 23:33:25
Back to Top
HTML Embed Code: