경기도미래기술학교 AI개발자 부트캠프 41일차 TIL- 베이즈 정리 복습의 복습.
2023. 7. 5. 15:52ㆍpython
반응형
약간 킹벽하게 정리가 된 부분이다.
이번에는 문제가 눈앞에 단지가 하나 있고(X 혹은 Y), 단지 X에는 흰공 9개, 검은 공 1개.
단지 Y에는 흰공 두 개와 검은 공 여덟개다.
Prior, likelihood, joint, posterior를 각각 구하는 것이었다.
Prior : 잘 모를 때의 확률. X혹은 Y단지일테니까 엄대엄이
다. 5:5
likelihood : X가 흰색일 확률, X가 Y의 확률. Y가 흰색일 확률, Y가 검은색일 확률을 각각 구하는 것이다. 우리가 흔히 하는 확률 분류.
joint : Prior와 likelihood를 곱한 값.
Posterior : 그 단지의 joint /선택한 공의 총 joint
를 구하면 된다.
# import pandas as pd
# def update_bayesian_table(table, likelihood):
# table['likelihood'] = likelihood
# table['unnorm'] = table['prior'] * table['likelihood']
#
# norm_const = table['unnorm'].sum()
# table['posterior'] = table['unnorm'] / norm_const
#
# return table
#
# table = pd.DataFrame(index = ['X_Jar', 'Y_Jar'])
# table['prior'] = 0.5, 0.5
#
# #검정공
# table = update_bayesian_table(table, likelihood= [0.05, 0.4])
# print('검정공')
# print(table)
#
# print()
# print('------------------------')
#
# #흰공
# table = update_bayesian_table(table, likelihood= [0.45, 0.1])
# print('흰공')
# print(table)
이게 초기 코드. 그리고 계속 공을 뽑았을 때의 확률이다.
2번문제.
공을 두 번 뽑았을 때 , B B였다면 X,Y의 확률?
공을 두 번 뽑았을 때 , B Y였다면 X,Y의 확률?
3번문제. 검은 공이 두번 뽑히고 이번엔 흰공이 뽑혔을 때, Y 단지일 확률?
import pandas as pd
def update_bayesian_table(table, likelihood):
table['likelihood'] = likelihood
table['unnorm'] = table['prior'] * table['likelihood']
norm_const = table['unnorm'].sum()
table['posterior'] = table['unnorm'] / norm_const
return table
table = pd.DataFrame(index = ['X_Jar', 'Y_Jar'])
table['prior'] = 0.5, 0.5
#검정공
table = update_bayesian_table(table, likelihood= [0.05, 0.4])
print('검정공')
print(table)
print()
print('------------------------')
#흰공
table = update_bayesian_table(table, likelihood= [0.45, 0.1])
print('흰공')
print(table)
print('2nd')
print('------------------------')
table['prior'] = 0.111111, 0.888889
#2nd 검정공
table = update_bayesian_table(table, likelihood= [0.05, 0.4])
print('검정공')
print(table)
print()
print('------------------------')
#2nd 흰공
table = update_bayesian_table(table, likelihood= [0.45, 0.1])
print('흰공')
print(table)
print()
print('------------------------')
print('3nd')
table['prior'] = 0.015385, 0.984615
table = update_bayesian_table(table, likelihood= [0.45, 0.1])
print('흰공')
print(table)
728x90
'python' 카테고리의 다른 글
맥북 크롬 셀레니움이 갑자기 안된다. 115버전 ChromeDriver 해결법.(임시 불끄기) (0) | 2023.07.19 |
---|---|
경기도미래기술학교 AI개발자 부트캠프 50일차 TIL- Life Expectancy (WHO) 케글 머신러닝 데이터 (0) | 2023.07.17 |
타이타닉 생존자 예측 프로젝트 해보기 1. 전처리 및 sns 뽑아보기. (0) | 2023.07.04 |
경기도미래기술학교 AI개발자 부트캠프 37일차 - 클러스터링(Clustering) 공부하기. (0) | 2023.06.30 |
ModuleNotFoundError: No module named 'openpyxl' 주피터에서 엑셀이 쳐 안열린다면? pip install xlrd (0) | 2023.06.29 |