NLP Academy · Урок

Сквозной конвейер для несбалансированных данных

Аккуратно объедините все исправления

Урок 4 из 413 шагов

«Сквозной конвейер для несбалансированных данных» — бесплатный урок NLP Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения NLP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс NLP Academy содержит 4 уроков всего.

Объединим всё вместе

Теперь Вы объедините все исправления в один чистый процесс. Один конвейер последовательно выполняет векторизацию, передискретизацию и построение модели.

Всегда сначала выполняйте раскол

Начните со стратифицированного раскола, чтобы в обучающей и тестовой выборках сохранялось одинаковое соотношение редкого класса. Это обеспечивает честную оценку.

X_tr, X_te, y_tr, y_te = train_test_split(X, y, stratify=y)

Векторизуйте текст

Преобразуйте исходный текст в числа с помощью TF-IDF, чтобы у классификатора появились признаки для обучения.

tfidf = TfidfVectorizer()

Передискретизация внутри конвейера

Используйте конвейер imblearn, чтобы SMOTE выполнялся только на обучающих блоках и никогда не попадал в проверочные или тестовые данные.

from imblearn.pipeline import Pipeline

Соедините этапы

Перечислите этапы по порядку: векторизатор, затем SMOTE, затем модель. Конвейер запускает их как один обученный объект.

pipe = Pipeline([('tf', tfidf), ('sm', SMOTE()), ('clf', LogisticRegression())])

Обучите один раз и правильно

Вызовите fit для всего конвейера. Каждый этап обучается последовательно, используя только Ваши обучающие данные.

pipe.fit(X_tr, y_tr)

Оценивайте правильным способом

Не ограничивайтесь общей точностью. classification_report наглядно показывает точность, полноту и F1 для редкого класса.

from sklearn.metrics import classification_report
print(classification_report(y_te, pipe.predict(X_te)))

Проверяйте без утечек

Объедините конвейер со стратифицированной перекрёстной проверкой, чтобы передискретизация заново выполнялась внутри каждого блока.

Настройте порог

Получите вероятности из конвейера и выберите порог, при котором на проверочных данных достигается нужная Вам полнота.

proba = pipe.predict_proba(X_te)[:, 1]

Сохраните весь конвейер

Сохраните весь обученный конвейер с помощью joblib, чтобы позднее при применении модели каждый этап автоматически выполнялся снова.

import joblib
joblib.dump(pipe, 'model.joblib')

Один объект, воспроизводимый результат

Поскольку векторизация, балансировка и построение модели объединены, Ваши результаты остаются воспроизводимыми и защищёнными от незаметных утечек. 🚀

Быстрая проверка

Ещё один вопрос о безопасных конвейерах.

Итоги

Стратифицируйте данные, векторизуйте их, выполняйте передискретизацию внутри конвейера, оценивайте модель по F1 и полноте, настраивайте порог, а затем сохраняйте всё. 🚀

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Сквозной конвейер для несбалансированных данных» бесплатный?

Да — полный текст урока «Сквозной конвейер для несбалансированных данных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс NLP Academy, подпишись на CoddyKit PRO. Курс NLP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Сквозной конвейер для несбалансированных данных»?

Аккуратно объедините все исправления Ты практикуешь NLP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать NLP Academy?

Предыдущий опыт не требуется. NLP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Сквозной конвейер для несбалансированных данных»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке NLP Academy?

Да. Каждый урок NLP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему редкие классы игнорируются
  2. Передискретизация и веса классов
  3. Выбор порога и метрики
  4. Сквозной конвейер для несбалансированных данных
← Назад к NLP Academy