본문 바로가기
  • Fearless

전체 글95

[확률론] (5) Conditional Independence 조건부확률과 관련하여 보편적으로 저지르는 실수 세가지를 확인해보자. 첫째, P(A|B)와 P(B|A)를 헷갈리는 것이다. 이를 '검사의 오류'라 부른다. 여담으로 변호사도 저지른다. 대표적인 사례를 통해 이해하는 것이 빠르다. 20세기 영국에 Sally Clark라는 여성이 있었는데 그녀의 두 아이들이 죽었고 그녀는 살해죄로 기소당했다. 검사는 그녀가 결백하다고 가정했을 때, 두 아이가 미스테리하게 죽을 확률이 1/8500이라고 주장했다. 게다가 두 아이 모두 죽었으니 그 확률은 P(dead|innocent)=1/8500의 제곱이니 극히 드물다고 말했다. 그러나 이는 두가지의 오류를 범하고 있는 것이다. 첫째, 우리는 그녀의 두 아이가 죽은 상황에서, 그녀가 무죄일 확률, 즉 P(innocent|dead.. 2022. 2. 1.
[확률론] (4) Conditional Probability Conditional Prob.(조건부확률)를 공부하기에 앞서 Indepndence를 살펴보자. P(A and B) = P(A)P(B)의 경우 우리는 A와 B가 독립이라고 한다. 세가지 이상의 event가 존재하는 경우엔 모든 joint event에 대해 P(A and B)=P(A)P(B)부터 P(A and B and C ...) = P(A)P(B)P(C)... 가 성립해야만 한다. 독립은 Neuton-Pepys Problem의 사례를 통해 잘 공부할 수 있다. 우리가 모든 면이 고른 정육면체의 주사위를 던진다고 가정해보자. 다음 세가지 경우 중 무엇이 가장 확률이 높을까? 첫째, 주사위 6개를 던졌을 때 최소 1개가 6이 나오는 경우 둘째, 주사위 12개를 던졌을 때 최소 2개가 6이 나오는 경우 셋째.. 2022. 1. 31.
[확률론] (3) Birthday Problem, Properties of Probability 우리의 직관에 반하는 예시인 Birthday Problem을 살펴보면서 확률의 특성에 대해 알아보자. 만약 k명의 사람들이 존재할 때, 그 중 적어도 2명의 생일이 서로 같을 확률은 얼마일까? 이 문제의 가정은 i.i.d라는 점이다. 가령 k명의 사람이 모인 집단이 무작위적으로 추출된 것이 아니라 특정 일자를 생일로 가질 확률이 확률적으로 높은 집단이라면 이 문제는 무효가 된다. 따라서 생일의 확률은 identically distributed된 경우라고 가정한다. 이 문제를 풀기 위한 과정은 다음과 같다. 첫째, 만약 k > 365라면 확률은 1이 된다. k=366이라면 매우 운이 없는 경우 365명 모두의 생일이 다르더라도 적어도 한 명의 생일은 누군가와 겹치게 되니 P(k)=1, k>365가 된다. .. 2022. 1. 31.
[확률론] (2) Story proofs, Axioms of Probability 이전 글에 이어서 Counting을 얘기해보자. 10명의 사람을 4명, 6명으로 그룹화짓는 짓는 경우의수는 몇가지인가? 이는 10C4(=10C6)이다. 왜냐하면 첫번째 그룹을 선택함으로 인해 그 나머지가 두번째 그룹으로 자동 형성되기 때문이다. 그러나 5명, 5명으로 나누는 경우는 다르다. 첫번째 그룹의 5명을 선택할 때 마찬가지로 두번째 그룹이 생성되는데, 이 그룹은 서로 차별점이 없다. 예를 들어 ABCDE를 고르면 나머지 FGHIJ는 두번째 그룹으로 자동생성되는데, 이 때 첫번째 그룹을 고르기 위한 10C5에 FGHIJ가 그대로 포함되기 때문에 double-counting의 이슈가 발생한다. 따라서 우리는 10C5 / 2를 해줌으로서 double counting을 해소할 수 있다. 이제 이 표에서 .. 2022. 1. 31.
[확률론] (1) Probability and Counting 기초통계학은 직관에 반하는 불확실성을 계량화하기 위해 존재한다. Data Science field에서의 발전으로 통계학의 중요성이 위축되었으나 그럼에도 불구하고 data가 부족한 경우 통계학은 좋은 tool로써의 역할을 한다. Sample Space는 실험을 통해 얻을 수 있는 모든 가능사건의 집합이다. 이 Sample Space의 부분집합을 우리는 event라 부른다. 확률에 대해 naive한 정의를 내리자면, 확률이란 모든 가능사건 중 특정 event에 한정되는 사건의 비율을 뜻한다. 즉, Sample Space의 면적 중 부분집합 event A의 면적인 것이다. 가령 동전을 두번 던지는 경우, 4개의 가능사건이 Sample Space 내부에 존재하고, 이중 우리가 를 얻게될 확률은 1/4인 것이다... 2022. 1. 31.
[ML개론] (6) Naive Bayesian Classifier 이전에 살펴본 Conditional Independence 가정을 바탕으로, Naive Bayesain Classifier를 설계한다. 기존에 사용하던 argmax(pdf) 함수를 사용하는데, 위 식과 같이 변형할 수 있다. 이를 통해 우리는 기존 (2^d-1)k만큼 필요하던 dataset을 (2-1)dk개로 줄일 수 있다. NBC는 Bayes risk를 줄여주는 최적의 분류기다. Class prior prob P(Y), d개의 conditionally independent한 P(X|Y)가 주어져있단 가정하에서 Y=y를 극대화시키는 함수를 찾는 것이다. 기존 optimal classifier는 and로 이어진 X variable에 해당하는 dataset을 다 찾아야했지만 NBC는 필요한 dataset의 .. 2022. 1. 27.
[ML개론] (5) Optimal Classification & Bayes Risk 지도학습은 label이 존재하는 dataset으로 모델을 학습시키는 방법이다. 이는 크게 classification, regression, clusterization으로 나뉜다. 이중 classification에 대해 알아보려 한다. 우선 Bayes Classifier을 활용한 Optimal Classification을 알아보자. Optimal Classification은 'f(X)가 Y가 아닐 확률'을 최소화해주는 함수 f를 근사적으로 찾아내는 것이다. 가령 Y가 0과 1의 두 class로 구성되었다고 가정할 때, P(Y|X=x1)은 초록색함수의 수치가 가장 높다. 반면 X=x2일때는 빨간색 함수의 수치가 가장 높다. 결국 function은 특정 X input을 받았을 때 P(Y|X), 즉 확률을 반환.. 2022. 1. 27.
[ML개론] (4) Decision Tree & Entropy Rule Based ML의 결함 때문에 우리는 Decision Tree를 도입한다. 이를 신용평가와 관련한 간단한 예시를 통해 살펴볼 것이다. 위의 경우 690명의 고객이 존재하고, 307명은 신용평가에서 통과했으며 나머지는 그러지 못했다. 15개의 feature를 통해 통과 여부를 결정짓는 모델을 Decision Tree를 통해 구현하려고 한다. 이 경우 A1이라는 feature로만 class를 판별함을 가정할 때, a면 통과, b이면 불통과라는 기준을 세웠다면 각112명, 206명에 대해 잘못된 판단을 내리는 것이다. A9도 A1보단 낫지만 총 100명에 대해 잘못된 판단을 내리게 된다. 따라서 우리는 Decision Tree를 설계할 때 좋은 feature를 선별해야만 한다. 이 때 feature .. 2022. 1. 26.
[베이즈통계] (3) 베이즈추정은 정보를 얻을수록 더 정확해진다 여지껏 P(E|D) = P(E) * P(D|E), 즉 데이터가 하나만 존재하는 경우만을 봐왔다. 이제 정보가 여러개 주어진 상황을 살펴보자. 사실 별 내용이 없어서 필기 대충했다. 동전던지기와 주사위던지기는 서로 독립적인 시행이니 이들을 결합한 사건은 결국 두 사건의 확률의 곱으로 구성된다는 내용이다. Naive Bayesian Classifier을 활용한 대표적 사례인 스팸필터를 살펴보자. 우리는 스팸인지 아닌지를 확인하고 싶다. 그런데 이를 사전적으로 추정할 방법은 없으니 1/2로 prior prob을 설정한다. 그리고 여지껏 취합한 정보에 의하면 스팸메일에는 60%의 확률로 url이 존재하며, 스팸이 아닌경우 20%의 확률로 존재한다. 기호로 표현하자면 P(url|spam)=60%인 것이다. 이를 .. 2022. 1. 26.
[베이즈통계] (2) 방법론의 리스크 vs 선택의 리스크 확률을 바라보는 베이지언과 빈도주의학파간의 관점 차이를 예시를 통해 알아보자. 외관상 구분이 불가능한 항아리 A, B가 있다. A에는 9개의 하얀공, 1개의 검정공이, B에는 8개의 검정공, 2개의 하얀공이 들어있다. 특정 항아리에서 공을 꺼냈을 때 그것이 검정공이었다면 그 항아리는 A인가 B인가? 이 질문에 대한 빈도주의자의 답은 다음과 같다. 아 그들은 시작전에 이 명제를 깔고 들어간다. "만약 특정 수준을 만족한다면 틀린 추정을 할 리스크를 감내한다" 이들의 선택은 그 자체가 확정적인 리스크는 아니지만 방법론이 리스크를 내포하고 있다. 그들은 당연히 해당 항아리가 B라고 말한다. 만약 B에서 우리가 10번 공을 뽑는데, 8개의 검정공과 2개의 하얀공이 나왔다고 가정하자. 우리는 검정공이 나올때는 B.. 2022. 1. 26.
[베이즈통계] (1) 정보의 획득이 확률을 바꾼다 간단한 예시를 통해 베이즈통계학의 개념에 다가서보자. covid에 확진될 확률이 20%, 확진되지 않을 확률이 80%라고 가정하자. 우리는 이를 사전적으로 알고 있으며 이를 prior probability(사전확률)이라 부른다. 우리는 covid tester를 갖고 있는데, 이 tester는 covid에 실제로 걸렸을 때 양성이 95%, 걸리지 않았을 때는 음성이 90%의 확률로 도출된다. 이를 conditional probability(조건부확률)이라 부른다. 이 때 조건이 되는 것은 사전확률의 event다. 우리는 conditional probability와 prior probability를 곱하여 4가지의 가능세계를 구현할 수 있다. C&P, C&(~P), (~C)&P, (~C)&(~P)가 그것이다.. 2022. 1. 26.
[파이썬문법] 12. Threading(1) 필요할 때마다 야매로 배워서 써먹는중. 작성한 코드를 병렬적으로 실행시키기 위해선 Threading 모듈이 필요하다. import threading def sum(low, high): total = 0 for i in range(low, high): total += i print("Subthread", total) t = threading.Thread(target = sum, args(1,10000)) t.start() print("Main Thread") 가령 위 예시와 같이 최소, 최대의 인수를 넘겨받아 최소에서 최대까지의 합게를 반환하는 함수가 있다고 가정하자. 이 때 특정 thread를 통해 해당 함수를 실행하기 위해선 threading.Thread(target = 'method_name', ar.. 2022. 1. 21.
반응형