• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

텍스트 분석 (텍스트 분류) 관련해서 일반적인 질문드립니다.

22.01.31 04:21 작성 조회수 76

0

안녕하세요?
강의 잘 수강하고 있습니다.
다름이 아니라 제가 진행하고자 하는 프로젝트가 트워터에서 트윗을 다운 받아 분류하는 작업을 하려고 하는 데요.
Supervised method으로 모델을 트레이닝 시키는 방법을 고려하고 있습니다.
혹시 전체 데이터 중 몇 퍼센트 정도를 사람이 직접 분류시켜서 training set 및 testing set에 적용하는 것이 일반적인 룰? 인지 궁금해서 문의 드립니다. 제가 인터넷에서 찾아본 바로는 80% 트레이닝 20% 테스팅 또는 70% 트레이닝 30% 테스팅을 많이 본 것 같습니다.
 
또 사람이 직접 분류 시켜서 labeling하는 데이터 포인트가 많으면 많을 수록 좋다고 생각이 드는 데 일반적으로 머신러닝하시는 분들은 어떻게 결정하시는 지 궁금하네요.
 
예를 들어 다음과 같은 경우 강사님께서는 어떻게 분류를 하실 지 의견을 여쭙고 싶습니다.
 
만약 전체 1,000,000 트윗을 가지고 있고 이를 5가지 카테고리로 분류하고 싶다. 한가지 방법은 이중 10% (100,000 트윗) 정도를 임의로 추출해서 이중 80% (80,000 트윗)를 사람들이 직접 분류하게 하고 나머지 20% (20,000 트윗)으로 테스팅을 한다. 그리고 전체 1,000,000 트윗 중 나머지 90% (900,000 트윗)을 트레이닝 시킨 모델로 분류 시킨다.
 
혹시 강사님께서는 위의 경우 어떻게 퍼센티지를 구분하실 지 여쭙고 싶습니다.
 
감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

1. 학습 데이터, 테스트 데이터 비율을 얼마로 할지는 정해진 게 없습니다. 

꼭 정할 필요도 없습니다.  일반적으로는 비율 보다는 테스트 데이터가 학습데이터, 또는 실제 업무 데이터 상황을 얼마나 잘 반영했는지가 더 중요합니다. 

보통은 20% 정도로 테스트 데이터 비율을 설정합니다. 하지만 여러 비율로 테스트 해보면서 테스트 성능이 떨어지지는 않는지 확인해 보는게 중요합니다. 즉 30%, 또는 40% 정도로도 해보고 성능이 변화가 있는지 확인해 보고, 만약 큰 변화가 있으면 학습데이터가 줄어서 그런건지, 아님 테스트 데이터가 학습 데이터와 뭔가 크게 달라서 그런건지 확인을 하는 절차를 가지면 됩니다.

2. 만약 전체 1,000,000 트윗을 가지고 있고 이를 5가지 카테고리로 분류하고 싶다. 한가지 방법은 이중 10% (100,000 트윗) 정도를 임의로 추출해서 이중 80% (80,000 트윗)를 사람들이 직접 분류하게 하고 나머지 20% (20,000 트윗)으로 테스팅을 한다. 그리고 전체 1,000,000 트윗 중 나머지 90% (900,000 트윗)을 트레이닝 시킨 모델로 분류 시킨다.

=> 레이블을 적용한 데이터가 많으면 많을 수록 좋지만, 노동력이 투입되어야 하는 작업이라 비용이 많이 소모 됩니다. 돈과 시간이 된다면 레이블링을 많이 하면 할 수록 좋습니다. 하지만 백만개 트윗을 다 사람이 분류하기에는 많은 자원이 소모 될 것 같습니다. 10%가 십만개인데, 할 수만 있다면 이정도도 충분하다고 봅니다. 다만 십만개 역시 비용이 만만치는 않을 것 같습니다.

십만개든 만개든, 먼저 가능한 비용을 산정해 보고, 몇개를 레이블링 할 수 있는지 정하는게 먼저 일것 같습니다. 가능하면 만개 부터 해서 80% 20% 나누어서 성능을 테스트 해보고 2만개로 늘렸을 때 성능 다시 테스트 해보면서 학습 데이터를 증가 시켰을 때 성능이 어떻게 변하는지 확인해보시고, 학습 데이터 량을 늘려가시면 어떨가 싶습니다.

감사합니다.