Сквозной конвейер для несбалансированных данных
Аккуратно объедините все исправления
«Сквозной конвейер для несбалансированных данных» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Почему редкие классы игнорируются
- Передискретизация и веса классов
- Выбор порога и метрики
- Сквозной конвейер для несбалансированных данных