Извлечение признаков с использованием Scikit-Learn

Machine LearningMachine LearningBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Советы по работе с ВМ

После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с использованием Jupyter Notebook.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/DataPreprocessingandFeatureEngineeringGroup(["Data Preprocessing and Feature Engineering"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/DataPreprocessingandFeatureEngineeringGroup -.-> sklearn/feature_extraction("Feature Extraction") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/feature_extraction -.-> lab-71129{{"Извлечение признаков с использованием Scikit-Learn"}} ml/sklearn -.-> lab-71129{{"Извлечение признаков с использованием Scikit-Learn"}} end

Загрузка признаков из словарей

В этом шаге мы научимся загружать признаки из словарей с использованием класса DictVectorizer в scikit-learn.

from sklearn.feature_extraction import DictVectorizer

measurements = [
    {'city': 'Dubai', 'temperature': 33.},
    {'city': 'London', 'temperature': 12.},
    {'city': 'San Francisco', 'temperature': 18.},
]

vec = DictVectorizer()
features = vec.fit_transform(measurements).toarray()
feature_names = vec.get_feature_names_out()

print(features)
print(feature_names)

Хеширование признаков

В этом шаге мы научимся выполнять хеширование признаков с использованием класса FeatureHasher в scikit-learn. Хеширование признаков - это техника, которая сопоставляет признаки с вектором фиксированной длины с использованием хеш-функции.

from sklearn.feature_extraction import FeatureHasher

movies = [
    {'category': ['thriller', 'drama'], 'year': 2003},
    {'category': ['animation', 'family'], 'year': 2011},
    {'year': 1974},
]

hasher = FeatureHasher(input_type='string')
hashed_features = hasher.transform(movies).toarray()

print(hashed_features)

Извлечение текстовых признаков

В этом шаге мы научимся выполнять извлечение текстовых признаков с использованием классов CountVectorizer и TfidfVectorizer в scikit-learn. Эти классы можно использовать для преобразования текстовых данных в числовые признаки.

from sklearn.feature_extraction.text import CountVectorizer

corpus = [
    'This is the first document.',
    'This is the second second document.',
    'And the third one.',
    'Is this the first document?',
]

vectorizer = CountVectorizer()
features = vectorizer.fit_transform(corpus).toarray()
feature_names = vectorizer.get_feature_names_out()

print(features)
print(feature_names)

Настройка классов векторизаторов

В этом шаге мы научимся настраивать поведение классов векторизаторов, передавая им вызываемые функции.

def my_tokenizer(s):
    return s.split()

vectorizer = CountVectorizer(tokenizer=my_tokenizer)
features = vectorizer.fit_transform(corpus).toarray()

print(features)

Резюме

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