본문 바로가기

데이터와 함께 탱고를

(38)
가설검정 단계 (지금까지) 유튜브 HSM - edu 통계 채널의 '손으로 푸는 통계', 27. Z검정의 한계(정규성,t,비모수검정의 출현+디시전트리) 에 나오는 강의 영상 중 하나로 한 눈에 봐보자. 요약하면, 일단 모수의 분산을 아느냐 모르느냐로, Z검정, T검정으로 나눈다. 모수의 분산을 알고, 표본 분포가 정규성을 만족하는 경우, Z검정을 한다. 모수의 분산을 모르고, 표본 분포가 정규성을 만족하는 경우, T검정을 한다. 일반적으로 정규성을 만족하지 않는 경우, 비모수 검정을 한다. 정규성을 만족한다는 말은, 말 그대로 정규분포를 따른다고 알려져있거나, 알려져 있지 않더라도, 데이터 개수 n이 30이상인 경우, 중심극한정리에 의해 정규본포를 따른다. 데이터 개수 n이 30 미만인 경우, 별도의 정규성 테스트를 ..
표본 분산은 왜 n-1로 나눌까? 유튜브에 HSM - edu 통계 채널의 '손으로 푸는 통계' 를 보면 잘 설명되어 있다. 주요 키워드들로 간단히 요약해보면, 표본을 뽑아서 무언가를 하는 목적은, 대부분 모수를 추정하기 위함이다. 표본에서 뽑은 통계값 (평균, 분산) 을 추정량 이라고 한다. 그 중에, 불편 추정량 (unbiased estimator) 이라는 말이 있는데, 추정량의 기댓값이 모수가 되는 추정량이라는 말이다. 즉, 표본 평균의 기댓 값 = 모수의 평균 표본 분산의 기댓 값 = 모수의 분산이 되면, 이 표본 추정량은 불편 추정량이라고 할 수 있다. 표본 평균의 기댓값은, 표본들을 가지고 평균을 내면 모수의 평균으로 딱 나오는 반면, 표본들을 가지고 분산을 내면 모수의 분산으로 딱 나오지 않는다. 즉, 표본 평균과 표본 분산은..
L1, L2 Regularization (Lasso, Ridge) 머신러닝을 위한 파이썬 워밍업에서 Linear Regression 파트를 공부하며 복습한 내용을 적어본다. Overfitting 의 문제 Regularization 이라는 문제에 앞서 항상 먼저 나오는게 overfitting 이슈다. 기술 관련 이슈는 대부분 원인 -> 해결방법 순으로 설명이 되다보니 당연한 일이겠지만. 이전에 Gradient Descent 를 통해 W 를 기계적으로 (반복문과 갱신을 통해) 찾아내었다. 일단 머신러닝이라고 하는 것이 되긴 한거다. 사람이 찾지 않고, 어떤 식과 기계의 힘을 빌려서 찾았으니깐 말이다. 그럼 이제 문제는 '잘' 찾는 것인데. 본격적인 고도화 및 성능 이슈의 시작되는 듯 하다. Overfitting 은 이러한 고도화 이슈 중, 가장 일반적인 현상인데, 한 마디..
Normal equation 과 Gradient Descent 머신러닝을 위한 파이썬 워밍업에서 Linear Regression 파트를 공부하며 복습한 내용을 적어본다. 선형회귀 모델은 y = Wx + b 다. 우리는 데이터(x) 를 가지고 어떤 결과(y)를 예측하는 어떤 모델(y=Wx+b) 를 만들려고 한다. 즉 결과적으로 "모델", 을 만드는 것인데, 이 모델은 구체적으로 각 변수에 곱해지는 계수항들의 묶음 W와 상수항인 b를 의미하고, 이 두 변수를 구하는 것이 기계학습의 목표이다. 이를 어떻게 구할까? 에 앞서, 이에 대해 강의에서는 2가지를 설명해주는데, Normal Equation과 Gradient Descent다. Normal Equation y = Wx + b 에서 b 는 x 에 [1] 로 구성된 열을 추가해주면, y = Wx + b 를 y = xW&..
헷갈리는 .reshape 과 broadcasting 이번엔 numpy 공부 중, 가장 헷갈렸던 .reshape() 과 이와 연관된 브로드캐스팅을 잠깐 복습 겸 기록해두려고 한다. 1. Reshape 사용법 너무나 당연한 이야기지만, .reshape 은 numpy array의 모양을 바꿔주는 역할을 한다. 잠깐 살펴보면 import numpy as np a = np.array([[1,1,1,1], [2,2,2,2]]) print(a) b = a.reshape((2,2,2)) print(b) # output: # [[1 1 1 1], # [2 2 2 2]] # [[[1 1], # [1 1]] # [[2 2], # [2 2]]] .reshape(2, 2, 2) 일 경우, 가장 안쪽부터 2개의 원소로 하나의 리스트 (ex. [2, 2]) 를 만들고 이런 리스트를..
파이썬으로 데이터 시각화하기 1편. matplotlib. 쥬피터에서 데이터를 시각화 하는 일반적인 방법을 정리해보려고 한다. 1편은 matplotlib 을 다루는 것으로, 이후에 pandas, seaborn 등으로 다루기 전에, 가장 기초와 기본이 되는 상식이라 할 수 있다. 기본 형태 일반적인 matplotlib 방식을 따른다. matploblib 를 사용하던 사람에겐 가장 친숙한 형태이고, 처음하는 사람들한테는, 가장 1차원적이고 직관적인 방법이다. 일단 기본적인 꼴은 다음과 같다. import matplotlib.pyplot as plt # figure, 즉 그래프를 표현할 액자를 먼저 만든다. plt.figure() # figure 를 출력한다. plt.show() 여기에 이제 데이터를 추가해 그래프를 그려보자. 선 그래프 plt.figure() # (..