머신러닝 bow, word2vec 과 adaboost, xgboost 등의 개념에 대해 질문드립니다.

조회수 701회

머신러닝에 대한 기초가 전혀 없는데.. 좀 알아가다보니 도무지 헷갈려서 질문드립니다.

앙상블 모델인 Adaboost, XGBoost와 같은 방식과 텍스트 추출 기법(?)인 bag of words, word2vec을 어떻게 분류해서 정의를 해야할지 모르겠습니다.

words, word2vec과 같은 기법은 방식은 서로 다르지만, 텍스트를 추출해서 다음에 들어올 텍스트를 예측하는 방법이잖아요??

Adboost, XGBoost와 같은 방식은 예측하기 위한 모델인데 어떤 식인지 전혀 감이 안 옵니다.

둘 다 분류는 다르지만, 예측한다는 점에서 같은데 'Adaboost, XGBoos / bag of words, word2vec'를 어떻게 구분해서 정의해야할까요?

말이 좀 횡설수설이긴한데.. 프로그래밍으로 따지면 'Adaboost, XGBoost'는 전체적인 흐름도(플로우차트), 'bag of words, word2vec'는 그 속에 들어있는 함수 정도로 생각하면 될까요??

'bag of words, word2vec' 기법을 이용해서 'Adboost, XGBoost'와 같은 모델을 구현한다고 이해하면 되나요??

  • 기초부터 학습하면 될 것 같습니다. 저 역시 관련 서적 몇권 본 정도 밖에 안되서 전문적인 설명은 어렵지만 제가 이해하기로는 word2vec 는 nn 기반의 모델이고 단어들의 유사도를 측정하는 겁니다. 이런것이 필요한 이유가 텍스트를 모델로 만들려면 수치적으로 표현해야 하기 때문입니다. 그래야 수치등을 계산해서 유사한것 아닌것 분류를 할 수 있고 학습을 시킬 수 있습니다. 컴퓨터는 의미라는 것을 모르니까요. word2vec이 그런 방법중에 하나 입니다. 질문에서 보면 word2vec에서는 Adboost, XGBoost 를 사용하지 않는다가 맞을 것 같습니다. 또한 Adboost, XGBoost 를 regression 용도로만 사용하지 않습니다. 당연히 classifier 용도로도 많이 사용합니다. Adboost, XGBoost 는 decission tree 기반의 앙상블 모델이니 decission tree 알고리즘 설명을 읽어보면 도움이 될겁니다. 정영훈 2019.12.23 13:53
  • 구글링을 해보면 word2vec + XGBoost 이런식으로 같이 쓰기도하던데 예외적인 상황인가요? 그냥bag of words, word2vec, Adaboost, XGBoost 중 용도에 맞게 선택해서 하나만 사용하면 되는건가요? 정용환 2019.12.24 22:27
  • 글쎄요...답은 정해져 있지 않아요...우리가 개발하면서 때에 따라 여러 언어도 사용하듯이 상황에 따라 다른 문제라 해야 될 것 같네요. 정영훈 2019.12.25 08:20

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    adaboost, xgboost 같은 머신러닝 알고리즘은, 테이블형태의 훈련데이터(와 정답레이블)이 주어졌을 때, 이 데이터들로 학습을 하여, 분류(또는 리그레션)를 해주는 매우 일반적인 알고리즘입니다. 그 자세한 알고리즘은 찾아서 읽어보아야 할 거고, 그런데, 실제 머신러닝을 처음 시작할 때에는 블랙박스로 생각하고, 가져다 쓰면 충분할 겁니다.

    bow, word2vec 은 텍스트데이터가 소위 말하는 비정형 데이터이기 때문에, 텍스트를 테이블형태로 바꾸어주는 방식으로 생각하면 됩니다. 즉,

    column1 column2 ... column4 label
    text1 3 5 ... 2.8 class1
    text2 3 1 ... 1.2 class2
    text3 0 2 ... 3.1 class1

    이런식으로 각 데이터가 컬럼들에 대한 수치를 갖는 테이블형태의 데이터를 원하는 거고요. bow 는 각 텍스트에 단어가 몇번 나왔는지를 정리하는 것이고, (이걸 조금 튜닝한 tfidf 같은 방식이 있고) word2vec 은 bow 형식이면 컬럼이 너무 많아지니까 (몇백 몇천) 차원수를 줄이는 (몇십) 방법이고요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)