본문 바로가기

데이터마이닝

(16)
결측값의 발생 원인과 대치 접근 결측값(missing values) 처리는 데이터 과학과 통계 분석에서 흔히 마주치는 문제 중 하나입니다. 결측값이 발생하는 원인에 따라 적절한 대치 방법을 선택하는 것이 중요합니다. 원인별로 문제를 나누고, 각각에 대해 세부 해결 방법을 제시하겠습니다. 1. 결측값 발생 원인 결측값 발생 원인을 크게 세 가지 유형으로 나눌 수 있습니다. 완전 무작위 결측(MCAR, Missing Completely At Random): 결측이 발생하는 이유가 완전히 무작위로, 다른 변수들과 관련 없이 일어나는 경우입니다. 무작위 결측(MAR, Missing At Random): 결측이 다른 관측된 변수들에 의존하여 발생하지만, 결측값 자체에는 의존하지 않는 경우입니다. 비무작위 결측(MNAR, Missing Not A..
BIC와 AIC 정보기준 BIC(Bayesian Information Criterion)와 AIC(Akaike Information Criterion)는 모델 선택에서 중요한 역할을 하는 두 가지 정보 기준입니다. 이들은 모델의 복잡성과 데이터에 대한 적합도를 동시에 고려하여, 최적의 모델을 선택하는 데 도움을 줍니다. 1. BIC와 AIC의 정의와 기본 원리 이해 BIC (Bayesian Information Criterion) BIC는 주어진 데이터 세트에 대한 모델의 적합도를 평가하는 데 사용되며, 모델 복잡성에 대한 벌점을 포함합니다. BIC는 가능도 함수의 최대값에 기반하되, 모델에 포함된 파라미터의 수와 데이터의 수를 고려하여 모델의 복잡성에 대해 더 큰 벌점을 부과합니다. AIC (Akaike Information ..
Mallows의 \(C_p\) Mallows의 \(C_p\)는 통계학에서 회귀 모델을 선택할 때 사용되는 기준 중 하나입니다. 이 지표는 모델이 얼마나 잘 적합하는지, 즉 데이터를 얼마나 잘 설명하는지를 평가하기 위해 사용됩니다. \(C_p\)의 목적은 모델의 복잡성과 모델이 데이터에 적합하는 정도 사이의 균형을 찾는 것입니다. 이를 통해 과적합(overfitting)을 방지하고 모델의 예측 성능을 향상시키고자 합니다. Mallows의 \(C_p\) 정의 Mallows의 \(C_p\)는 다음 공식으로 계산됩니다. $$ C_p = \frac{SSE_p}{S^2} - (n - 2p) $$ \(SSE_p\)는 \(p\)개의 예측 변수를 사용하는 모델의 오차 제곱합(Sum of Squared Errors)입니다. \(S^2\)는 전체 데이터..
statsmodels를 활용한 선형 회귀 분석 구현 statsmodels 라이브러리를 사용하여 선형 회귀 모델을 구현하는 구체적인 예시를 들어보겠습니다. 이 예제에서는 임의의 데이터셋을 생성하여 모형식을 사용하는 방법을 보여줍니다. 여기서는 단순 선형 회귀와 다중 선형 회귀 모델을 생성해볼 것입니다. 1. 단순 선형 회귀 모델 단순 선형 회귀는 하나의 독립 변수와 하나의 종속 변수 간의 선형 관계를 모델링합니다. import numpy as np import statsmodels.api as sm import statsmodels.formula.api as smf # 가상 데이터 생성 np.random.seed(123) X = np.random.rand(100, 1) # 독립 변수 y = 2 * X.squeeze() + np.random.normal(si..
statsmodels의 모형식 표현 statsmodels는 Python에서 통계적 모델링, 통계 테스트, 데이터 탐색 및 시각화를 위한 라이브러리입니다. statsmodels를 사용하여 선형 회귀분석 같은 다양한 통계 분석을 수행할 수 있으며, 모형을 표현하는 데에는 주로 Patsy라는 패키지를 사용하는데, 이는 데이터를 변환하고 통계 모델에 적용하기 위한 고수준의 인터페이스를 제공합니다. 모형식을 표현하는 방법은 y ~ x 형태로 표현됩니다. 여기서 y는 종속 변수(결과 변수), x는 독립 변수(예측 변수)입니다. 이 기본 형태는 하나의 종속 변수와 하나의 독립 변수 간의 관계를 나타내지만, statsmodels와 Patsy의 표현식을 사용하면 보다 복잡한 모형도 쉽게 표현할 수 있습니다. 기본 문법 y ~ x: y는 x에 의해 예측됩니..
회귀분석의 수행 단계들 회귀분석(Regression Analysis)은 통계학에서 사용되는 분석 방법 중 하나로, 두 변수 간의 관계를 모델링하고 예측하는 데 사용됩니다. 일반적으로 하나 이상의 독립 변수(예측 변수)와 종속 변수(결과 변수) 간의 관계를 분석하고, 이를 통해 변수 간의 관계를 설명하거나 미래의 종속 변수 값을 예측합니다. 회귀분석은 아래 단계에 따라 수행합니다. 1. 문제 정의 및 목표 설정 데이터와 연구 목적 이해, 예측하고자 하는 종속 변수와 이에 영향을 미칠 수 있는 독립 변수 식별. 2. 데이터 수집 필요한 데이터를 수집하는 방법론 정의, 수집할 데이터의 범위와 소스 식별. 3. 데이터 전처리 결측치 처리: 결측치가 있는 경우 제거하거나 대체하는 방법 탐색. 이상치 탐지 및 처리: 데이터에서 이상치를 ..
KNN 알고리즘의 구현 with Python KNN 알고리즘을 Python에서 구현하기 위해, 가장 간단한 형태로 어떻게 새로운 데이터 포인트의 클래스를 예측하는지 살펴보겠습니다. 여기서는 scikit-learn 라이브러리를 사용하지 않고 기본 Python 함수 직접 KNN을 구현합니다. KNN 알고리즘 구현 과정 데이터 준비: 간단한 데이터 세트를 준비합니다. 거리 계산 함수 정의: 데이터 포인트 간의 거리를 계산하는 함수를 정의합니다. 가장 가까운 이웃 찾기: 주어진 데이터 포인트에 대해 가장 가까운 K개의 이웃을 찾습니다. 다수결 투표: K개의 가장 가까운 이웃들 중 다수의 클래스를 결과로 결정합니다. 단계별 코드 구현 이제 위의 단계를 따라 Python 코드를 작성해보겠습니다. 코드를 작성하기 전에, 모든 함수 호출과 메소드 호출은 주석 ..
KNN(K-Nearest Neighbors) 알고리즘 KNN, K-최근접 이웃(K-Nearest Neighbors) 알고리즘은 분류(Classification)와 회귀(Regression) 문제에 사용될 수 있는 비교적 단순하지만 강력한 지도 학습(Supervised Learning) 기법입니다. 데이터 포인트들 사이의 거리를 측정하여, 가장 가까운 K개의 이웃 데이터들의 정보를 바탕으로 해당 데이터 포인트의 레이블(분류)이나 값(회귀)을 예측합니다. KNN의 실행 단계들 거리 측정: 새로운 데이터 포인트와 기존 데이터 포인트들 사이의 거리를 측정합니다. 거리 측정 방식으로는 유클리드 거리(Euclidean distance), 맨해튼 거리(Manhattan distance), 민코우스키 거리(Minkowski distance) 등이 있습니다. K개의 최근접..