일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- nanite
- gameplay tag
- 언리얼 엔진
- photon fusion2
- 언리얼엔진
- UI
- attribute
- network object pooling
- stride
- Multiplay
- rpc
- map design
- CTF
- local prediction
- unity
- Aegis
- 유니티
- os
- gameplay ability system
- 게임 개발
- Replication
- ability task
- 게임개발
- Unreal Engine
- MAC
- listen server
- gameplay effect
- 보안
- animation
- gas
- Today
- Total
Replicated
나이브 베이지안 분류기 본문
- 베이즈 분류기: 하나의 변수만 고려
- 나이브 베이지안 분류기(Naive Bayesian Classifier) : 여러 개의 열을 사용하여 분류기 구성
- 변수들 간 상호 의존성이 없다고 가정 -> 조건부 확률 독립적 계산 가능
독립적이니 그냥 다 곱하면 됨
BoW(Bag of Words)
- 단어별로 인덱스가 부여되어 있을 때 한 문장 또는 한 문서에 대한 벡터를 표현하는 기법
- 전체 문서에 있는 모든 단어들에 이미 인덱스가 부여되어 있고 출현한 단어에 대해서만 단어의 개수를 벡터로 표현
y_example_text = ["Sports", "Not Sports", "Sports", "Sports", "Not Sports"]
y_example = [1 if c=="Sports" else 0 for c in y_example_text ]
text_example = ["A great game game",
"The The election was over",
"Very clean game match",
"A clean but forgettable game game",
"It was a close election", ]
from sklearn.feature_extraction.text import CountVectorizer
countvect_example = CountVectorizer()
X_example = countvect_example.fit_transform(text_example)
countvect_example.get_feature_names_out()
BoW 기법으로 표현
각 단어의 빈도
베르누이 나이브 베이지안 분류기(BernoulliNB)
- 다루고자 하는 모든 데이터가 boolen 피쳐
- 사용되는 데이터 타입은 이산형 데이터인데 이러한 데이터를 모두 boolen 타입으로 변경하여 학습
- 정수 타입 숫자라면 임계값 기준으로 True, False 변환
from sklearn.naive_bayes import BernoulliNB
clf = BernoulliNB(binarize=0) # 0 또는 0 이상인 건 1.. 기준임
clf.fit(X_example, y_example)
test_sentence = ["The The election was over"]
X_test = countvect_example.transform(test_sentence)
prediction = clf.predict(X_test)
if prediction[0] == 1:
print("Sports")
else:
print("Not Sports")
문장을 넣어서 예측 수행 가능
다항 나이브 베이지안 분류기
- MultinomialNB : 베르누이 분류기와 달리 각 피쳐들이 이산형이나, 이진값이 아닌 여러 개의 값을 가질 수 있음
- 단어가 있다, 없다 vs 몇 개 있다
∑tf(xi,d∈Yc)
- 각 단어 xi가 하나의 클래스인 Yc에 속하는 모든 문서에 존재하는 개수
- 즉 Sports에 속하는 문장들에 game이라는 단어가 몇 번 나오는지
α
- 스무딩값
- 제로 확률 문제를 해결하기 위해 도입
- 주로 1
데이터 | 문서 | 단어 | 클래스 |
훈련 데이터 | 1 | Chinese Beijing Chinese | c |
2 | Chinese Chinese Shanghai | c | |
3 | Chinese Macao | c | |
4 | Tokyo Japan Chinese | j | |
테스트 데이터 | 5 | Chinese Chinese Chinese Tokyo Japan | ? |
P(Chinese|c)
∑tf(xi,d∈Yc) : 5
∑Nd∈Yc : 8
V : 6
=> (5 + 1) / (8 + 6) = 6/14 = 3/7
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB(alpha=1)
clf.fit(X_example, y_example)
'빅데이터마이닝' 카테고리의 다른 글
베이즈 분류기 (0) | 2025.04.12 |
---|---|
다중클래스 분류의 코드 구현 (0) | 2025.04.12 |
다중클래스 분류 & 소프트맥스 분류 (0) | 2025.04.12 |
로지스틱 회귀 구현 (0) | 2025.04.12 |
분류 문제의 성능 지표 (0) | 2025.04.12 |