악성코드 이해

악성코드 분석은 악성 소프트웨어의 기능, 목적, 기원과 잠재적 영향을 연구합니다.

이러한 작업은 전통적으로 매우 수동적이고 어려우며, 소프트웨어 내부와 리버스 엔지니어링에 대한 전문적 지식을 갖춘 분석가가 필요합니다.

 

데이터 과학과 머신 러닝은 악성코드 분석에 있어 어느 부분 자동화가 가능하다는 점을 보여주고 있지만, 이러한 방법은 데이터에서 의미 있는 속성을 추출하는 데 여전히 많이 의존합니다.

즉, 데이터에서 의미 있는 속성을, 유용한 정보를 의미있게 추출하는 것이 매우 중요하다고 볼 수 있습니다.

 

원시 데이터는 머신 러닝 알고리즘을 적용하기 전에 데이터 수집, 정제 및 검증을 위한 계획이 필요합니다. 학습 알고리즘에 적용할 최적의 데이터 형식 및 표현을 선택하는 데 이 원시 데이터를 전처리하는 것은 중요합니다.

 

속성 공학으로 데이터를 알고리즘 입력에 적합한 형식으로 변환합니다. 

 

속성 추출(Feature Extraction)은 원시 데이터에서 속성을 추출하는 과정을 설명하기 위해 사용하는 용어입니다.

 

원시 데이터 : 속성을 추출하고자 하는 대상이 되는 데이터

속성 : 원시 데이터가 가지는 특징들

 

예시)

머신러닝 알고리즘을 이용하여 책(원시 데이터)의 장르(추리, 스릴러, 로맨스, 과학, 판타지 등)를 분류하기 위해 책 제목, 작가명 등을 이용할 수 있지만 해당 책에 사용된 단어, 형태소 등(속성)을 이용할 수도 있습니다.

 

 

악성코드 분류

악성코드 분류는 공통 속성을 기반을 서로 다른 악성코드 샘플을 함께 그룹화 합니다.

일반적인 목적의 악성코드 분석인 경우 계열(family)별로 샘플을 그룹화 합니다.

계열이란 악성코드 분석가가 사용하는 용어로 작성자 추적, 정보 상관, 새로 발견된 악성코드 변종을 식별하기 위한 용어 입니다.

 

같은 계열의 악성코드 샘플은 비슷한 코드, 기능, 작성자, 기능, 목적, and/or를 가집니다.

 

시그니처 매칭

이전에 발견된 악성코드의 속성 및 동작을 고려할 때 새로 들어온 바이너리를 이 데이터셋과 비교해 이전에 본 무언가와 일치하는지 여부를 확인합니다.

 

*변성 혹은 *다형성 바이러스 및 웜은 정적 및 동적 난독화 기법을 사용해 코드, 동작 속성의 특성을 변경합니다.

 

*다형성

일반적으로 감염을 수행하는 핵심 논리와 감염 코드를 숨기기 위해 다양한 형태의 암호화 및 암호 해독을 사용하는 다른 포괄 섹션을 포함

 

*변성

기존 악성코드에 코드를 삽입, 재배치, 다시 구현, 추가 및 제거한다.

 

각 악성코드 진화 단계에서 감염 논리가 변경되지 않기 때문에 변성 악성코드보다 다형성 악성코드를 탐지하기가 상대적으로 쉽습니다.

 

 

머신러닝을 이용한 악성코드 분류

퍼지 매칭: 두 엔티티가 동일하거나 동일 클래스에 속할 확률에 대한 신뢰도 점수를 나타낸다.

엔티티 간의 대략적인 유사도를 표현하여 악성코드를 분류하는데 정적인 시그니처 매칭 방법보다 매우 유용하다.

 

속성 선택 자동화: 악성코드 분류에서 머신 러닝의 핵심은 자동화된 속성 선택과 가중치이다.

일부 차원 축소 및 속성 선택 알고리즘은 전문 악성코드 분석가조차도 찾기 힘든 악성코드 샘플들의 잠재적인 속성도 발견할 수 있다.

머신 러닝은 악성 코드 분석가가 각 속성의 가치를 결정하는 점에 있어서 부담을 덜어준다. 데이터가 분류 체계에서 사용할 속성을 자동으로 찾고 감지함으로써 분석가들은 대신에 속성 공학에 집중할 수 있다.

 

