728x90
반응형
이전 포스팅에서 설명했던 프로젝트를 신경망을 이용해 해결해보겠습니다.
logistic regression문제로 접근하였습니다. 0.5가 넘으면 지원한 것으로 넘지 않으면 지원하지 않은 것으로 분류해주었습니다.
▶ Feature Engineering
Feature Engineering 단계에서 jobID만 label encoding에서 one - hot encoding으로 변경해주었습니다.
oe=OneHotEncoder(handle_unknown='ignore')
oe_result = oe.fit_transform(self.train['jobID'].values.reshape(-1, 1)).toarray()
sub=pd.DataFrame(data=oe_result, columns=oe.get_feature_names(['jobID']))
self.train=pd.concat([self.train, sub], axis=1)
oe_result = oe.transform(self.test['jobID'].values.reshape(-1, 1)).toarray()
sub=pd.DataFrame(data=oe_result, columns=oe.get_feature_names(['jobID']))
self.test=pd.concat([self.test, sub], axis=1)
그리고 jobID 열을 drop해주었습니다.
▶ 모델 설계
모델은 간단하게 2 layer로 설계했습니다.
import torch.nn as nn
import torch.nn.functional as F
class jobModel(nn.Module):
def __init__(self, input_dim, output_dim):
super(jobModel,self).__init__()
self.input_dim = input_dim
self.output_dim = output_dim
self.fc = nn.Sequential(
nn.Linear(self.input_dim, 1024),
nn.Dropout(0.3),
nn.Linear(1024, self.output_dim),
nn.Sigmoid()
)
def forward(self, input):
logits = self.fc(input)
return logits
하이퍼 파라미터는 아래와 같이 설정해주었습니다.
batch size = 50
epochs = 200
learning rate = 1e-5
optimizer = Adam
▶Submission
test 파일에 대해 예측을 하고 제출 파일을 생성합니다.
최종 성능은 accuracy 85.42%입니다.
random forest를 사용했을 때 보다 약 3%정도 성능이 향상되었습니다.
전체 코드는 저의 github 에서 확인할 수 있습니다!
728x90
반응형
'My Study > Project' 카테고리의 다른 글
Apple Machine Learning Research 사이트 (0) | 2023.09.19 |
---|---|
개인 프로젝트 - 채용 공고 추천( 프로그래머스) (0) | 2023.03.09 |
광고 전환 확률 예측 모델 구현(CVR Prediction) (0) | 2023.03.09 |