텍스트 분류에 SMOTE를 어떻게 적용합니까?


14

SMOTE (Synthetic Minority Oversampling Technique)는 불균형 데이터 세트 문제에 사용되는 오버 샘플링 기술입니다. 지금까지 일반의 구조화 된 데이터에 적용하는 방법에 대한 아이디어가 있습니다. 그러나 텍스트 분류 문제에 적용 할 수 있습니까? 오버 샘플링해야하는 데이터 부분은 무엇입니까? 가 이미 다른 질문 그것에 대해,하지만이 답변이 없습니다. 이것을 시작하는 방법을 어디에서 배울 수 있습니까?

답변:


11

실제로 NLP는 불균형 문제를 처리하는 많은 텍스트 분류 작업 (스팸 필터링, 모욕적 인 주석 탐지, 기사 분류 등)이 있으므로 데이터 재 샘플링이 필요한 가장 일반적인 영역 중 하나입니다. 그러나 SMOTE는 몇 가지 이유로 문제가있는 것 같습니다.

  • SMOTE는 기능 공간에서 작동합니다. 이는 SMOTE의 출력이 피처 공간 내의 텍스트를 실제로 나타내는 합성 데이터가 아님을 의미합니다.
  • 한편 SMOTE는 KNN과 함께 작동하는 반면 NLP 문제를위한 기능 공간은 엄청납니다. KNN은 이러한 거대한 차원에서 쉽게 실패 할 것입니다.

그래서 두 가지 접근 방식을 제안 할 수 있습니다.

  1. 내가 좋아야한다고 생각하는 새로운 합성 샘플의 실제 텍스트 표현에 신경 쓰지 마십시오. 텍스트 데이터를 읽는 사람이 아니라 분류 자에 대한 분포의 균형을 조정해야합니다. 따라서 일부 차원 축소 단계와 함께 SMOTE를 전통적인 방법으로 적용하십시오 (그러나 일반적으로 솔루션 2 벨로우즈를 사용하므로 결과를 보장하지 않습니다!).

1) 3-NN을 사용하여 부 클래스에서 데이터 샘플을 만들고 싶다고 가정합니다. 메이저 클래스를 무시하고 마이너 클래스 샘플 만 보관하십시오.

2) 피처 공간의 각 샘플 포인트에 대해 가장 가까운 5 개의 이웃을 선택합니다. 그런 다음 그중 3 개를 무작위로 선택하십시오 (불필요하게 복잡하지 않습니까? 원래 알고리즘을 설명하고 싶지 않다면 3 명의 이웃을 선택하십시오!)

3) 각 차원에 대해 샘플과 이웃 사이의 거리를 계산하고 0-1 사이의 난수로 곱한 다음 해당 차원에서 원래 샘플 값에 더합니다. (이 복잡한 단락은 각 차원마다 원래 샘플과 해당 이웃 사이에서 임의의 값을 선택한다는 것을 의미합니다!)

  1. 그러나 나는 보통 텍스트에 있고 (더 직관적 인) 또 다른 오버 샘플링을 수행합니다.

1) 전공을 무시하십시오. 실제 문서 길이 (단어 수 / 문구 수)에 따라 새 샘플을 생성 할 수 있도록 부 클래스의 모든 문서 길이 분포를 가져옵니다. 우리는 클래스의 크기를 3 배로 만들고 싶다고 가정합니다.k=2 원본 문서 당 합성 문서)

2) 시퀀스 생성 n해당 분포에 따른 임의의 정수. 새 합성 문서의 길이를 결정하는 데 사용됩니다.

3) 각 문서 : 임의 길이 순서에서 하나의 정수를 선택하고 m길이가 정수에 가까운 임의의 문서. 모두의 토큰을 넣어m 세트의 문서와 무작위로 선택 n 토큰 k타임스. 이들은 당신의k 새 문서.


답을 주셔서 감사하지만 원핫 인코딩을 사용하여 샘플을 표시하는 경우 SMOTE를 샘플에 적용 할 수 있습니까? 아니면 다른 방식으로 표현되어야합니까?
adnanmuttaleb

안녕하세요 Kasra, 언급 한 단계와 관련된 구현을 공유 할 수 있습니까
Payal Bhatia

2

더 많은 텍스트 / 문장 데이터를 추가하려는 경우 사전 훈련 된 단어 임베딩을 사용할 수 있습니다. 사전 훈련 된 모델은 각각의 모든 사전 단어의 단어 벡터 표현을 제공합니다. 또한 'most_smiliar'단어도 제공합니다.

TOP_N과 가장 유사한 단어로 각 단어마다 순열을 수행하여 샘플 문장을 사용하고 새 샘플을 생성 할 수 있습니다.

예를 들어 문장에 3 개의 단어가 있고 각 단어에 대해 가장 유사한 3 개를 선택하면 27 번까지 업 샘플링 할 수 있습니다.


Yashodhan, 도메인 별 프로세스 인 경우이 프로세스를 어떻게 사용할 수 있습니까? 감사합니다
Payal Bhatia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.