controlpro

[12/17] 단기강좌 본문

카테고리 없음

[12/17] 단기강좌

controlpro 2021. 12. 28. 16:21
728x90

Weka를 통한 보안데이터 머신러닝 실습 및 결과 해석

웹해킹이 발생한 결과들을 볼 수 있다. 다양한 데이터들을 수집할 수 있다. 

앞의 전처리 과정을 나타내고 실제로 저 아래의 정보에서 feature를 구성하는 과정이 필요하다. 

 

 

 

제공한 파일중에 Nessus_Scanner (Binary).csv를 open file을 이용해서 파일을 열면 다음과 같이 파일을  볼 수 있고, 각각의 Attributes는 csv에 있는 cell의 속성을 나타나고 있다. 그래서 Visualize All을 누르면 각각의 모든 속성의 파일을 볼 수 있다. 

필드에 따라서 육안으로 구분이 되지도 않는다면, 실제로 머신러닝 알고리즘을 넣으면 그래도 가공이 굉장히 힘들다. 이 데이터는 Q1_interval의 경우 육안으로 봤을 때 정상과 비정상이 크게 다르지 않기 때문에 삭제를 해도 된다. 그래서 여기서는 Q3_interval, Skew_interval , Q1_interval을 삭제를 한다. 

Weka는 다음의 Classifier and Cluster를 선택할 수 있다. 컴퓨터의 메모리가 상당히 높아야 한다. java기반이어서 Graphic card의 도움을 받는 프로그램이 아니다. 

 

Classify를 들어가면 Choose 통해서 위에서 언급했던 머신러닝 알고리즘을 사용할 수 있다. 또한 Percentage split를 통해서 valid set를 구분을 할 수 있다. 포통 7:3 , 8:2, 9:1 정도를 사용하게 된다.

 

또한 Cross-validation set을 하게 되면 K-Fold 알고리즘 즉 교차검증을 수행하게 되고, 데이터가 K로 분리되어서 각각 랜덤으로 valid set을 확보를 하게 된다. 

 

Supplied test set은 test 파일과 , train set 자체가 구분이 되어있을 때, 사용한다. 그러나 현재 데이터는 한개 밖에 없기 때문에, 사용하지 않을 예정이다. 

 

User training set은 이미 있는 train set으로 다시 학습을 하기 때문에 과적합의 가능성이 높다. (크게 의미가 있지는 않다.)

 

실습은 다음과 같이 진행한다. 

 

 

이렇게 해서 머신러닝을 돌리면 

다음과 같이 결과 창이 나온다. 최종적인 결과는 맞는 것을 설정했을 때 75%의 정확도를 보인다. 그다음의 Desicion tree visualization 

그래서 각각의 Feature들이 어떠한 영향을 줬는 지 확인을 할 수 있다.

 

 

 

 

 

728x90
반응형