Spec-Zone.ru › scikit-learn

Примечание

Перейти в конец для скачивания полного кода примера. Или запустить этот пример в вашем браузере через JupyterLite или Binder

Преобразователь столбцов с разнородными источниками данных

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

  1. ваш набор данных состоит из разнородных типов данных (например, растровые изображения и текстовые подписи),
  2. ваш набор данных хранится в pandas.DataFrame и разные столбцы требуют разных конвейеров обработки.

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

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

import numpy as np

from sklearn.compose import ColumnTransformer
from sklearn.datasets import fetch_20newsgroups
from sklearn.decomposition import PCA
from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import FunctionTransformer
from sklearn.svm import LinearSVC

Набор данных 20 newsgroups

Мы будем использовать набор данных 20 newsgroups, который содержит сообщения из новостных групп по 20 темам. Этот набор данных разделен на обучающую и тестовую подвыборки на основе сообщений, опубликованных до и после определенной даты. Мы будем использовать только сообщения из 2 категорий для ускорения времени выполнения.

categories = ["sci.med", "sci.space"]
X_train, y_train = fetch_20newsgroups(
    random_state=1,
    subset="train",
    categories=categories,
    remove=("footers", "quotes"),
    return_X_y=True,
)
X_test, y_test = fetch_20newsgroups(
    random_state=1,
    subset="test",
    categories=categories,
    remove=("footers", "quotes"),
    return_X_y=True,
)

Каждый признак включает метаинформацию о сообщении, например, тему и тело новостного сообщения.

print(X_train[0])
From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)
Subject: Re: Metric vs English
Article-I.D.: mksol.1993Apr6.131900.8407
Organization: Texas Instruments Inc
Lines: 31




American, perhaps, but nothing military about it.  I learned (mostly)
slugs when we talked English units in high school physics and while
the teacher was an ex-Navy fighter jock the book certainly wasn't
produced by the military.

[Poundals were just too flinking small and made the math come out
funny; sort of the same reason proponents of SI give for using that.]

--
"Insisting on perfect safety is for people who don't have the balls to live
 in the real world."   -- Mary Shafer, NASA Ames Dryden

Создание преобразователей

Сначала мы хотим преобразователь, который извлекает тему и тело каждого сообщения. Поскольку это бессостояние преобразование (не требует информации о состоянии из обучающих данных), мы можем определить функцию, выполняющую преобразование данных, а затем использовать FunctionTransformer для создания преобразователя scikit-learn.

def subject_body_extractor(posts):
    # construct object dtype array with two columns
    # first column = 'subject' and second column = 'body'
    features = np.empty(shape=(len(posts), 2), dtype=object)
    for i, text in enumerate(posts):
        # temporary variable `_` stores '\n\n'
        headers, _, body = text.partition("\n\n")
        # store body text in second column
        features[i, 1] = body

        prefix = "Subject:"
        sub = ""
        # save text after 'Subject:' in first column
        for line in headers.split("\n"):
            if line.startswith(prefix):
                sub = line[len(prefix) :]
                break
        features[i, 0] = sub

    return features


subject_body_transformer = FunctionTransformer(subject_body_extractor)

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

def text_stats(posts):
    return [{"length": len(text), "num_sentences": text.count(".")} for text in posts]


text_stats_transformer = FunctionTransformer(text_stats)

Конвейер классификации

Конвейер ниже извлекает тему и тело каждого сообщения с помощью SubjectBodyExtractor, получая массив (n_samples, 2). Этот массив затем используется для вычисления стандартных признаков мешка слов для темы и тела, а также длины текста и количества предложений в теле, используя ColumnTransformer. Мы объединяем их с весами, а затем обучаем классификатор на объединённом наборе признаков.

pipeline = Pipeline(
    [
        # Extract subject & body
        ("subjectbody", subject_body_transformer),
        # Use ColumnTransformer to combine the subject and body features
        (
            "union",
            ColumnTransformer(
                [
                    # bag-of-words for subject (col 0)
                    ("subject", TfidfVectorizer(min_df=50), 0),
                    # bag-of-words with decomposition for body (col 1)
                    (
                        "body_bow",
                        Pipeline(
                            [
                                ("tfidf", TfidfVectorizer()),
                                ("best", PCA(n_components=50, svd_solver="arpack")),
                            ]
                        ),
                        1,
                    ),
                    # Pipeline for pulling text stats from post's body
                    (
                        "body_stats",
                        Pipeline(
                            [
                                (
                                    "stats",
                                    text_stats_transformer,
                                ),  # returns a list of dicts
                                (
                                    "vect",
                                    DictVectorizer(),
                                ),  # list of dicts -> feature matrix
                            ]
                        ),
                        1,
                    ),
                ],
                # weight above ColumnTransformer features
                transformer_weights={
                    "subject": 0.8,
                    "body_bow": 0.5,
                    "body_stats": 1.0,
                },
            ),
        ),
        # Use a SVC classifier on the combined features
        ("svc", LinearSVC(dual=False)),
    ],
    verbose=True,
)

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

pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)
print("Classification report:\n\n{}".format(classification_report(y_test, y_pred)))
[Pipeline] ....... (step 1 of 3) Processing subjectbody, total=   0.0s
[Pipeline] ............. (step 2 of 3) Processing union, total=   0.4s
[Pipeline] ............... (step 3 of 3) Processing svc, total=   0.0s
Classification report:

              precision    recall  f1-score   support

           0       0.84      0.87      0.86       396
           1       0.87      0.84      0.85       394

    accuracy                           0.86       790
   macro avg       0.86      0.86      0.86       790