적응성: 퍼지 매칭과 데이터 기반 속성 선택 프로세스와 함께 머신 러닝으로 구현된 악성코드 분류 시스템은 입력이 바뀌고 시간에 따라 변화하는 악성코드의 진화에 적응해 탐지할 수 있다.

 

머신러닝 과제

ex) 악성코드 분류, 행동 분류, 악성 탐지 등

 

 

현대 코드 실행 프로세스

일반적으로 코드 실행에는 컴파일 된 실행과 해석된 실행 두가지 유형이 있다.

컴파일 된 실행에서 작성된 코드는 일련의 변환 단계(소프트웨어 빌드 프로세스)를 거쳐서 원시 기계 명령어로 변환된다.

이 기계 명령어는 바이너리로 패키징돼 하드웨어에서 직접 실행될 수 있다.

작성된 코드(때로는 스크립트라고 함)는 중간 형식으로 변환된 후 프로그램 실행을 위해 인터프리터에 입력된다.

인터프리터는 실행 중인 하드웨어에 해석된 프로그램의 명령어를 실행하는 데 책임이 있다. 중간 형식으로 변환된 코드는 구현에 따라 다르지만 일반적으로 가상 시스템에서 실행되는 바이트코드(이진 시스템 명령어) 형식이다. 

 

 

악성코드 특징 정보

메타데이터(파일의 일반적인 속성)

다이나믹 인포(Dynamic Info)

스태틱 인포(파일의 악성행위 정보)

네트워크

ATT&CK 매트릭스(악성 코드 공격의 전략·기술)

ETC(그 외 부가적인 주요 데이터)

 

참고

"머신 러닝을 활용한 컴퓨터 보안, 클라렌스 치오, 데이비드 프리먼, 에이콘"

"Machine Learning and Security by Clarence Chio and David Freeman(O'Reilly). Copyright 2018 Clarence Chio and Davide Freeman, 978-1491-97990-7"

 

 "KISA, '인공지능 기반 악성코드 분석 노하우' 민간 공개" 2021.06.08

https://www.itworld.co.kr/news/196649

 

나이브 베이즈 분류는 특성들 사이의 독립을 가정하는 베이즈 정리를 적용한 확률 분류기의 일종입니다.

나이브 베이즈는 특성 값은 서로 독립임을 가정합니다.

예) 특정 과일을 사과로 분류 가능하게 하는 특성들(둥글다, 빨갛다, 지름 10cm)은 나이브 베이즈 분류기에서 특성들 사이에서 발생할 수 있는 연관성이 없음을 가정하고 각각의 특성들이 특정 과일이 사과일 확률에 독립적으로 기여하는 것으로 간주합니다.

(출처 : 위키백과)

 

 

베이즈 추론은 다음과 같습니다.

모숫값이 가질 수 있는 모든 가능성의 분포를 계산하는 작업입니다.

통계적 추론의 한 방법이며 추론 대상의 *사전 확률과 추가적인 정보를 통해 해당 대상의 *사후 확률을 추론하는 방법입니다. 베이즈 추론은 베이즈 확률론을 기반으로 하며 이는 추론하는 대상을 확률변수로 보아 그 변수의 확률분포를 추정하는 것을 의미합니다.

* 사전 확률 : 특정 사상이 일어나기 전의 확률, 관측자가 관측을 하기 전에 가지고 있는 확률 분포

베이지안 추정 작업을 하기 전에 이미 알고 있던 모수의 분포

* 사후 확률 : 특정 사상이 일어나난 후의 확률, 관측자가 관측을 하고 나서 가지고 있는 확률 분포

 

베이즈 추론에서는 추론 대상 ${\Theta}$에 대하여, ${\Theta}$에 대한 사전 확률 $p({\Theta})$가 주어집니다. ${\Theta}$와 관계된 관측 $X$의 확률 분포가 $p(X|{\Theta})$와 같이 주어진다고 할 때, 베이즈 추론은 $X$가 추가적으로 주어졌을 때의 ${\Theta}$의 분포 $p({\Theta}|X)$를 계산합니다. 이때 $p({\Theta}|X)$는 베이즈 정리를 이용하여 다음과 같이 계산할 수 있습니다.

$p(\Theta|X) = \frac{p(\Theta,X)}{p(X)} = \frac{p(X|\Theta)p(\Theta)}{p(X)}$

$p(\Theta,X) = p(\Theta\cap X)$

 

 

https://bkshin.tistory.com/entry/dd?category=1042793 

 

DATA - 10. 베이즈 추정(Bayesian Estimation)

