▶ 군집화 알고리즘

→ 주어진 데이터들의 유사성을 분석하여 적절한 개수의 클러스터로 만드는 알고리즘

→ 점들 간의 거리와 밀집도를 종합적으로 판단

 

▷ K-Means 알고리즘

→ 데이터에서 초기 k개의 점을 선정하여 무작위 휴리스틱 기법

→ 어떤 점이 특정 영역 안에 들어올 확률을 가지고 군집을 만들 수 있음

1) 아무렇게나 그리기

2) 정답 비교하기

3) 영역 조정하기

4) 학습 완료

 

▷ 차원의 저주(Curse of Dimensionality)

→ 차원(특징 개수)이 증가할 수록 데이터의 분포 분석 또는 모델 추정에 필요한 샘플 데이터 수가 기하급수적으로 증가

 

☆ 군집화는 비지도 알고리즘이다!

- 영역을 나누는 기준이 필요

- 정답지 없이 학습하기 때문에 완전한 모델이 나오기 어려움

- 분류 알고리즘보다 결과가 더 좋은 경우도 있음

- 때로는 보조 지표로, 때로는 분류 알고리즘 대체용으로 쓰임

 

▶ 악성코드 분류 모델 구현

df.info() 결과

- 기본적으로 모든 머신러닝 모델은 피처를 숫자로만 받을 수 있다.

- object라고 되어 있는 것은 학습에 사용할 수 없다는 의미를 나타낸다.

→ 1) 제외시키고 학습하는 방법, 2) 수치형으로 변환해서 사용하는 방법이 있다.

 

 

 

 

 

 

 

 

 

☆ 최근 악성 코드는 실행되기까지의 과정이 정교해지고 탐지가 어려워지고 있다.

 

▶ 악성코드

- 최근 악성코드는 유형보다 군으로 분류하는 것이 의미가 있음

- 실행 파일 형식에 국한되지 않고 소프트웨어 취약점과 문서를 이용

 

▷ 악성코드 동향

- 랜섬웨어 급증

- IoT 디바이스를 악용한 DDoS 악성코드

- Fileless Malware

- 익스플로잇 킷과 함께 서비스 형태로 제공되는 악성코드(MaaS)

 

▷ 악성코드 유포 방법

- 이메일을 통한 유포(스피어 피싱)

- 제로데이 취약점을 이용한 유포

 

▷ 악성코드 동작 방식

- 실행 파일 형식을 가지는 악성코드

- 문서 형식을 가지는 악성코드

- 웹 기반 코드로 실행되는 악성코드

- 스크립트 기반 악성코드

 

▷ 악성코드 대응 절차

1) 신속한 정보 제공 

2) 공격 차단 및 분석

3) 긴급 백신 제작 및 배포

4) 패턴 및 시그니처 개발

5) 솔루션 개발

 

▷ 악성코드 분석

1) 자동화 분석

- Virustotal 사이트

2) 정적 분석

- 악성코드를 실행하지 않고 분석하는 방법

- 파일 문자열, 헤더 정보, 추가 리소스 등

3) 동적 분석

- 악성코드를 실행하면서 분석하는 방법

- 레지스트리, 파일시스템, 프로세스, 네트워크 등

 

▶ 분류 알고리즘

→ 데이터와 카테고리의 관계를 학습해 새로운 데이터의 카테고리를 판별하는 것

1) 나이브 베이즈

ex) 스팸 메일 분류와 이상 행동 검출

2) 의사 결정 트리

- 데이터 카테고리가 범주형일 때만 사용 가능

- 분석 결과가 트리 구조로 표현되어 결과를 쉽게 이해하고 설명할 수 있음

ex) ID3 알고리즘 → 데이터를 가장 잘 쪼개는 특성 선택

ex) 랜덤 포레스트 : 여러 개의 의사 결정 트리를 만들고 다수결로 결정

 

▷ 인스턴스 기반 학습

ex) K-NN(Nearst Neighbors) 

→ 데이터베이스에 데이터를 저장한 뒤 새로운 데이터와 유사한 값을 찾아내는 방법

1) 모델 기반 : 학습 데이터를 분석해 이를 분류 또는 회귀하는 최적의 함수를 찾아내는 방법

2) 인스턴스 기반 : 데이터베이스에 데이터를 저장한 뒤 새로운 데이터와 유사한 값을 찾아내는 방법

 

ex) 서포트 벡터 머신(SVM)

→ 데이터를 구분 짓는 선에 가장 가까운 점들의 거리를 최대화하는 방법

- kernel : 선형 함수를 쓸 것인가, 커널 함수를 쓸 것인가

- C : 선을 얼마나 부드럽게 그을 것인가

- Gamma : 단일 데이터의 영향이 얼마나 크게 미치는가

 

 

▶ 모델 평가 지표

▷ 모델 성능과 검증

- 좋은 모델이라고 이야기 하기 전에 '다양한 모델'에 실험을 해봤는지 확인해야 함

- 정확도의 기준은 실험에 사용하는 도메인의 속성과 사용한 알고리즘에 따라 달라짐

 모델 종류 * 특징 선택 * 모델 매개변수 * 테스팅 데이터 * 교차 검증

 

▷ 모델 평가

① 회귀 모델 평가 : 원래 값과 예측한 값이 얼마나 차이가 나는지 평가

- MAE : 편차에 절대값을 씌운 결과의 평균 → 작은 에러에 민감

- MSE : 편차 제곱의 평균 → 큰 에러를 최대한 줄이기

- MAE : 중간값에 절대값을 씌운 결과의 평균 → 이상치에 강함

- R2 Score : 기존 생성 모델이 새로운 샘플에 얼마나 적합할지 판단해 주는 지표 (0~1)

② 군집 모델 평가 : 데이터를 잘 군집화했는지 평가

- Adjusted Rand Index : 원래 값과 예측된 값이 얼마나 유사도를 가지고 있는지

- Mutual Information Based Scores : 유사도가 아닌 부합 정도

- Homogeneity, completeness and V-measure : 원래 값 이용, 엔트로피 기반

- Fowlkes-Mallows Scores : 원래 값 이용, Confusion Matrix 기반

- Silhouette Coefficient : 원래 값 모를 때 사용, 모델 자체만을 가지고 판단

③ 분류 모델 평가 : 정답은 정답으로, 오답은 오답으로 잘 분류했는지 평가

- Accuracy Score : 얼마나 잘 예측했는지 평가

- Confusion Matrix : 알고리즘 성능을 시각화 해 주는 에러표

  Predicted YES Predicted NO
Actual YES Ture Positive False Negative
Actual NO False Positive True Negative

 

▷ Precision, Recall, F-measure

- Precision(정밀도) : 전체 positive 개수 대비 정답 비율

- Recall(재현율) : 전체 true 개수 대비 정답 비율

- F-measure : 정밀도와 검출율을 하나의 숫자로 표현하는 방법

 

 ROC

 좌측 상단으로 굽어있을수록 잘 맞는 알고리즘

 

▷ 교차 검증

→ 데이터를 여러 개의 세트로 나눠 검증을 수행하는 방법

 

'WINS STUDY > AI 사이버보안' 카테고리의 다른 글

Week05_군집화 알고리즘  (0) 2022.07.16
Week05_악성코드  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week03_파이썬 라이브러리  (0) 2022.06.25
Week02_머신러닝  (0) 2022.06.04

+ Recent posts