Введение
В этом лабораторном занятии мы научимся выполнять извлечение признаков с использованием библиотеки scikit-learn. Извлечение признаков - это процесс преобразования исходных данных в числовые признаки, которые могут использоваться алгоритмами машинного обучения. Это включает в себя извлечение важной информации из различных типов данных, таких как текст и изображения.
Советы по работе с ВМ
После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с использованием Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Загрузка признаков из словарей
В этом шаге мы научимся загружать признаки из словарей с использованием класса 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. Мы изучили различные методы, такие как загрузка признаков из словарей, хеширование признаков и извлечение текстовых признаков. Мы также узнали, как настраивать поведение классов векторизаторов, чтобы соответствовать нашим конкретным потребностям. Извлечение признаков - это важный этап в машинном обучении, так как оно помогает преобразовать исходные данные в формат, который может быть использован алгоритмами для предсказания или классификации данных.