기하학에 피타고라스 정리가 있다면 확률론에는 베이즈 정리가 있다. - 해럴드 제프리스 경 해럴드 제프리스 경이 말한 것처럼 베이즈 정리는 인공지능과 통계학에 지대한 영향을 끼친 중요한

bkshin.tistory.com

 

 

 

 

 

https://ko.wikipedia.org/wiki/%EB%82%98%EC%9D%B4%EB%B8%8C_%EB%B2%A0%EC%9D%B4%EC%A6%88_%EB%B6%84%EB%A5%98#cite_note-1

 

나이브 베이즈 분류 - 위키백과, 우리 모두의 백과사전

기계 학습분야에서, '나이브 베이즈 분류(Naïve Bayes Classification)는 특성들 사이의 독립을 가정하는 베이즈 정리를 적용한 확률 분류기의 일종으로 1950 년대 이후 광범위하게 연구되고 있다. 통계

ko.wikipedia.org

 

LSH는 두 문서(오디오, 비디오)의 유사도를 측정할 때 활용할 수 있습니다.

 

LSH는 3단계로 나눌 수 있습니다.

 

1. Shingling

2. MinHashing

3. LSH(Locality-Sensitive Hashing)

 

1. Shingling

이 단계는 각 문서를 길이가 k인 문자 집합(k-shingles 또는 k-gram이라고도 한다.)으로 변환합니다.

예를 들어 한 문서(D)에 "Casper"이라는 문자열 있을 경우 k가 2라면 다음과 같은 set가 나옵니다.

k가 2인 경우 -> {"Ca", "as", "sp", "pe", "er"}

k가 3인 경우 -> {"Cas", "asp", "spe", "per"}

 

이때 유사한 문서의 경우 더 많은 shingle을 공유할 가능성이 높습니다.

또한 만들어진 집합들의 유사도를 구하기 위해 자카드 유사도를 사용합니다.

 

Jacard Similarity

자카드 유사도는 두 집합의 유사도를 측정할 때 사용하는 방법 중 하나입니다.

IOU(Intersection Over Union) 라고도 합니다.

$J(A,B) = \frac{|A\bigcap B|}{|A\bigcup B|}$

 

예) A={1, 2, 3, 4}, B={1, 2, 3, 5}

위 두 집합 A, B의 자카드 유사도는 $\frac{3}{5}$ 입니다.

 

이를 IOU(Intersection Over Union)라고도 합니다. 일반적으로 shingles의 수가 많을수록 자카드 유사도가 커지므로 문서가 유사할 가능성이 높아집니다.

 

 

2. MinHashing

 

좌측의 무작위 순열의 순서대로 중앙의 Input Matrix를 참고하여 우측의 Signature Matrix를 완성합니다.

Input Matrix의 C1, C2, C3, C4를 각 문서라고 생각합니다.

 

 

Signature Matrix의 C'만 보자면 다음과 같습니다.

 

[그림1] C' 생성 (1)
[그림 2] C' 생성 (2)
[그림 3] C' 생성 (3)

C'에 들어가는 값은 무작위 순열에서의 인덱스 값이며 들어가는 규칙은 무작위 순열에 따릅니다.

[그림 1]에서 무작위 순열 1에서 열C1과 열C3에 대한 값이 존재하므로 C'의 열C1, 열C3자리에 인덱스 값 '1'을 넣어줍니다.

[그림 2]에서는 열C1,열 C3, 열C4에 대한 값이 존재하지만 열C1과  열C3에 대한 값은 이미 존재하므로 C'의 열C4자리에 인덱스 값'2'를 넣어줍니다.

[그림 3]에서는 무작위 순열에서 인덱스 값 '3'과 '4'에서는 열C2에 대한 값이 없고 인덱스 '5'부터 존재하기 때문에 C'의 열C2자리에 인덱스 값 5를 넣어줍니다.

 

이제 Input Matrix의 Jaccard 유사도와 Signature로 구한 유사도를 비교해 보겠습니다.

 

각 각의 유사성을 비교해보았을 때 시그니처의 길이가 3이라 어느정도 차이가 존재합니다. 하지만 시그니처의 길이를 늘린다면 둘의 유사도는 서로 근사해질 것입니다.

※ 해당 내용의 오류와 문제점에 대한 부분을 알려주시면 감사하겠습니다.

 

따라서 MinHashing을 사용하여 희소성을 제거하고 유사성을 유지함으로써 공간복잡성 문제를 해결하였습니다.

 

 

