머신러닝 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'와 같은 모델을 구현한다고 이해하면 되나요??
1 답변
-
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 형식이면 컬럼이 너무 많아지니까 (몇백 몇천) 차원수를 줄이는 (몇십) 방법이고요.
댓글 입력