Scikit-learn 을 이용한 특징 추출

Beginner

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

소개

이 실습에서는 scikit-learn 라이브러리를 사용하여 특징 추출을 수행하는 방법을 배웁니다. 특징 추출은 원시 데이터를 머신 러닝 알고리즘에서 사용할 수 있는 숫자 특징으로 변환하는 과정입니다. 텍스트 및 이미지와 같은 다양한 유형의 데이터에서 관련 정보를 추출하는 것을 포함합니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 연습을 위한 Jupyter Notebook에 접근할 수 있는 Notebook 탭으로 전환합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

사전에서 특징 로드하기

이 단계에서는 scikit-learn 의 DictVectorizer 클래스를 사용하여 사전에서 특징을 로드하는 방법을 배웁니다.

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)

특징 해싱

이 단계에서는 scikit-learn 의 FeatureHasher 클래스를 사용하여 특징 해싱을 수행하는 방법을 배웁니다. 특징 해싱은 해시 함수를 사용하여 특징을 고정 길이의 벡터로 매핑하는 기술입니다.

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)

텍스트 특징 추출

이 단계에서는 scikit-learn 의 CountVectorizerTfidfVectorizer 클래스를 사용하여 텍스트 특징 추출을 수행하는 방법을 배웁니다. 이러한 클래스는 텍스트 데이터를 수치 특징으로 변환하는 데 사용될 수 있습니다.

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 라이브러리를 사용하여 특징 추출을 수행하는 방법을 배웠습니다. 사전에서 특징을 로드하는 방법, 특징 해싱, 텍스트 특징 추출과 같은 다양한 기법을 탐색했습니다. 또한, 우리의 특정 요구 사항에 맞게 벡터라이저 클래스의 동작을 사용자 지정하는 방법도 배웠습니다. 특징 추출은 머신 러닝에서 중요한 단계로, 알고리즘이 예측이나 데이터 분류를 수행할 수 있도록 원시 데이터를 사용 가능한 형식으로 변환하는 데 도움이 됩니다.