Каждый раз при старте нового проекта повторяем одно и то же: смотрим пропуски, считаем перекос классов, проверяем мультиколлинеарность, строим корреляции.
Percentify упаковывает это в одну строку. Работает с pandas и Polars — нативно, без конвертации.
🔍 profiler — главная функция
from percentify import profiler
report = profiler(df, target="churn")
report.to_frame() # все проблемы, от худшей к лучшей, с советом как починить
report.errors # только блокирующие проблемы
report.health # скор качества данных от 0 до 100
Можно прямо в CI:
assert not report.errors
assert report.health >= 80
📋 Остальные функции
·
missing(df) — процент пропусков по колонкам·
outliers(df) — процент выбросов по колонкам·
skew_report(df) — перекос и рекомендованное преобразование (log1p, sqrt...)·
vif(df, flag=5.0) — мультиколлинеарность, возвращает список колонок для дропа·
correlate(df) — корреляции с p-value, можно сортировать по значимости·
imbalance(df, target="label") — дисбаланс классов·
pca_variance(df) + pca_loadings(df) — дисперсия и интерпретация PCAПример рабочего воркфлоу
from percentify import skew_report, vif, profiler
import numpy as np
# 1. Проверить качество данных
report = profiler(df, target="churn")
# 2. Найти колонки под логарифм
plan = skew_report(df)
for feat in plan[plan.skew > 1]["feature"]:
df[f"{feat}_log"] = np.log1p(df[feat])
# 3. Убрать мультиколлинеарные признаки
to_drop = vif(df, flag=5.0)["feature"].tolist()
df = df.drop(columns=to_drop)
pip install percentify
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст
