Daily plan
🌞오전
- 빅분기 공부
- 11시 머신러닝 소프트랜딩 세션
🔥 오후
- 14시 아티클 스터디
- 빅분기 발등에 불떨어짐 (모델링 정리)
- 통계 강의 2주차
🌝 저녁
- python 과제 문제 풀이
- 스크럼 작성 + TIL 제출
빅분기
빅데이터 모델링
분석 모형 선정
분석 모형
- 모형: 현실의 복잡한 문제를 단순화하여 변수 간 관계로 정의하는 것
- 통계 기반 분석 모형
- 기술통계
- 상관분석
- 회귀분석
- 분산분석
- 주성분 분석
- 판별분석
- 데이터 마이닝 기반 분석 모형
- 머신러닝 기반 분석 모형
분석 모형 정의: 데이터 분석 목적과 데이터 속성에 따라 모형, 변수, 성능 등을 선택하고 정의하는 것
- 매개변수 (Parameter)
- 모형 내부에 존재하는 변수로, 모형의 성능을 결정함
- 측정되거나 훈련 데이터로부터 값을 추정 가능한 변수 (인공신경망의 가중치, 회귀계수, 서포트벡터 등)
- 초매개변수 (Hyper Parameter)
- 모형 외부에 존재하는 변수로, 연구자가 직접 설정하는 변수
- 모형의 매개편수 측정을 위해 알고리즘 구현 과정에서 사용 (KNN의 K개수, 의사결정나무의 depth, 은닉층의 개수 등)
좋은 모형의 기준은 훈련 데이터를 입력했을 때 최적화된 결과를 출력하고 평가 데이터를 입력했을 때 일반화된 결과를 출력하는 것
- 과대적합 (overfitting)
- 훈련 데이터 집합의 특성을 지나치게 반영하여 새로운 데이터에 대해 오류가 커지는 현상
- 매개변수가 많아 복잡하거나 훈련 데이터 세트의 양이 부족한 경우
- 데이터를 증강하거나 모형 복잡도를 감소시켜 일반화
- 과소적합 (underfitting)
- 훈련 데이터 집합의 특성을 제대로 반영하지 못해 새로운 데이터에 대한 오류가 커지는 현상
- 모현이 너무 단순하여 데이터의 내재된 구조를 학습하지 못하는 경우
분석 모형 구축 절차
-
요구사항 정의
- 요구사항 도출, 방안 설계, 요구사항 정의 등
-
모형 구축 (모델링)
- 분석 목적과 변수의 특정에 맞게 모형 구축
- 시뮬레이션 기법
- 최적화 기법
- 모델링 마트 설계 및 구축, EDA 및 변수 도출, 모델링, 모델 성능 평가 등
-
검증 및 평가
- 평가 데이터를 통해 모형 성능 검증
- 비즈니스 영향도 평가
-
운영 및 유지보수
- 실제 업무 환경에 모형 통합 후 모니터링과 리모델링(유지보수) 진행
- 성능 하락 시, 모형 재조정 및 최적화
분석 기법 적용
회귀분석
- 하나 혹은 그 이상의 독립변수가 종속변수에 미치는 영향을 추정할 수 있음
- 데이터를 가장 잘 설명할 수 있는 직선을 찾는 것
- y = ax+b
- 단순선형회귀: y = β0+β1x+ε (ε는 오차항)
- β0, β1은 회귀계수라고 하며, 회귀분석에서 가장 중요한 파라미터
- 다중선형회귀: y = β0+β1x1+β2x2+ε (회귀계수의 개수가 증가함)
- 최소제곱법 (Least Square Method/ Ordinary Least Square; OLS)
- 오차를 최소화 시키는 방법으로 회귀계수를 추정하는 기법
- 최소제곱법에 의해 추정된 회귀식은 x, y값의 평균을 지남
회귀분석 종류
- 단순 선형 회귀: 독립변수, 종속변수가 각 한 개이며, 직선 관계
- 다중 선형 회귀: 독립변수가 K개이며, 선형 관계(1차 함수)
- 다항 회귀: 독립변수와 종속변수의 관계가 1차 함수 이상인 관계
(독립변수가 1개인 경우 2차 함수 이상)
- 곡선 회귀: 독립변수가 1개이며, 종속변수와 곡선 관계
- 로지스틱 회귀: 종속변수가 범주형인 경우 적용 (단순/다중/다항 로지스틱 회귀)
- 비선형 회귀: 회귀식 모양이 선형관계가 아닌 모형
회귀분석 가정
- 회귀분석을 수행하려면 선형성, 정규성, 독립성, 등분산성 가정을 충족해야 함
- 선형성: 변수 간의 관계가 선형관계를 따름
- 정규성(정상성): 오차의 분포가 정규분포를 따름
-> Q-Q plot, Shapiro-Wilk test, Kolmogorov-Smirnov test 등을 통해 검정
- 독립성: 단순 선형 회귀분석에서는 '잔차와 독립변수가 독립', 다중 선형 회귀분석에서는 '독립변수 간 독립' 요건이 충족되어야 함
-> Durbin-Watson test로 검정
- 등분산성: 잔차의 분산이 일정한 성질을 의미
(어떤 일부분에서의 오차가 다른 곳보다 훨씬 크게 나타나는 것을 이분산성이라고 함)
회귀분석 검정
-
단순 선형 회귀분석 검정: 오차, 결정계수 등을 통해 검정
- 회귀계수: 회귀계수 β1이 0이면 회귀식은 의미가 없음
- MAE(Mean Absolute Error): 평균 절대 오차
- MSE(Mean Squared Error): 평균 제곱 오차
- RMSE(Root Mean Squared Error): 평균 제곱근 오차
- 결정계수(R^2)
- 회귀 모형이 현재 데이터를 얼마나 잘 설명하는지 보여주는 지표로, 결정계수 값이 1에 가까울수록 회귀 모형이 데이터를 잘 설명함
- R^2 = 회귀제곱합/전체제곱합 = SSR/SST = SSR/(SSR+SSE), (0<=R^2<=1)
- 전체 제곱합(SST): 관측값과 평균값의 차이
- 회귀 제곱합(SSR): 회귀선에 의해 설명되는 값
- 오차 제곱합(SSE): 회귀선에 의해 설명되지 않는 값
-
다중 선형 회귀분석 검정: 수정된 결정계수를 이용하여 검정
- 결정계수는 독립변수의 유의성에 관계없이 독립변수가 많아지면 증가함
- 수정된 결정계수 (Adjusted R^2)
- 일반 결정계수보다 작게 계산되고, 설명력이 작은 독립변수를 추가할 시 값이 작아짐
- 다중공선성(Multicolllinearity)
- 독립변수들 간 상한 상관관계가 나타나는 현상을 의미
- 분산팽창요인(Variance Inflation Factors;VIF) 등을 통해 계산하여, VIF가 10을 넘으면 다중공선성이 있다고 판단함
-
AIC/BIC
- 독립변수가 많을 때 어떤 독립변수가 종속변수에 더 많은 영향을 주는지 파악하기 위해, 모든 가능한 조합에 대한 회귀 모형 생성 후 변수의 적절성을 평가하여 최적의 변수를 선택함
- 최적의 변수 선택 및 모형 복잡도 감소를 위해 AIC/BIC 지표를 사용
- AIC/BIC 지표는 모형의 복잡도에 벌점을 주는 방법으로, 모든 후보의 값을 계산 후 값이 낮아지는 모형을 선택
- AIC(Akaike Information Criterion): AIC = -2Log(L) + 2p
- 변수의 개수(p) 증가 시 AIC 값도 증가
- AIC값이 낮을수록 모형 적합도가 높음
- BIC(Bayesian Information Criterion): BIC = -2Log(L) + pLog(n)
- 변수의 개수(p)뿐만 아니라 표본의 크기(n)에도 벌점을 부과
-
오컴의 면도날: 같은 조건이면 모형을 단순하게 구축하는 것이 더 좋은 모형 (경제성의 원리, 단순성의 원리)
로지스틱 회귀분석
- 로지스틱 회귀분석
- 종속변수가 범주형 데이터일 때 수행하는 분석 기법
- 종속변수의 수에 따라 이항/다항으로 구분
- 오즈를 로짓 변환한 시그모이드 함수를 사용
- 로지스틱 함수
- S-Curve 형식으로 생긴 그래프 (시그모이드 함수로 지칭)
- 오즈함수에 로그를 취한 후 (로짓변환) 역함수를 취해 도출
- 오즈(=승산)
- 특정 사건이 발생할 확률을 p라고 할 때, 사건이 발생하지 않을 확률을 1-p
- odds = p/(1-p)
- p가 1에 가까워질수록 오즈는 무한대에 가까워지고, p가 0에 가까워질수록 오즈는 0에 가까워짐
- 오즈비: 두 사건 A, B가 있을 때 각 오즈를 구한 후 그 비율을 계산한 값
- 로짓 변환
- 로짓 함수는 오즈에 로그를 취한 함수
- 입력값의 범위가 [0,1]일때, 출력값 범위는 (-∞~+∞)로 조정
- logit(p) = log(p/(1-p))
- 로짓 함수에 역함수를 취하면 로지스틱 함수가 도출됨
의사결정나무
- 의사결정나무(Decision Tree): 데이터를 분류하거나 예측하는 분석 기법
- 적절한 분할 변수를 통해 상위 노드에서 분류된 하위 노드는 노드 내 동질성은 커지되, 노드 간에는 이질성이 커지는 방향으로 트리가 생성되어야 함
- Branch(가지): 뿌리 마디로부터 끝마디까지 연결된 마디들
- Depth(깊이): 뿌리 마디로부터 끝마디까지의 중간 마디들의 수
- 예측, 분류뿐 아니라 중요 변수 선택, 이상치 탐지, 교호작용 파악에도 유용
- 의사결정나무 절차
- 데이터 > 모델학습 > 가지치기 > 타당성 평가 > 추론(분류, 예측)
- 데이터: 다변량 변수 사용
- 모델 학습
- 종속변수와 관계있는 독립변수 추가
- 의사결정나무 알고리즘에 따라 가지 분할
- 데이터 순도가 균일해지도록 분할 반복 (불순도 감소량을 가장 크게 하는 분할)
- 정지 규칙 만족 시 중단 (분류: 끝 노드에 비슷한 범주/ 예측: 끝 노드에 비슷한 수치)
- 가지치기
- 의사결정나무의 크기는 모형의 복잡도 (최적의 크기는 대상 자료에서 추정함)
- 너무 크면 과대적합 유발, 너무 작으면 과소적합 유발 가능
- 타당성 평가: 평가 데이터를 이용하여 교차 타당성 등 평가
- 추론: 분류는 끝 노드에서 가장 빈도 높은 종속변수 선택 / 예측은 끝 노드의 평균을 예측값으로 계산
- 의사결정나무 대표 알고리즘: CART, C4.5/C5.0, CHAID
기준 | CART | C4.5/C5.0 | CHAID |
---|
분류 | O | O | O |
예측 | O | O | X |
예측 변수 | 범주, 수치 | 범주, 수치 | 범주 |
불순도 알고리즘 | 지니 지수 | 엔트로피 지수 | 카이제곱 통계량 |
분리 | 이진분할 | 다중분할 | 다중분할 |
나무성장 | 완전 모형 생성 후 가지치기 | 완전 모형 생성 후 가지치기 | 최적 모형 개발 |
가지치기 | 학습, 검증 데이터 | 학습 데이터만 사용 | X |
- 불순도 알고리즘
- 불순도(복잡성): 해방 범주 안에 서로 다른 데이터가 얼마나 섞였는지를 의미 (다양한 데이터가 섞여 있을수록 불순도가 높아짐)
- 불순도가 감소하면 순수도가 증가하고, 정보의 획득량 증가
- 지니 지수
- 엔트로피 지수
- 카이제곱 통계량
- 의사결정나무 장점
- 모형 결과를 직관적으로 이해 가능하고 해석이 용이
- 분리 기준 파악 가능
- 통계적 가정이 필요 없는 비모수적 모형
- 연속형, 범주형 변수 모두 적용 가능하며 분류 정확도 높음
- 의사결정나무 단점
- 많은 데이터와 연산 시간 소요
- 데이터 변형에 민감하며 과대적합 유발 가능
- 연속형 변수를 구간화시켜 학습 시, 분리 경계점 근처에서 오류 발생 우려
- 선형 구조를 가지고 있는 데이터에 의사결정나무를 적용하여 더 복잡할 수 있음
아티클 스터디
양질의 데이터를 판별하는 5가지 방법 (4) 데이터 형식을 파악했는가?
- 정형 데이터 vs 비정형 데이터
- 정형 데이터 → 정해진 형식과 구조에 따라 고정된 자리에 저장된 데이터 ex) 행과 열의 형태로 엑셀에 저장 가능한 데이터
- 비정형 데이터 → 정의된 구조가 없는 데이터 ex) 텍스트, 이미지, 영상, 오디오 등의 데이터
- 정형/비정형 데이터 활용 방식
- 정형 데이터
- 평균, 표준편차 등을 계산하거나 심화 통계 기법에 적용
- 머신러닝과 딥러닝 기술, 인공지능 분야에도 활용 가능
- 미래의 특정 상황 예측에 이용 가능
- 비정형 데이터
- 통계 기법 적용이 불가능 하므로 활용 방식에 한계가 존재하며, 인공지능 분야에 국한됨
- 아직까지 비정형 데이터를 정성적으로 분석하는 방식에 한계가 있음
- 정형 데이터에서 양질의 데이터를 판별하는 방법 (ex. 데이터에 범주형 데이터가 얼마나 포함되어 있는가?)
- 데이터의 척도: 데이터가 정의되고 분류되는 방식
- 범주형 데이터 (명목 척도, 서열 척도)
- 명목 척도: 데이터를 단순히 숫자로 변환시킨 것 (성별)
- 서열 척도: 숫자가 단순히 순서만을 의미하는 것 (순위)
- 수치형 데이터 (등간 척도, 비율 척도)
- 등간 척도: 각 값의 상대적 크기 비교가 가능한 것 (온도)
- 비율 척도: 절대적 기준이 있는 영점(0)이 존재하는 것 (무게)
- 범주형 데이터에는 수학 연산에 한계가 있음 → 적용 가능한 분석기법에도 한계가 있음 따라서 양질의 데이터 판별 시, 해당 범주형 데이터의 비중이 얼마인지를 상세히 살펴보는 것이 유리
- 인사이트
: 비정형 데이터보다 정형 데이터, 정형 데이터 내에서는 범주형 보다 수치형 데이터에서 활용 방안이 더 풍부하다. 데이터 분석은 숫자를 대상으로 하는 것이 더 활용성 높기 때문에, 양질의 데이터를 판별할 때 해당 데이터가 얼마나 수치적으로 표현이 잘 되어 있는지 확인해야 한다. 하지만 수치형 데이터가 아니라도 중요한 데이터 자원으로 활용할 수 있기 때문에 데이터를 수치화 시키기 위해 고민하고, 분석하고자 하는 목적에 따라 다각적으로 데이터를 활용 및 판단할 필요가 있다.
의미 있었던 인사이트
통계를 기반으로 하는 데이터 분석에서 데이터 유형의 중요성을 다시금 깨달았다. 현희님이 말씀한 것처럼 데이터마다 형태가 다른 것은 알았지만 그게 분석 시에 활용도 차이로 이어질 수 있다는 점은 생각하지 못했다. 또한, 데이터 분석 시작 전 설계 단계에서 데이터 유형에 따른 활용 방식을 미리 계획해야 한다는 의견도 인상 깊었다.
아티클에서는 양질의 데이터를 판단하는 기준으로 '범주형 데이터가 얼마나 포함되어 있는가?'라고 제시하고 있다. 하지만 범주형 데이터의 비율로 양질의 데이터인가 아닌가를 판단하는 것보다는, 수치형 데이터가 아닌 다른 유형의 데이터들을 어떻게 활용할 것인가를 고민하고 각각의 데이터 유형에 맞게 서로 다른 방식으로 인사이트를 이끌어내는 게 중요하다고 생각한다.
공통 인사이트
데이터 분석을 계획하는 단계에서 분석 목적을 명확히 하고, 데이터 유형에 따른 한계점을 인지하여 적절한 활용 방안을 고안하는 것이 중요하다.
통계학 강의 2주차
모집단과 표본
-
모집단: 관심의 대상이 되는 전체 집단
-
표본: 모집단에서 추출한 일부
-
표본을 사용하는 이유?
- 비용과 시간 절약
- 접근성 측면에서 모든 데이터를 수집하는 게 물리적으로 어려움
- 잘 설계된 표본은 모집단 특성을 반영하여 전체를 일반화할 수 있음
- 무작위로 표본 추출 시 편향을 최소화하고 모집단의 다양한 특성을 포함 가능
- 처리 및 분석이 용이하고 컴퓨팅 자원에 대한 부담 감소
- 데이터 품질 관리, 오류나 이상값 식별 등에 용이
- 모델 적합도 테스트에서 검증에 용이함
-
전수조사: 모집단 전체를 조사
-
표본조사: 표본만 조사 (비용, 시간이 적게 들지만 표본이 대표성을 가져야 함)
파이썬 실습
import numpy as np
import matplotlib.pyplot as plt
population = np.random.normal(170,10,1000)
sample = np.random.choice(population,100)
numpy.random 모듈
-
다양한 확률 분포에 따라 난수 생성 기능을 제공하는 NumPy 라이브러리의 모듈
-
np.random.normal
- 정규분포(가우시안 분포)를 따르는 난수 생성
- 정규분포: 평균과 표준편차를 중심으로 데이터가 대칭적으로 분포
np.random.normal(loc=0.0, scale=1.0, size=None)
-
np.random.choice
- 주어진 배열에서 임의로 샘플링하여 요소 선택 (지정된 배열에서 무작위로 선택된 요소 반환)
np.random.choice(a, size=None, replace=True, p=None)
일기

스탠다드 반이 심상치 않다... 지금 빅분기 하겠다고 통계 강의도 밀렸는데 곧 강의가 몰아칠 거 같음...

조원분들한테 벌써 들통나버렸다.. 아니 여기저기 감시하는 사람들이 왜 이렇게 많은거야... 민망하네 정말^^;;;