▶ 군집화 알고리즘

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

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

 

▷ 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

▶ 통계학과 머신러닝

→ 데이터가 형성하고 있는 패턴을 이야기할 때 '확률'을 사용

 

▶ 선형 회귀 알고리즘(Linear Regression)

→ 종속 변수 y와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 기법

오차가 가장 적은 y = f(x) 함수를 찾는 문제     (※ f(x) = mx + b)

▷ 기계가 학습하는 방법

① 아무렇게나 그리기

② 정답 비교하기 

③ 선 조정하기

④ 학습 완료

최적의 Cost Function 값을 찾아라!

※ Cost Function : Regression Line 값과 실제 데이터의 차이를 비용으로 계산한 함수

 

▶ 선형 회귀 모델링

jupyter notebook 이용

- total data = train : test = 8 : 2

→ 충분한 데이터로 학습한 후 미리 확보했던 테스트 데이터를 모델에 넣어봤을 때 얼마나 정확하게 판단하는지 확인

▷ train.csv

train.csv의 컬럼을 보면 마지막 컬럼이 medv인 것을 확인할 수 있다.

 

▷ test.csv

반면, test.csv의 컬럼을 보면 medv가 존재하지 않는다.

→ total data = train.csv

→ 이 데이터를 train과 test로 나누고 학습한 결과 모델을 test.csv에 적용하면 예측하는 predicted medv 값이 나오는 것

→ 즉, 정답지가 제공되지 않은 데이터셋을 의미

 

▷ Boston_lm

sklearn : 학습한 것이 잘 되었는지 안 되었는지를 평가하는 것과 관련된 기능

학습에 사용할 수 있는 feature의 개수는 정답지인 medv를 제외한 13가지

총 333개의 row와 15개의 컬럼이 존재

Series(1차원)로 나오지 않도록 .to_frame()을 이용하여 변경해주어야 함

전체 row 개수인 333에서 60개를 뺀 273을 x_train에, 나머지를 x_test에 넣어주기 (train 데이터를 쪼개는 과정)

- x_train과 y_train의 row 개수는 같아야 함

- x_test와 y_test의 row 개수는 같아야 함

- x_train x_test의 컬럼 개수는 같아야 함

fit/train ← x_train + y_train

model ← predict(x_test) 

y_predict와 y_test를 비교해보기

Mean Squared error : 45.95 → 오류의 합, 값이 크면 클수록 좋지 않음

제대로 된 직선이 아님을 확인

즉, crim이라는 요인은 집값을 결정하는 중요한 요인이 아님을 알 수 있음

가장 좋은 결과 값을 갖는 feature은 lstat이라는 요인이었다.

 

▶ 기초 통계학과 특징 공학

▷ 통계학과 머신러닝

통계학 : 데이터에서 의미를 찾아내는 학문

머신러닝 : 데이터에서 찾은 의미를 활용하기 위한 학문

예측을 하려면 데이터의 특성을 파악할 줄 알아야 함

 

▷ 데이터의 중심 경향

① 평균값 : 모든 수를 더한 값을 개수로 나누기

② 중간값 : 가운데에 있는 값

③ 최빈값 : 데이터에서 가장 많이 나타나는 값

④ 범위 : 데이터 상한값 - 데이터 하한값

⑤ 사분위수 : 데이터를 네 개의 조각으로 나눈 값

 

▷ 데이터의 변이와 분포

- 변이 : 데이터의 평균값으로부터 얼마나 떨어져 있는가?

- 분산 : 평균값으로부터의 거리를 제곱해서 평균을 구한 값

- 표준편차 : 분산에 제곱근을 씌운 값 → 평균값으로부터의 거리

 

▷ 기초 통계 이론

- 조건부 확률 : 어떤 사건 B가 일어났을 때 사건 A가 일어날 확률

☆ 베이즈 정리 : 두 확률 변수의 사전 확률과 사후 확률 사이의 관계를 나타내는 정리

- 정규 분포 (=가우시안 분포)

정규 분포

- 왜도 : 데이터의 대칭 정도(어느 쪽에 치우쳤는지)

- 첨도 : 정규분포 대비 봉우리의 솟음 정도(봉우리가 어느 정도로 솟아있는지)

- 확률 밀도 함수(PDF) vs 누적 분포 함수(CDF)

 

▷ 머신러닝과 통계

① 기본 통계 수치 확인

- 기본 수치만 살펴보더라도 데이터의 분포와 대략적인 특성 추측 가능

- 데이터 특성 정보를 특징에 바로 사용하는 것도 가능

② 특징 공학

- 편향된 데이터는 중심을 맞춰주고, 특징 범위가 차이가 많이 나면 정규화를 시켜줌

- 모델 정확도와 성능에 큰 영향을 주는 특징 공학에도 통계 지식이 필수

③ 특징으로 사용하기

- 평균, 중간값, 범위, 최빈값, 사분위값, 첨도, 왜도는 생각보다 많은 정보를 줌

 

▷ 특징 공학

→ 로우 데이터를 예측 모델의 기저에 있는 문제들을 잘 표현해주는 특징들로 변환하여 처음 보는 데이터에 대한 모델 정확도를 향상시켜 주는 방법

 

▷ 특징 공학 프로세스

① 관찰

- 데이터의 형식은 무엇인가?

- 에러가 없는가?

- 데이터 단위는?

② 전처리

- 형식화 : 분석 목적에 맞는 적절한 파일 형식으로 변환, 데이터베이스에 저장

- 정제 : 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리

- 샘플링 : 초기 실험에는 일부 데이터만 선택해서 모델링을 할 필요가 있음 (학습시간↑)

③ 추출

- 데이터가 알고리즘이 처리하기에 너무 많은 정보를 담고 있는 경우 특징만 뽑아내야 함

④ 구현

- 직접 특징을 추출하는 방법 → 데이터 구조와 기저 정보에 대한 깊은 이해가 필요

⑤ 변환

- 스케일링 : 전처리 후 데이터의 단위는 제각각 → 범위를 0~1 값으로 치환해 주는 것이 이상적

- 분해 : 하나의 특징이 복잡한 여러 개념을 포함하는 경우 여러 개의 특징으로 분리하거나 선택적 추출

- 결합 : 두 가지를 동시에 고려했을 때 더 큰 의미를 가지는 특징들은 하나의 특징으로 결합

- 변환 : 특징 변수를 모델에 사용할 수 있는 데이터 형식으로 변환

⑥ 선택

- 문제 해결에 도움이 되지 않는 특징은 과감히 버리고 중요도가 높은 특징만 선택

- 적은 속성은 모델의 복잡도를 감소시키고, 모델을 단순화 해 줌 (← 좋은 특징)

- 관련성 : 특징이 모델의 성능에 영향을 미치는 정도를 판단하기 위한 수치

- 유용성 : 주어진 모델에서 에러를 최소화하는 것과 관련된 수치

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

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week03_파이썬 라이브러리  (0) 2022.06.25
Week02_머신러닝  (0) 2022.06.04
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

▶ 파이썬 기능 이해

- Numpy : 데이터 조작, 처리 → 다른 패키지의 기본이 되는 패키지

- Pandas : Numpy로 만든 패키지, 쓰기 편하고 직관적

- Matplotlib : 시각화 관련, 코드를 가져와서 실행할 수 있으면 됨

- Tensorflow : 딥러닝을 위한 라이브러리, 패턴 익히기

 

▶ Numpy

▷ Jupyter notebook 사용법

명령 프롬프트에서 jupyter notebook 입력
New - python3

- [SHIFT] + [ENTER] = Run

 

▷ Numpy

- jupyter 가상환경에서 만들어진 파일 확장자명 : .ipynb

 

★ 배열을 잘 다루자!

※ row x col

→ Numpy 패키지를 통해 row by col 형식으로 사용할 수 있음

① 만드는 방법 (확인)

② 하나 이상의 데이터 선택 (검색)

③ 두 데이터를 합치는 방법

④ 하나의 데이터를 쪼개는 방법

 

1) Numpy 사용법

import numpy as np

→ numpy 패키지 가져오기, np라는 약칭으로 사용

 

2) Numpy 배열

- 벡터 : 1차원 배열

- 매트릭스 : 2차원 배열 (거의 많이 사용)

 

3) 배열 생성하기

1. 파이썬 리스트 이용: np.array([list])
2. 0또는 1로 채우기: np.zeros(), np.ones()
3. 일정한 간격을 가지는 숫자 배열: np.arange()
4. 일정 범위 안에서 일정 갯수를 가진 배열: np.linspace()
5. 랜덤 값을 가지는 배열: np.random.rand() / randint() / randn()
6. 등등

악성코드 개수 판단 시 사용

- np.arrange(start,end) : start ~ end-1

- np.random() : 임의의 값을 만들어 좌표상에 찍어놓고 테스트할 때 사용

 

4) 배열 요소 접근 및 범위 선택

1. 배열 요소 접근 방식은 파이썬 리스트와 동일
2. 범위 접근자(:) 사용 시 범위에 주의하기 ( 1:5 는 1부터 4까지를 의미 )
3. 배열 복사(메모리 문제 방지): XXX.copy()
4. 특정 조건에 해당하는 데이터 선택은 인덱스 사용

배열 요소 접근

 

5) 배열 다루기

1. 배열 모양 확인: XXX.shape() 
2. 배열 내의 데이터 자료형 확인: XXX.dtype
3. 배열 모양 변경: XXX.reshape()
4. 데이터 타입 변경: XXX.astype()

☆ 모든 데이터 로드 후 불러온 데이터의  모양과 크기를 확인하기 위해 shape()를 해주어야 함

- np.concatenate() : 배열 합치기

- rst[] : 배열 쪼개기

 

▶ Pandas

▷ Numpy의 한계점

→ 데이터를 인덱스로만 접근할 수 있음

 

▷ Pandas

- dataframe(numpy+name) : 배열의 row와 col의 이름을 설정할 수 있음

- file load, save

① 만드는 방법 (확인)

② 하나 이상의 데이터 선택 (검색)

③ 두 데이터를 합치는 방법

④ 하나의 데이터를 쪼개는 방법

 

1) pandas 사용법

import pandas as pd

→ pandas 패키지 가져오기, pd라는 약칭으로 사용

 

2) 파일 불러오기/저장하기

1. CSV  : pd.read_csv() / pd.to_csv()
2. EXCEL: pd.read_excel() / pd.to_excel()
3. HTML : pd.read_html() / pd.to_html()
4. SQL  : pd.read_sql() / pd.to_sql()

→ csv, excel, html, sql 소스에서 데이터를 읽어오는 함수 제공

→ 불러온 데이터는 pandas의 dataframe 객체 형식으로 자동 저장

 

3) pandas 자료형

- 1차원 : Series → pd.Series()

- 2차원 : Dataframe → pd.DataFrame()

 

4) DataFrame

→ 컬럼 차원의 접근이 유리

1. DataFrame = Series + Series + ... + Series
2. 거의 모든 데이터 처리에 DataFrame 사용
3. 데이터프레임 정보 보기: head(), shape(), info(), describe()
4. 특정 요소에 접근하기
5. 데이터프레임 쪼개고 합치기
6. 누락 데이터 처리하기

- head() : 첫 5줄만 출력

- shape() : 데이터의 전체적인 개수, 속성의 개수

- info() : null값, 자료형 확인 가능

- describe() : 숫자형으로 되어 있는 컬럼의 기본적인 통계수치

 

5) DataFrame Row 접근

1. loc : 라벨값 기반의 2차원 인덱싱
2. iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱 (일반 배열처럼 사용)

 

6) DataFrame 합치기

1. 새로운 col 또는 row 추가
2. col을 기준으로 데이터프레임 병합
3. row를 기준으로 데이터프레임 병합

→ pd.cocat()

 

7. 결측 데이터 처리

1. 데이터프레임에 결측 데이터가 있는지 확인
2. 결측 데이터 처리를 어떻게 할 것인가?
    1) 데이터가 충분히 많은 경우: 결측 데이터를 포함한 row를 제거
    2) 데이터 하나 하나가 소중한 경우: 결측값을 다른값으로 대체

- isnull() : 결측값이 있는지 확인

- dropna() : 결측값 제거

- fillna() : 특정 값으로 결측값 대체

 

▷ numpy vs pandas

- numpy : ml, dl

- pandas : static, da

 

▶ Matplotilib

→ 데이터를 가지고 그리는 방법보다 무엇을 그려야할지가 더 중점

 

1) Matplotlib 사용하기

import matplotlib.pyplot as plt

 

2) 기본 그래프 그리기

plot() : 그림 그려주는 함수, show() : 그림을 띄워줌

 

3) 그래프 옵션 조정

1. plot() 옵션
    - color : 선 색깔 변경  
    - marker : 데이터 변화(꺾임) 부분 표시
    - label : 범례값 지정
    - linestyle : 선 모양

2. 그래프 옵션
    - plt.xlabel() : x축 설명
    - plt.ylabel() : y축 설명
    - plt.title()  : 그래프 제목
    - legend() : 범례 표시
    - plt.xlim() : x축 범위
    - plt.ylim() : y축 범위

 

▶ Pandas + Matplotilib

데이터를 데이터프레임 형식으로 저장할 경우 쉽게 시각화를 할 수 있음

→ df.plot.area, df.plot.barh, df.plot.density, df.plot.hist, df.plot.line, df.plot.scatter, df.plot.bar, df.plot.box, df.plot.hexbin, df.plot.kde, df.plot.pie

import matplotlib.dates as mdate
%matplotlib inline

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

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week02_머신러닝  (0) 2022.06.04
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

※ 머신러닝은 어떤 분야에 적용될까?

→ 데이터가 있고, 환경의 변화가 있는 모든 분야에 적용된다.

데이터의 패턴을 파악하여 기존에 해결하지 못했던 문제를 해결하는 것이 목적

 

※ 머신러닝이 적용된 대표적인 사례

→ 주차장 차량 번호판 인식

 

▶ 머신러닝 프로세스

→ 모델을 학습시키는 과정

