일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git rebase
- 머신러닝기초
- 오블완
- 컨트렉트 동일한 함수이름 호출
- 러스트기초
- 체인의정석
- Vue.js
- Vue
- ethers type
- ethers
- 스마트컨트렉트 함수이름 중복 호출
- 스마트 컨트렉트 함수이름 중복
- 티스토리챌린지
- rust 기초
- ethers websocket
- ethers typescript
- erc4337
- erc4337 contract
- ambiguous function description
- 러스트 기초 학습
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트 기초
- 컨트렉트 배포 자동화
- multicall
- 스마트컨트렉트테스트
- 계정추상화
- vue기초
- chainlink 설명
- ethers v6
- SBT표준
- Today
- Total
체인의정석
머신러닝 스터디 02 - 나이브베이즈 분류기 본문
나이브 베이즈 분류기는 선형 모델과 유사하며 선형 분류기 보다 훈련 속도가 빠르지만, 일반화 성능이 조금 뒤지는 문제가 있습니다. 사이킷 런에서 구현된 나이브 베이즈 분류기는 연속적인 어떠한 데이터에도 적용할 수 있는 GaussinanNB, 이진데이터에 적용할 수 있는 BernoulliNB, 카운트 데이터에 적용되는 MultinomialNB의 3개 입니다.
BernoulliNB와 MultinomialNB는 대부분 텍스트 데이터를 분류할 때 사용합니다.
BernoulliNB분류기는 다음과 같습니다.
X= np.array([
[0,1,0,1],
[1,0,1,1],
[0,0,0,1],
[1,0,1,0]
])
y=np.array([0,1,0,1])
이진 특성을 4개 가진 데이터 포인트 를 X로 두고
이에 대한 출력이 y에 담기게 됩니다.
이때 특성의 개수는 새는 방법은 아래 식과 같이
y의 np.unique=[0,1]을 기준으로 label이 나오게 된다. 이때 label==y로 실행하여 0일때 한번 1일때 한번 실행될때
0이 있는 부분인 X[0]+X[2]를 행기준(axis=0)으로 더하여 특성 카운트 counts[0]으로 나오게 되며,
1이 있는 부분의 값인 X[1]+X[3]이 마찬가지로 행기준으로 더하여 counts[1]으로 나오게 된다.
따라서 각 특성별로 0이 아닌 원소를 셀 수 있습니다.
counts={}
for label in np.unique(y):
counts[label] = X[y==label].sum(axis=0)
print("특성 카운트:n{}".format(counts))
특성 카운트:n{0: array([0, 1, 0, 2])} 특성 카운트:n{0: array([0, 1, 0, 2]), 1: array([2, 0, 2, 1])}
이때 MultinomialNB는 각 클래스 별로 평균을 , GaussinanNB는 각 클래스 별로 표준편차와 평균을 구합니다.
또한 MultinomialNB와 BernoulliNB는alpha값을 통하여 복잡도를 조정할 수 있습니다.
GaussinanNB는 고차원인 데이터셋에 사용하고 다른 두 모델은 텍스트 같은 희소한 데이터를 카운트하는 데 사용합니다. MultinomialNB는 보통 0이 아닌 특성이 비교적 많은 데이터셋에서 BernoulliNB보다 성능이 높습니다.
나이브 베이즈 모델과 선형모델은 희소한 고차원데이터에서 잘 작동하며 비교적 매개변수에 민감하지 않고, 예측속도가 빠르고 훈련과정을 이해하기 쉽습니다. 선형 모델로는 학습 시간이 너무 오래걸리는 매우 큰 데이터셋에서 나이브베이즈가 종종 사용됩니다.
IT 유튜브 타임해커 보러가기
www.youtube.com/channel/UCHsRy47P2KlE749oAAjb0Yg?view_as=subscriber
타임해커
-블록체인/인공지능 -웹개발(프론트/백) -광고(페이스북/구글/네이버) -사업계획서 작성 -비전공생을 위한 IT 공부법 채널이름은 기획,마케팅,개발을 다 같이해서 업무성과를 내는데 드는 시간을
www.youtube.com
깃허브에서 소스코드/모든 시리즈 보러가기
github.com/hynki95/machine_learning
hynki95/machine_learning
Contribute to hynki95/machine_learning development by creating an account on GitHub.
github.com
'빅데이터&인공지능' 카테고리의 다른 글
머신러닝 스터디 02-선형모델(분류 편)- 분류용 선형 모델 (0) | 2020.07.18 |
---|