weighted avg       0.86      0.86      0.86       790

Общее время выполнения скрипта: (0 минут 2.458 секунды)

Launch binder
Запуск JupyterLite

Download Jupyter notebook: plot_column_transformer.ipynb

Download Python source code: plot_column_transformer.py

Download zipped: plot_column_transformer.zip

Связанные примеры

Классификация текстовых документов с использованием разреженных признаков

<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEYCAMAAABFglBLAAADAFBMVEVHcEy45fS55vT////95r395r395r255vT////+//795r3+/v655vS55vT+//7////95r395b235fT////////95r3+/v215PP//v3+/v655vT///795bq45vS35fT95bv95rz////95bv9/fz///+35fS45vT//v645vOz5PP95bv95rz95Lj95bu35fT95br95bq15fO15fP95bmz5PP95bv+/v6z5PP+/v37/Pr95bz//fq15PP95bq45fSz5PP95Lau4vK05PP94rH95bz95bn+/Pr94rG15fP95by76Pb95bmy4/Ov4/L9/fu35vT95Lj95bmw4/L//fqv4/L9/v37/v76/f6w4/L94bC45vTH6/f9/fv+/v77/f7//Pa55vT/9OH947b/+/b+/Pn5/f7////P7ver4fH95Lir4fL6+vT95LX+/v3936u05PP+7tP95bmy5PP95Lj94bC65vT95bq25PT7/v7+/v794Kz947O65/T947T7+/n947fx+v3+7dD/8tv++fD/+/T+9+z+47ey4/L/9ePv+PvT7/j+7M3947X/+e/94rG85/Sx5PPr9/vy+vzh9fqu4vL+47PL7ff+7Mui3vC85/TW8Piz5PPn9/vm9vvV8Pjc8fbu+fz/+/W45vT1/P3+47T9+O//9uf+8t3B6vX96cT/+vO35vP+79X/9+r/6MDz+/3+7tP957//9eb+68qa2/Dw9O/+7M396MT+6MH93qXW8fj936nf9Pni9frZ8fnN7fel3fHo9/v+7cv3+/un3/L/+vL/8Nbx+vzb8vnl9vuT2O/+79Ly+v3t+Pz+79Ty+vzh9Pv+9ebi9fr/9+r/9ubH6/bn9/vN7ffL7ffJ7PbP7vfr+Px/0e797c7+6Nb0+/3/6cH50I655vX+//a65vT+5r7///+75/b/57+86fi76Pb/6L//6MD/68H/6cC65/W96/r/576+7Pr/7MO86Pf/5r665/b/6cG96vj/7sT+577A7fzA7vyFAOsA3fJHcEwkIVfKAAABAHRSTlMA9P3+/vn//vz7/PH5++X57vTf9vf27svo4e/rw/LT3vHT4p302+za5bnS5Ziz16fOwLOdVNreo7yk1diWy+eujHfGauu70mOo6f64nYOE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

Бикластеризация документов с помощью алгоритма спектрального со-кластеризации

Сравнение FeatureHasher и DictVectorizer

<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEYCAMAAABFglBLAAADAFBMVEVHcEy45fS55vT////95r395r395r255vT////+//795r3+/v655vS55vT+//7////95r395b235fT////////95r3+/v215PP//v3+/v655vT///795bq45vS35fT95bv95rz////95bv9/fz///+35fS45vT//v645vOz5PP95bv95rz95Lj95bu35fT95br95bq15fO15fP95bmz5PP95bv+/v6z5PP+/v37/Pr95bz//fq15PP95bq45fSz5PP95Lau4vK05PP94rH95bz95bn+/Pr94rG15fP95by76Pb95bmy4/Ov4/L9/fu35vT95Lj95bmw4/L//fqv4/L9/v37/v76/f6w4/L94bC45vTH6/f9/fv+/v77/f7//Pa55vT/9OH947b/+/b+/Pn5/f7////P7ver4fH95Lir4fL6+vT95LX+/v3936u05PP+7tP95bmy5PP95Lj94bC65vT95bq25PT7/v7+/v794Kz947O65/T947T7+/n947fx+v3+7dD/8tv++fD/+/T+9+z+47ey4/L/9ePv+PvT7/j+7M3947X/+e/94rG85/Sx5PPr9/vy+vzh9fqu4vL+47PL7ff+7Mui3vC85/TW8Piz5PPn9/vm9vvV8Pjc8fbu+fz/+/W45vT1/P3+47T9+O//9uf+8t3B6vX96cT/+vO35vP+79X/9+r/6MDz+/3+7tP957//9eb+68qa2/Dw9O/+7M396MT+6MH93qXW8fj936nf9Pni9frZ8fnN7fel3fHo9/v+7cv3+/un3/L/+vL/8Nbx+vzb8vnl9vuT2O/+79Ly+v3t+Pz+79Ty+vzh9Pv+9ebi9fr/9+r/9ubH6/bn9/vN7ffL7ffJ7PbP7vfr+Px/0e797c7+6Nb0+/3/6cH50I655vX+//a65vT+5r7///+75/b/57+86fi76Pb/6L//6MD/68H/6cC65/W96/r/576+7Pr/7MO86Pf/5r665/b/6cG96vj/7sT+577A7fzA7vyFAOsA3fJHcEwkIVfKAAABAHRSTlMA9P3+/vn//vz7/PH5++X57vTf9vf27svo4e/rw/LT3vHT4p302+za5bnS5Ziz16fOwLOdVNreo7yk1diWy+eujHfGauu70mOo6f64nYOE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

Преобразователь столбцов с различными типами данных

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/auto_examples/compose/plot_column_transformer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API