▷ 현실 세계

→ 현실 세계의 문제점이 시작점

ex) 사진에 있는 동물이 새인지 강아지인지,,, 등등

 

 데이터 수집

→ 컴퓨터를 학습시키기 위해서는 많은 양의 데이터가 필요함

1) 이미 수집된 데이터가 있는 경우

 데이터가 많다고 다 쓸 수 있는 것은 아니다.

2) 완전히 새로 수집해야 하는 경우

→ 한 번도 보지 못한 데이터를 얼마나 정확하게 판단할 수 있는지가 최종 목표

→ 지속적으로 데이터를 수집하는 것이 중요

※ 데이터 수집 시 고려사항

① 얼마나 많은 데이터가 필요한가?

② 어떤 특성을 포함해야 하는가?

③ 훈련 데이터가 충분히 대표성을 띄는가?

④ 데이터는 어떤 형식으로 가져올 수 있는가?

 

▷ 데이터 전처리

→ 모델의 성능을 평가할 수 있는 가장 중요한 단계

→ 컴퓨터에게 정확한 답을 알려주어야 함

데이터 시각화와 함께 진행

※ 데이터를 그대로 특징으로 사용할 수 있는 경우

① 형식화 : 분석 목적에 맞는 적절한 데이터 형식으로 변환

② 정제 : 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리

③ 정규화 : 개별 특징이 동일한 숫자 범위 안에 들어가도록 변환

④ 분해 : 하나의 특징이 복잡한 여러 개념을 포함하는 경우 분리 or 선택

⑤ 결합 : 두 가지를 모두 고려했을 때 더 큰 의미를 가지는 특징은 결합

 

▷ 특징 추출

→ 모은 데이터를 준비하고 다듬고 정리하는 과정

★ 특징 공학

→ 머신러닝의 성공을 결정하는 핵심

1) 어떤 데이터를 얼마나 모았는가

2) 그 데이터에서 고유한 속성을 어떻게 뽑았는가

※ 특징

→  관찰 대상에서 발견한 개별적이고 측정 가능한 경험적 속성

ex) 사진에서 동물이 강아지인지 새인지 구분하는 방법 : 날개의 유무, 날개와 털의 색상이 같은지

어떤 기준, 즉 어떤 특징을 사용할지 결정하는 것이 중요

※ 특징 선택 방법

① 전진 선택 : 특징이 없는 상태에서 하나씩 추가하면서 찾는 방법

② 후진 제거 : 전체 특징에서 시작해 하나씩 제거하면서 찾는 방법

③ 차원 축소 : 정보의 양을 주 성분 특징으로 모아주는 방법

 

▷ 모델 구축

→ 실제로 모델을 만들고 학습시킴

 제대로 된 모델을 구축하기 위해서는 1) 문제가 명확해야 하고, 2) 문제에 필요한 데이터를 수집을 잘 해야 하고, 3) 적절한 처리를 거친 후에 정확한 기준을 마련해야 하고, 4) 데이터에서 기준에 해당하는 특징을 뽑아놓은 상태여야 함

1) 단일 모델 사용

- 데이터 특성에 맞는 모델을 찾는 것이 중요

- 모델링을 했다 : 선택한 모델 * 모델 매개변수 * 특징 조합 * 교차 검증 = ?

2) 다중 모델 사용

- 앙상블(ensemble) / 스태킹(stacking)

- 여러 개의 모델을 연결해 하나의 모델처럼 만들기

- 모델 판단 결과를 새로운 특징으로 사용하기

※ 데이터의 속성

1) 정적 데이터

- 일반적인 모델링

- 모델링과 테스트가 동일한 데이터

→ 대부분의 보안 위협들은 정적 데이터 방식으로 모델링

2) 시계열 데이터

- 어떻게, 언제, 얼마나 판단할지 직접 결정

- 특정 범위에서 얼마나 벗어났는지를 통해 판단하는 이상 탐지

→ 네트워크 기반의 데이터, 로그 분석 등은 시계열 데이터 방식으로 모델링

 

▷ 모델 평가

→ 학습이 제대로 되었는지 평가

 

▷ 모델 최적화

→ 원하는 성능이 안나왔을 경우 재학습하거나 옵션 조정을 통한 최적화

→ 모델 최적화는 사실상 모델 평가를 의미

 모델링 시점의 최고 모델 vs 운영 시점의 최고 모델

※ 모델 배치

1) Offline러닝

- 한 번 만든 모델을 영구적으로 사용

- 대부분의 모델이 해당

- 주기적으로 모델을 업데이트

2) Online러닝

- 모델을 실시간으로 업데이트 하는 방식

- 매번 학습 시마다 모델을 새롭게 생성

 

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

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week03_파이썬 라이브러리  (0) 2022.06.25
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

+ Recent posts