[실험] Feature Engineering 여러개 추가가 가능하게 만들기 #36
JAEWOOSUN
started this conversation in
Experiments
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Feature Engineering 여러개 가능
Description: Features를 추가했을 때 여러개를 사용해도 DataLoader에서 자동으로 바꿔주기
시작일: 2021년 5월 26일
실험자: 재우 선
제안자: 재우 선
진행상황: 진행중
카테고리: Baseline Analysis
문제 정의
해결 아이디어
진행 상황
1. dataloader.py →
__feature_engineering
함수args.USERID_COLUMN
은 user_id를 위한 column (수정 X)args.ANSWER_COLUMN
은 user가 맞춘 column (수정 X)args.USE_COLUMN
은 사용할 column을 정의 → 순서도 그대로 들어가기 때문에 중요args.EXCLUDE_COLUMN
은 column 목록에는 있지만 사용하지 않을 column2. dataloader.py →
load_data_from_file
함수args.n_embedding_layers
에 넣어놓음args.변수명
에 넣어서 저장했지만 list형태로 한번에 관리 (순서 중요)df_apply_function
함수를 호출args.USE_COLUMN
과args.ANSWER_COLUMN
의 value들을 tuple형태로 만들어서group
변수에 넣어줌3. dataloader.py →
DKTDataset
Class →__getitem__
함수4. trainer.py →
process_batch
함수변수
들을 각각 꺼내서 정의해줌변수
대신features
라는 list에서 한번에 값들을 처리correct
,mask
,interatction
,gather_index
는 feature와 상관없이 가지고 가는 값들로features
마지막에 넣어줌5. train.py →
train
함수process_batch
함수 통과 후 input을 받아옴targets
변수는input[-4]
를 가지고 와야함 (correct
번호가 -4번으로 바뀜)6. model.py →
LSTM
class →__init__
함수__init__
함수에 추가comb_proj
을 통과할 때는 총 n+1개 ( feature수 +interaction
)을 통과하므로self.args.n_embedding_layers
+1로 변경self.embedding_features
변수를 일반 List가 아닌nn.ModuleList()
로 주는 것이 중요→ 그래야 pytorch가 module로 인식해서 device에 올림
→ 사용하지 않게되면 embedding을 새로 불러오게되서 성능이 나오지 않음
7. model.py →
LSTM
class →forward
함수embedding
을 실행함이때,
nn.moduleList()
로 선언했던self.embedding_features
를 불러와서 사용concat
을 실행할 떄interaction
과feature들
을 추가해줌8. LSTM-ATTN, BERT
features
를 추가해서 사용결과
feature
들을self.args.USE_COLUMN
에 넣어서 사용dataloader
나model
을 변경하지 않아도 잘 돌아감nn.ModuleList
를 사용했을 때 성능이 잘 나옴평가
feature_engineering
을 더욱 쉽게 추가하고 삭제가 가능함대신
nn.moduleList
나nn.sequential
를 사용하면 모델의 layer들을 자동화시킬 수 있음Beta Was this translation helpful? Give feedback.
All reactions