3. LSH(Locality-Sensitive Hashing)

LSH는 Minhash를 통해 구한 signature matrix의 한 컬럼을 가지고 어떻게 비슷한 다른 컬럼을 찾을 수 있을지에 대해 다룹니다.

 

길이가(행이) n인 Signature matrix를 행으로 b 등분합니다. 이들을 b bands라고 부릅니다.

또한 각 각의 b bands들은 r개의 행을 가지고 있습니다.

그러므로 b * r = n이 됩니다.

예) n = 100, b = 20, r = 5

 

각 밴드는 k개의 버킷을 가지고 있고, 밴드별로 할당된 시그니처의 열을 k개의 버킷에 해싱합니다.

 

이때 두개의 컬럼을 해싱할 때 하나의 밴드라도 동일한 버킷에 들어간다면 두 컬럼은 비슷하다고 봅니다.

 

이때 b와 r을 결정해야 하는데 다음을 먼저 살펴보겠습니다.

1. b가 커지면 similarity threshold가 낮습니다. 이는 FP가 높다는 것을 의미합니다.

2. b가 작아지면 similarity threshold가 높습니다. 이는 FN가 높다는 것을 의미합니다.

FP : False Positive = 비슷하지 않은데 비슷하다고 판단하는 오류

FN : False Negative = 비슷한데 비슷하지 않다고 판단하는 오류

 

위 설명을 참고하자면 n은 고정이기 때문에 b가 커지면 r은 작아집니다.

알고리즘에서는 하나의 band에 들어있는 모든 row를 해시한 값이 일치하면 비슷한 문서라고 판단한다고 했습니다.

그러므로 r이 낮을 수록 문서를 비슷하다고 판단할 확률이 높아진다고 볼 수 있습니다.

 

 

 

 

 

 

 

참고 : https://towardsdatascience.com/understanding-locality-sensitive-hashing-49f6d1f6134

 

Locality Sensitive Hashing

An effective way of reducing the dimensionality of your data

towardsdatascience.com

https://haandol.github.io/2019/05/28/lsh-minhash-explained.html

 

쉽게 설명한 LSH-Minhash 알고리즘 (LSH Minhash concept and implementation), Haandol

쉽게 설명한 LSH-Minhash 알고리즘 2019년 05월 28일 작성 TL;DR LSH(Locality sensitive hash) 는 Jaccard Similarity 가 높은 원소들을 같은 버킷에 넣는 해쉬 알고리즘이다. 시작하며 이전 글에서 이어지는 내용으

haandol.github.io

https://medium.com/@hubert_46043/locality-sensitive-hashing-explained-304eb39291e4

 

Locality sensitive hashing — LSH explained

The problem of finding duplicate documents in a list may look like a simple task — use a hash table, and the job is done quickly and the…

medium.com

https://lifemath.tistory.com/8?category=919393 

 

[데이터 마이닝] Locality-Sensitive Hashing (LSH) 란?

이전 포스팅에서 Min-hashing 알고리즘에 대해서 다루었다. 이번에는 이 개념에서 추가로 사용될 수 있는 LSH라는 방법론에 대해서 알아보겠다. 이전 포스팅은 아래에 링크가 있으니 Min-hashing에 대

lifemath.tistory.com

https://jisung0920.github.io/data%20mining/lsh/d011/

 

Shingling

Locality Sensitive Hashing(2)

jisung0920.github.io

 

※ 본 게시글은 작성자의 개인 공부, 정리 용도로만 작성되었으며, 이를 악용하여 발생한 문제의 책임은 행위자 본인에게 있음을 알립니다.

 

머신 러닝 알고리즘은 종종 보안을 염두에 두고 설계된 것이 아니기 때문에 공격자들의 공격 시도에 취약한 경우가 많습니다.

따라서 보안을 위한 머신 러닝 시스템을 설계 및 구축할 때 이러한 위협 모델에 대해 인지하고 있어야 합니다.

 

보안 분야에서 사용하는 머신 러닝의 기술은 패턴 인식(pattern Recognition)과 비정상 탐지(Anomaly Detection) 두 분류로 구분할 수 있습니다.

데이터의 특정 하위 집합에 존재하는 패턴을 학습하지 않고, 주어진 데이터셋의 대부분(가령 약 95% 이상)을 해석할 수 있는 정규성을 찾아내는 것입니다.

이후 이를 벗어나는 편차는 비정상으로 탐지합니다.

 

패턴 인식

- 속성 집합을 정의한 뒤 알고리즘을 통해 동일한 속성을 보유한 다른 형태의 데이터를 인식하는 데 사용.

- 악성 코드 및 봇넷 탐지로 공격자가 탐지를 피하기 위해 다형성 기법을 사용할 때 특히 유용하게 사용.

 

비정상 탐지

- 같은 문제를 다른 시각에서 바라보며, 문제를 해결하는 접근법.

 

일반적으로 비정상 탐지를 정상 패턴과 비정상 패턴을 구별해내는 문제로 잘못 생각합니다.

패턴 인식으로부터 추출된 패턴은 반드시 관측 데이터로부터 추출돼야 하며, 학습 과정에 사용돼야 합니다.

반면 비정상 패턴은 학습 또는 테스트 데이터셋에 존재하지 않는 임의의 데이터에서 파생된 무수히 많은 예외적인 패턴을 의미합니다.

 

 

 

스팸 메일 탐지로 알아보는 패턴 인식 및 비정상 탐지를 위한 머신러닝

스팸 메일 탐지를 위해 사용할 알고리즘은 총 3가지(Blacklist, LSH, Naive Bayes)이며 이를 비교합니다.

 

스팸 메일 탐지

데이터 : 2007 TREC Public Spam Corpus, total : 75,319(train 70%, test 30%)

Label :  {spam : 0, ham : 1}

 

1) 반복 접근법(블랙리스트 기반)

스팸 데이터에 많이 포함되어 있는 단어를 NLTK로 토큰화(Tokenize) 하여 블랙리스트로 만들고, 이에 속한 단어가 포함되어 있는지의 검사로 분류 작업을 수행. 

 

*토큰(Token)

문법적으로 더 이상 나눌 수 없는 언어 요소.

 

실습

각 메일을 토큰화 하여 블랙리스트와 &연산으로 예측을 진행하였습니다.

 

데이터 수 : 실습(22,626), 예제 코드(21,196)

※ 예제 코드에서는 전처리 오류로 전체 메일의 5.8%는 분류되지 않았다고 합니다. 이에 대해서는 아시는 분은 알려주시면 감사하겠습니다.

실습(22,626) / 예제 코드(21,196) 햄으로 예측 스팸으로 예측
실제 햄 (5460, 24.13%)
(5411, 25.52%)
(1115, 4.92%)
(1115, 5.26%)
실제 스팸 (7235, 31.97%
(5854, 27.61%)
(8816, 38.96%)
(8816, 41.59%)

※ 실습에서는 Label :  {ham : 0, spam : 1} 로 두고 진행하였고, 오차행렬은 Scikit-learn의 confusion_matrix를 사용하였습니다.

 

정확도

실습코드 : 63.09%

예제코드 : 67.11%

 

정확도가 그리 높지 않은 이유는 간단합니다. 블랙리스트 기반으로 구분하였을 때 실제 메일에 블랙리스트에 들어있는 단어를 사용할 수도 있고, 블랙리스트에 정상적인 단어를 사용할 수도 있기 때문입니다.

 

 

 

2) 퍼지해시 알고리즘, LSH(지역민감 해상)을 사용한 스팸 메일 필터링

 

* 퍼지해시 알고리즘(Fuzzy Hash Algorithm)

퍼지해시 알고리즘은 입력 값을 여러 조각으로 분리한 후 각각의 조각에 해시를 사용하여 하 나의 결과를 만든다. 그리고 계산된 결과를 비교하여 얼마나 유사한지 확인합니다.

 

MinHash, LSH(Locality-sensitive hashing, 지역 민감 해싱) 두개를 사용하여 이메일이 스팸과 어느정도 유사한지 판단할 수 있습니다.

스팸 메시지에 퍼지 해시를 적용하여 유사한 해시를 보이는 이메일을 스팸 메일로 취급하여 필터링

이는 스팸 발송자는 자동화된 시스템을 통해 스팸 메일을 전송하므로 각각의 스팸 메일은 변형이 거의 없다는 가정을 둡니다.

 

실습

datasketch 패키지를 이용하여 MinHash와 LSH 알고리즘을 사용합니다.

 이는 스팸 집합의 특징을 찾아내기 위해 문자열 탐색 비용을 크게 줄여 성능을 높일 수 있습니다.

 

MinHash는 원본 문자열의 특징을 유지한 채 짧은 형태의 유사성 탐색이 가능한 토큰으로 변환시킵니다.

 

LSH는 MinHash가 생성한 토큰에 적용할 수 있으므로 성능을 크게 향상시킬 수 있습니다.

Minhash는 속도 향상을 위해 정확도에서 약간의 손실을 유발할수 있기 떄문에 fp, fn이 늘어날 수 있습니다.

퍼지 문자열 탐색을 훈렬 셋에 있는 n개의 스팸 이메일에 그대로 적용한다면 O(n)의 복잡도를 갖게 됩니다.

또는 O(n)의 공간 복잡도를 갖게 되므로 이러한 제약사항을 고려해 속도와 복잡도의 균형을 설정할 수 있습니다.

 

실습(22,626) / 예제 코드(21,196) 햄으로 예측 스팸으로 예측
실제 햄 (6496, 28.71%)
(6447, 30.5%)
(79, 0.03%)
(79, 0.4%)
실제 스팸 (6731, 29.74%)
(5320, 25.2%)
(9320, 41.19%)
(9286, 43.9%)

정확도

실습코드 : 69.9%

예제코드 : 74.56%

 

3) Naive Bayes classification

나이브 베이즈 분류를 사용하면 더 나은 결과를 얻을 수 있습니다.

 

실습

sklearn의 MultinomialNB를 통해 간단한 방식으로 나이브 베이즈 분류기를 사용할 수 있습니다.

이때 이메일 전처리는 이전 실습과 동일하지만 종료 문자를 제거하거나 NLTK로 형태소를 분석하는 과정을 거치지 않고 이메일의 제목과 본문(개행 문자로 구분)을 그대로 입력하는 방법을 사용합니다.

 

실습(22,626)  햄으로 예측 스팸으로 예측
실제 햄 (7436, 32.86%) (155, 0.68%)
실제 스팸 (842, 3.72%) (14193, 62.72%)

 

※ 예제 코드에 대한 confusion matrix가 없어 실습 결과만 작성하였습니다.

약 95%의 정확도로 이전의 blacklist와 LSH보다 훨씬 좋은 결과가 나타난 것을 알 수 있습니다.

 

 

 

 

참고문헌 및 출처

1. "머신 러닝을 활용한 컴퓨터 보안, 클라렌스 치오, 데이비드 프리먼, 에이콘"

"Machine Learning and Security by Clarence Chio and David Freeman(O'Reilly). Copyright 2018 Clarence Chio and Davide Freeman, 978-1491-97990-7"

 

2. 퍼지 해시 알고리즘 : "박창욱(고려대학교),  정현지(고려대학교),  서광석(한국정보보호교육센터),  이상진(고려대학교)

2012.12 "퍼지해시를 이용한 유사 악성코드 분류모델에 관한 연구", 정보보호학회논문지 제22권 제6호, 1,325 - 1,336(12 pages)" https://www.koreascience.or.kr/article/JAKO201208138130922.pdf

 

MinHasing : https://lifemath.tistory.com/7

 

[데이터 마이닝] Min-Hashing 란?

이번 포스팅에서는 데이터 마이닝 기법 중 Min-Hashing 알고리즘에 대해서 알아보겠다. Min-Hashing 란? Min-hashing 알고리즘은 데이터의 차원을 줄여서 줄어든 차원의 정보 만으로 클러스터링 하였을 때

lifemath.tistory.com

https://ko.wikipedia.org/wiki/%EB%82%98%EC%9D%B4%EB%B8%8C_%EB%B2%A0%EC%9D%B4%EC%A6%88_%EB%B6%84%EB%A5%98#cite_note-1

 

나이브 베이즈 분류 - 위키백과, 우리 모두의 백과사전

기계 학습분야에서, '나이브 베이즈 분류(Naïve Bayes Classification)는 특성들 사이의 독립을 가정하는 베이즈 정리를 적용한 확률 분류기의 일종으로 1950 년대 이후 광범위하게 연구되고 있다. 통계

ko.wikipedia.org

https://jhryu1208.github.io/data/2020/11/14/naive_bayes/

 

[ML with Python] 2. 지도 학습 알고리즘(3) 나이브 베이즈 분류

[ML with Python] 2. 지도 학습 알고리즘 (3) 나이브 베이즈 분류 본 포스팅은 지도 학습 알고리즘인 나이브 베이즈에 관한 기본적인 내용에 관하여 다룹니다. 나이브 베이즈(naive bayes) BernoulliNB Multinomi

jhryu1208.github.io

 

+ Recent posts