Skip to content

Repository files navigation

AI 악성 파일 탐지 프로젝트 (malware-predictor)

팀원

백승렬(20202086), 이윤서(20181676), 최호경(20171717), 한진교(20152868)

팀원 기여 요약

백승렬: 데이터셋 파일 분석 및 고가치 정보 식별

이윤서: yara rule 시그니처 탐지를 통한 피처 추출 분석

최호경: 데이터 전처리 및 피처 추출, 머신러닝 모델 구현

한진교: 그리드 서치를 통한 머신러닝 모델 성능 개선

Requirements

Python 3.8.5 or higher

tqdm

joblib

numpy 1.21

scikit-learn 1.0.1

lightgbm 3.3

xgboost 1.5.1

catboost 1.0.3

Quick Start

이 파트는 팀원의 프로젝트 수행에 유용한 정보를 수록합니다.

live_evaluator.py로 개별 모델 평가 (deprecated)

더이상 사용하지 않는 코드 입니다.

해당 스크립트를 실행하면 training.json, validation.json, dataset.json이 있는지 확인합니다.

training.json와 validation.json은 각각 훈련 데이터, 검증 데이터를 json으로 바꾼 파일입니다. dataset.json은 과제에 주어진 훈련, 검증 데이터를 결합한 결과를 저장하는 파일입니다.

위 json 파일들이 없다면 data_processor.py의 write_dataset 함수로 json 파일을 생성합니다.

dataset.json은 훈련 셋, 검증 셋이 합쳐진 후 저장됩니다.

둘을 결합하는 이유는 계층별 k-겹 교차 검증(Stratified k-fold cross validation)을 이용하기 위함입니다.

k-겹 교차 검증 방법에 대한 내용은 여기를 참조하시길 바랍니다.

모든 json 파일을 불러오면 스트링(Ex. rf, lgb)을 입력받아 해당하는 모델의 성능을 평가합니다.

어떤 모델이 존재하는지는 model_lib의 load_model 함수에서 확인하실 수 있으며 개별로 모델을 추가할 수 있습니다.

검증 방법을 선택한 후 올바른 모델 스트링이 입력되면 선택한 검증 방법에 따라 모델 평가를 진행합니다.

이 스크립트를 통해 원하는 모델의 성능을 확인하시면 됩니다.

만약 스트링이 load_model 함수에 없는 것이라면 프로세스를 종료합니다.

pretrained_evaluator.py 로 미리 훈련된 모델의 성능 평가

프로젝트에서 제시된 데이터셋의 일부에 pestudio가 결측되어 데이터셋에 대해 모델을 한꺼번에 훈련할 수 없다는 문제가 존재합니다.

따라서 pestudio가 존재하는 데이터셋과 그렇지 않은 데이터셋을 분리하여 각각 모델을 훈련시킬 필요가 있습니다.

pretrained_evaluator는 이렇게 두 경우에 대해 각각 훈련된 모델을 이용하여 주어진 데이터셋을 예측하게 해줍니다.

프로젝트 보고서

해당 프로젝트 보고서는 report.ipynb 에서 확인할 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages