Mathematics for AI #15
경우의 수 따져 확률 계산하기!
*출제자의 한 마디*
확률은 빅데이터와 인공지능 관련 알고리듬은 물론 다양한 분야에서 많이 쓰이며 4차 산업혁명의 주요 기술을 이해하는데 꼭 필요합니다.
이번 시간에는 경우의 수를 따져 확률을 계산하는 방법에 대해 알아봅시다.
--------------
경우의 수 따져 확률 계산하기!
빅데이터와 인공지능(AI)을 이해하기 위해서 확률을 반드시 알아야 합니다. 예컨대 쇼핑몰에서 작동하는 AI가 어떻게 상품을 추천하는지 알아볼까요. AI는 상품과 관련된 빅데이터를 수집하고 분석해 고객에게 가장 적합한 상품이 무엇인지를 확률에 따라 추천합니다.
확률은 어떤 사건이 일어날 가능성을 수치화해 나타낸 것으로, 반드시 0과 1 사이의 값을 갖습니다. 사건이 일어날 확률을 분석하려면 먼저 어떤 사건이 있는지를 알아야 합니다. 예컨대 그림처럼 1부터 6까지 쓰여 있는 공이 들어있는 주머니에서 공을 한 개 꺼낼 경우 모든 결과의 집합인 S를 {1, 2, 3, 4, 5, 6}으로 나타낼 수 있으며, 이를 ‘표본공간’이라고 합니다.
또한 1이나 2가 쓰여 있는 공을 뽑는 것처럼 특정한 사건의 집합을 A라고 할 때, 사건 A가 일어날 가능성을 수로 나타낸 확률은 P(A)로 표현하며, 다음과 같이 계산합니다.
경우의 수를 따지는 방법은 대표적으로 순열과 조합이 있습니다. 순열부터 살펴볼까요. 순열은 가능한 경우를 순서대로 나열하는 방법입니다. 예를 들어 A, B, C가 쓰인 카드 세 장을 순서대로 나열한다면 {(A, B, C), (A, C, B), (B, A, C), (B, C, A), (C, A, B), (C, B, A)} 총 6가지가 나옵니다.
그런데 이렇게 순서대로 나열하는 경우에는 일일이 세지 않고 ‘팩토리얼(factorial, !)’로 쉽
게 계산할 수 있습니다. n!은 자연수 n부터 1까지의 모든 수를 곱하는 것으로 n!=n×(n-1)×
(n-2)×(n-3)×…×1로 나타냅니다. 앞에서 살펴본 것처럼, 서로 다른 카드 세 장을 순서대
로 나열하는 경우의 수를 팩토리얼로 나타내면 3!으로 3×2×1=6가지임을 알 수 있습니다
또한 서로 다른 n개 중 k개를 중복없이 선택해 순서대로 나열하는 경우의 수는 로 순열을 이용해 쉽게 계산할 수 있습니다.
조합은 순서와 상관없이 선택하는 경우의 수입니다. 예를 들어 A, B, C가 쓰인 카드 세 장에서 순서와 상관없이 두 장을 뽑는다면 {(A, B), (A, C) (B, C)} 총 3가지가 나옵니다. 서로 다른 n개 중 k개를 순서와 상관없이 선택하는 경우의 수는
이며, 이를 팩토리얼로 나타내면 (단, n≥k이며, 0!=1)입니다.
--------------
문제
데이터에 고양이 사진 6장과 강아지 사진 4장이 들어있다. 처음에 고양이 사진을 뽑고, 그 다음에 강아지 사진을 뽑을 확률을 구해라.
풀이에 필요한 SageMath 코딩 명령어
①
factorial(n)
팩토리얼: n!을 직접 계산하려면 곱하기를 n-1번 해야 하지만, factorial 명령어를 이용해 n!을 쉽게 계산한다.
②
factorial(n)/factorial(n-k)
순열: n개 중 k개를 골라서 순서대로 나열하는 경우의 수를 구한다.
③
binomial(n, k)
조합: n개 중 k개를 순서와 관계없이 선택하는 경우의 수를 구한다.
*코딩창의 언어를 ‘R’로 바꾼 뒤 명령어를 입력하세요.
-끝-
Severity: Warning
Message: mkdir(): Permission denied
Filename: libraries/Common.php
Line Number: 202
Backtrace:
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 202
Function: mkdir
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 236
Function: getLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/views/ver3/inc/view_comment_list.php
Line: 90
Function: parseLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/views/ver3/inc/view.php
Line: 343
Function: view
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/controllers/ver3/Contents.php
Line: 558
Function: view
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/index.php
Line: 315
Function: require_once
Severity: Warning
Message: file_put_contents(/DATA/upload/polymath/latex/cfe05ca8bc9c16b9f7e28e56d1394704.gif): failed to open stream: No such file or directory
Filename: libraries/Common.php
Line Number: 213
Backtrace:
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 213
Function: file_put_contents
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 236
Function: getLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/views/ver3/inc/view_comment_list.php
Line: 90
Function: parseLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/views/ver3/inc/view.php
Line: 343
Function: view
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/controllers/ver3/Contents.php
Line: 558
Function: view
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/index.php
Line: 315
Function: require_once