Как я могу распечатать данные после подгонки данных в конвейере?

Вопрос или проблема

Я использовал 3 функции из scipy: TFIDF векторизатор, Мультивыходной классификатор и Линейный SVC.

Код выглядит так.

pipe_lr1 = Pipeline(steps=[('cv',TfidfVectorizer()), ('lr_multi',MultiOutputClassifier(LinearSVC()))])

Как я могу распечатать значения на каждом шаге функции, чтобы увидеть

  • Каков был вывод TFIDF векторизатора?
  • Каков был вывод Линейного SVC?
  • Какие данные выходили из MultioutputClassifier(X)?

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

pipe_lr1.named_steps["cv"]
pipe_lr1.named_steps["lr_multi"]

.

Ответ или решение

Чтобы вывести данные после подгонки данных в пайплайн с использованием функции Pipeline из библиотеки scikit-learn, необходимо изучить, как можно получить результаты на каждом этапе процесса. В данном случае вы используете такие компоненты, как TfidfVectorizer, MultiOutputClassifier и LinearSVC.

Шаги для извлечения промежуточных результатов

  1. Подгонка данных в пайплайне:
    Прежде всего, вы должны подогнать данные к вашему пайплайну. Для этого используйте метод fit() на вашем объекте pipe_lr1. Например:

    pipe_lr1.fit(X_train, y_train)

    Здесь X_train – это входные данные, а y_train – целевые переменные.

  2. Доступ к промежуточным шагам пайплайна:
    После выполнения fit() вы можете получить доступ к каждому из шагов пайплайна, чтобы извлечь их результаты. Для этого можно использовать именованные шаги.

    vectorizer = pipe_lr1.named_steps["cv"]  # TfidfVectorizer
    multi_output_classifier = pipe_lr1.named_steps["lr_multi"]  # MultiOutputClassifier
  3. Вывод результатов TFIDF Vectorizer:
    Чтобы вывести результат работы TfidfVectorizer, воспользуйтесь методом transform() на вашем объекте векторизатора:

    tfidf_output = vectorizer.transform(X_train)
    print("Вывод TFIDF векторизатора:\n", tfidf_output.toarray())  # Преобразуем в массив для более удобного вывода
  4. Вывод данных из MultiOutputClassifier:
    Для извлечения данных из MultiOutputClassifier сначала примените метод predict():

    multi_output_predictions = multi_output_classifier.fit(vectorizer.transform(X_train), y_train).predict(vectorizer.transform(X_train))
    print("Выходные данные MultiOutputClassifier:\n", multi_output_predictions)
  5. Вывод результатов Linear SVC:
    Чтобы получить доступ к выходным данным LinearSVC, можно получить доступ к каждому классификатору в MultiOutputClassifier:

    for i, svc in enumerate(multi_output_classifier.estimators_):
       svc_output = svc.predict(vectorizer.transform(X_train))
       print(f"Выходные данные Linear SVC для задачи {i+1}:\n", svc_output)

Пример полного кода

Ниже приведен объединенный фрагмент кода, который включает все вышеперечисленные шаги:

from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.multioutput import MultiOutputClassifier
from sklearn.svm import LinearSVC

# Предполагаем, что X_train и y_train уже определены

pipe_lr1 = Pipeline(steps=[('cv', TfidfVectorizer()), ('lr_multi', MultiOutputClassifier(LinearSVC()))])

# Подгоняем модель
pipe_lr1.fit(X_train, y_train)

# Данные из TFIDF
tfidf_output = pipe_lr1.named_steps["cv"].transform(X_train)
print("Вывод TFIDF векторизатора:\n", tfidf_output.toarray())

# Прогнозы MultiOutputClassifier
multi_output_predictions = pipe_lr1.named_steps["lr_multi"].fit(tfidf_output, y_train).predict(tfidf_output)
print("Выходные данные MultiOutputClassifier:\n", multi_output_predictions)

# Выходные данные Linear SVC для каждой задачи
for i, svc in enumerate(pipe_lr1.named_steps["lr_multi"].estimators_):
    svc_output = svc.predict(tfidf_output)
    print(f"Выходные данные Linear SVC для задачи {i + 1}:\n", svc_output)

Заключение

Следуя вышеуказанным шагам, вы сможете легко и точно получить доступ к промежуточным данным на каждом этапе работы с вашим пайплайном в scikit-learn. Обязательно проверяйте результаты и корректируйте обработку данных на каждом этапе, чтобы достичь наилучших результатов в вашей задаче машинного обучения.

Оцените материал
Добавить комментарий

Капча загружается...