시작하기무료로 시작하기

Feature hashing과 LabelPoint

이메일을 단어로 분리한 후, 현재 원시 데이터 세트 'spam'과 'non-spam'은 한 줄짜리 메시지들로 구성되어 있어요. 이 메시지들을 분류하려면 텍스트를 특징으로 변환해야 합니다.

연습 문제의 두 번째 부분에서는 먼저 텍스트를 200차원 특징 벡터로 매핑하는 HashingTF() 인스턴스를 만들어요. 그런 다음 'spam'과 'non-spam' 파일의 각 메시지를 단어로 분리하고, 각 단어를 하나의 특징으로 매핑합니다. 이 특징들을 사용해 메시지가 'spam'인지 'non-spam'인지 판단하게 됩니다. 다음으로, 특징에 라벨을 붙입니다. 정상 메시지의 라벨은 0(스팸 아님), 'spam' 메시지의 라벨은 1(스팸)입니다. 마지막으로, 라벨이 붙은 두 데이터 세트를 결합합니다.

작업 공간에는 SparkContext sc가 준비되어 있어요. 또한 spam_wordsnon_spam_words 변수도 이미 사용할 수 있습니다.

이 연습은 강의의 일부입니다

PySpark로 배우는 빅데이터 기초

강의 보기

연습 안내

  • 이메일 텍스트를 200차원 특징 벡터로 매핑하는 HashingTF() 인스턴스를 만드세요.
  • 'spam'과 'non-spam' 데이터셋의 각 메시지를 단어로 분리하고, 각 단어를 하나의 특징으로 매핑하세요.
  • 특징에 라벨을 지정하세요: 스팸은 1, 스팸 아님은 0.
  • 스팸과 스팸 아님 샘플을 하나의 데이터셋으로 합치세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create a HashingTF instance with 200 features
tf = ____(numFeatures=200)

# Map each word to one feature
spam_features = tf.____(spam_words)
non_spam_features = tf.____(____)

# Label the features: 1 for spam, 0 for non-spam
spam_samples = spam_features.map(lambda features:LabeledPoint(____, features))
non_spam_samples = non_spam_features.map(lambda features:_____(____, features))

# Combine the two datasets
samples = spam_samples.____(non_spam_samples)
코드 편집 및 실행