zenn.skin 무료버전 배포중!
자세히보기

DataScience 56

DataScience
조건부 확률 (Conditional Probability)

1. 확률 - 확률은 주어진 사건 공간에서 특정 사건이 선택되는 경우를 수치적으로 나타낸 것이다 - 모델을 만들거나, 만들어진 모델의 성능을 평가하는 데에 사용 가능하다 2. 종속성과 독립성 - 두 개의 사건이 주어질 때, 한 사건의 발생 여부가 다른 사건의 발생 여부에 대한 정보를 준다면 두 사건은 종속 사건이다. 만약 정보를 주지 않는다면 둘은 독립 사건이다. ex1) 동전을 두 번 던진다. 사건 A는 첫 번째 동전이 앞면인 경우이고, 사건 B는 두 동전이 모두 뒷면이 나오는 경우이다. 사건 A가 일어난다면 사건 B는 일어날 수 없다. 따라서 두 사건은 종속 사건이 된다. ex2) 동전을 두 번 던진다. 사건 A는 첫 번째 동전이 앞면인 경우이고, 사건 B는 두 번째 동전이 뒷면이 나오는 경우이다. ..

DataScience
오차함수와 정규분포와의 관계

1. 오차 함수 다음과 같은 함수를 오차 함수(Error Function)라 한다. 줄여서 erf라고도 한다. 2. 오차 함수와 정규분포와의 관계 오차 함수는 정규분포의 cdf와 밀접한 관계가 있는데 둘의 관계를 확인해 보려 한다. 즉, 정규분포의 cdf와 오차함수는 본질적으로 같은 함수임을 알 수 있다. 오차 함수에 값을 대입하고 평행이동을 하면 정규분포의 cdf를 구할 수 있다. 3. 그래프 확인하기 math.erf 함수를 이용하면 정규분포의 CDF를 구할 수 있다 import matplotlib.pyplot as plt import math def normal_cdf(x, mu=0, sigma=1): return (1+math.erf((x-mu)/math.sqrt(2)*sigma))/2 xs = n..

DataScience
[Matplotlib] 정규분포 그리기

Python을 이용해 정규분포를 그려보려 한다. 정규분포의 pdf는 다음과 같다. 1. 직접 생성 위 식을 함수로 정의하면, 다음과 같다 import matplotlib.pyplot as plt import math def normal_pdf(x, mu=0, sigma=1): return(math.exp(-(x-mu)**2)/(2*sigma**2))/(math.sqrt(2*math.pi)*sigma) 다음과 같이 xs_1에 대한 정규분포를 구해보자(plot에 정수값을 넣을 수 없으므로, x/10을 대입) xs_1 = [x/10 for x in range(-50, 50)] plt.plot(xs_1, [normal_pdf(x) for x in xs_1]) 다양한 정규분포를 구해보면, plt.plot(xs, ..

DataScience
정규분포의 정의와 평균, 분산

1. 정규 분포의 랜덤 변수 정규 분포는 Gaussian Distribution 또는 Normal Distribution이라 한다. 고등학교 때 확률과 통계에서도 배우고 대학교에 올라와서도 제일 중요하게 배우는 분포이다. 정규분포는 중심 극한 정리나 이외에도 여러 공식을 유도할 때도 많이 사용되는 통계에서 가장 중요한 분포이다. 2. 정규분포의 특성 1) 종모양의 분포 : 좌우가 대칭인 종모양의 분포를 갖는다 2) 평균값 = 중앙값 = μ 3) P(x =μ) = 1/2 4) 평균이 0, 분산이 1인 표준 정규분포를 갖는다 5) 표준정규분포는 별도의 표가 존재해 값을 구하기 편하다 3. 평균 이 때, 앞의 식은 기함수와 우함수가 곱해져 기함수이므로, 적분 값은 0이 되고, 뒤의 식을 적분하면, 이 된다. ..

DataScience
[Matplotlib] 한글 폰트 설정, 글꼴 변경

