Introduction to Computational Thinking and Data Science
(6.0002, Fall 2016)
MIT 공대의 "Introduction to Computational Thinking and Data Science"(6.0002, Fall 2016) 강의 정리 자료
핵심 키워드
- 확률론적 사고(Stochastic Thinking)
- 시뮬레이션 모델(Simulation Model)
- random.choice 함수
학습 내용
확률론적 사고(Stochastic Thinking)
- 세계를 본질적으로 예측가능할 수 없다고 취급하는 것이 나을 수 있음
- 세상엔 불확실성(무작위성)이 너무 많아 이해하기 어려움
- 무작위성을 위해 확률론적 사고를 할 필요성이 있음
- 확률에 대한 3가지 기본 사실
- 확률은 항상 0 ~ 1
- 분모 : 가능한 모든 사건의 수, 분자 : 부분 집합인 관심을 갖는 사건
- 어떤 사건이 일어날 확률이 p라면 일어나지 않을 확률은 1-p
- 중요한 법칙(곱의 법칙)
- 사건이 서로 독립적이라면 모든 사건이 일어날 확률은 각 사건이 일어날 확률을 곱한 것과 같음
- A가 일어날 확률이 0.5고 B가 일어날 확률이 0.4라면 A,B가 일어날 확률은 0.2
- 그러나 이런 법칙은 독립적인 경우에만 적용
- 하나의 결과가 다른 결과에 영향을 주지 않다면 두 사건은 독립적
- 사람들은 자주 독립성이 없는 경우에도 독립적임을 가정하고 확률을 계산하니 주의가 필요
시뮬레이션 모델(Simulation Model)
- 시스템이 가능한 행동에 대한 정보를 제공하는 계산을 나타내는 프로그램
- 시뮬레이션을 작성하고, 그 사건이 드물게 발생하면 추정된 확률을 믿기 전에 더 많은 시도를 하는 것이 좋음
- 드물게 발생하는 사건의 좋은 추정을 얻기 위해선 많은 시도가 필요
- 항상 실제 확률과 헷갈리지 않도록 추정된 확률이라는 것을 알고 있어야 함
- 시뮬레이션을 작성하고, 그 사건이 드물게 발생하면 추정된 확률을 믿기 전에 더 많은 시도를 하는 것이 좋음
- 시뮬레이션을 사용하는 이유는?
- 복잡한 확률 계산을 하는 대신 확률적인 질문에 대한 답을 얻기 위해 시뮬레이션을 사용하는 주된 이유
- 초반에 본 최적화 모델(1~3강)과 다른 점
- 최적화 모델은 규범적
- 어떻게 배낭에서 최대의 가치를 얻는지
- 어떻게 A에서 B로 가는 최단 거리로 가는지
- 반면 시뮬레이션 모델은
- 이런 결과가 나타난다는 것을 말해줌
- 어떻게 그 일을 일어나게 해주는지 말해주지 않음
- 현실의 근사치일뿐임
- 수학적으로 접근하기 힘든 문제를 풀 경우 시뮬레이션을 사용하면 유용
- 다양한 조건을 쉽게 조절하면서 진행할 수 있기 때문에 잘 사용함
random.choice 함수
- 실제로 무작위적이지 않음. 의사 난수라는 것을 생성함(pseudo random)
- 연속된 수에서 한 숫자가 다음 숫자를 생성하는 알고리즘이 있음(seed)
- 컴퓨터의 클럭을 가지고 읽음
- random.seed를 사용해 같은 시작점에 대해 같은 무작위적인 값을 얻음
- 해당 원소 중 하나를 추출
- p 파라미터에 확률값을 넣어서 사용할 수 있음
menu = ['라면','짜장면','국밥']
random.choice(menu)
>>> '라면' # 33%의 확률로 이 값이 선택
menu2 = ['돈까스','초밥','한식']
random.choice(menu2, p=[0.7, 0.1, 0.1])
random.choice(menu2)
>>> '돈까스' # 70%의 확률로 이 값이 선택
실습 코드
728x90
'Data Science, ML > MIT- Introduction to Data Science' 카테고리의 다른 글
[MIT] Data Science - 6. Monte Carlo Simulation (0) | 2021.05.26 |
---|---|
[MIT] Data Science - 5. Random Walks (0) | 2021.05.26 |
[MIT] Data Science - 3. Graph-theoretic Models (0) | 2021.05.26 |
[MIT] Data Science - 2. Optimization Problems (0) | 2021.05.26 |
[MIT] Data Science - 1. Introduction and Optimization Problems (0) | 2021.05.26 |