Matplotlib에서 기본적으로 제공하는 폰트는 한글을 제공하지 않는다. 그러므로 한글 폰트를 적용하기 위해서는 한글을 지원하는 폰트를 설치하고 바꿔주어야 한다. import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.font_manager as fm import numpy as np def example_f(x): return x**2 x = np.arange(0,100,1) plt.xlabel('이것은 엑스축') plt.ylabel('이것은 와이축') plt.title('이것은 제목') plt.plot(x, example_f(x)) ppt 파일을 열심히 만들고 발표하는 컴퓨터에서 ㅁㅁㅁㅁ처럼 글씨가 나타나는 경우가 있다...

DataScience
[Matplotlib] 개요

※Matplotlib 파이썬에서 가장 많이 사용되는 데이터 플로팅 도구이다 MATLAB과 비슷하게 사용가능한 장점이 있다 많은 모듈을 포함하고 있지만 pyplot 모듈만 import해도 대부분의 기능을 사용가능하다 글꼴이나 스타일을 변경하고 싶을 때 최상위 레벨을 import한다 ※Matplotlib 툴킷 matplotlib에서는 툴킷을 추가해 기능을 확장할 수 있다. Matplotlib과 자동으로 설치되는 툴킷들도 있지만 대부분의 툴킷은 별도의 설치가 필요하다. 지도와 함께 플롯(Basemap, Cartopy) 3차원 그래프 플롯(mplot3d) 여러 개의 이미지를 배치 가능(AxesGrid) 고품질 플롯(Seaborn) 자연 근접 보간(Natgrid) 수치를 팝업 레이어로 표시(MplDataCurso..

DataScience
가우스 적분

다음과 같은 적분을 가우스 적분이라 한다 가우스 적분은 중심 극한 정리에 사용되며 정규 분포 식을 증명할 때도 사용되는 적분이다. 이외에도 편미분에서도 자주 등장하는 함수로 알아두면 유용한 함수이다. 주어진 함수를 그리면 다음과 같다 import numpy as np import matplotlib.pyplot as plt def func_(x): return np.exp(-(x**2)/2) x = np.arange(-5, 5, 0.1) plt.plot(x, func_(x)) 그래프는 범위를 -5~5까지 한정했지만 그래프가 무한대로 가면 결국 양 끝은 0으로 수렴할 것이다. 해당 그래프의 범위는 어떻게 구할 수 있을까? 구하고자 하는 적분의 결과 값을 I로 두면 다음과 같다 양변을 제곱하면, 이 때, x..

DataScience
[Numpy] 뷰

ndarray의 요소를 꺼내는 방법에는 크게 두 가지가 있다. 첫번째는 인덱싱을 이용해 뷰를 생성하는 방법이고 두번째는 사본을 생성하는 방법이다. 오늘은 뷰에 대해 알아보자. 뷰는 ndarray에 접근하기 위해 만든 참조를 의미한다. Numpy에서는 메모리에서 불필요한 복사가 이뤄지는 것을 최대한 피한다. 즉, 뷰는 ndarray의 참조이며 뷰의 값을 변경하면 ndarray의 값도 변경되게 된다. import numpy as np mat = np.arange(12).reshape(-1,4) print('before: ', mat) _view = mat[1, 1:] print() print('view: ', _view) print() _view[0]=100 print('after: ', mat) 보는 것처..

DataScience
[Numpy] ndarray

Numpy의 근간은 ndarray 객체이다. 리스트는 C의 배열과 다르게 각 요소들의 주소가 연속적이지 않다. 반면 Numpy의 ndarray는 각 요소들의 주소가 연속적이다. 이는 계산의 속도를 향상해 느린 연산 속도를 갖는 파이썬의 단점을 없애준다. 1. ndarray의 생성 1) array import numpy as np matA = [[1, 2, 3],[4, 5, 6], [7, 8, 9]] matB = np.array(matA) #리스트로 생성 matC = np.array(((1, 2, 3), (4, 5, 6), (7, 8, 9))) #튜플로 생성 print(type(matA)) print(type(matB)) print(type(matC)) 결과를 보면 알 수 있듯이 리스트와 튜플 모두 nda..