5주차 preview_정리(데이터분석, 모델링)

김서연·4일 전

데이터 분석

데이터가 어떤 구조를 가지고 있는지 확인하고, 필요한 정보만 골라내고, 숫자로는 잘 보이지 않는 패턴을 시각적으로 파악하는 과정이다.

NumPy

수치 연산과 배열 계산에 강한 라이브러리로, 평균, 분산, 행렬 계산 등에 자주 사용된다.

Pandas

데이터를 표 형태로 다루기 쉽게 해주며, csv 파일 불러오기, 열 선택, 조건 필터링, 데이터 수정 등에 활용된다.

데이터 시각화

그래프를 통해 데이터의 분포나 경향을 더 직관적으로 확인할 수 있게 해준다.

데이터 분석은
데이터를 불러오기 → 구조 파악 → 특징 이해의 흐름으로 진행된다.

데이터 전처리와 라벨링

데이터 전처리는 모델이 학습할 수 있는 형태로 데이터를 정리하는 방법이다.
실제 데이터는 결측치, 이상치, 중복값, 범주형 데이터, 서로 다른 값의 범위처럼 바로 학습에 사용하기 어려운 요소를 많이 포함하고 있기 때문이다.

결측치 처리

비어 있는 값을 제거하거나 평균, 중앙값, 최빈값 등으로 대체하는 과정

이상치 처리

다른 값들과 크게 벗어나는 데이터를 확인하고 적절히 처리하는 과정

인코딩

문자열이나 범주형 데이터를 숫자형으로 바꾸는 과정

스케일링

변수마다 다른 값의 범위를 비슷한 수준으로 맞추는 과정

라벨링

데이터에 정답을 붙이는 작업으로, 특히 지도학습에서 모델 성능에 직접적인 영향을 준다.

머신러닝

전처리가 끝난 데이터는 이제 머신러닝 모델을 통해 학습될 수 있다.
머신러닝은 사람이 규칙을 하나하나 직접 만드는 대신, 데이터를 보고 규칙을 학습해서 결과를 예측하는 방법이다.

머신러닝의 학습 방식은 크게 세 가지로 나눌 수 있다.

지도학습

정답이 있는 데이터를 이용해 값을 예측하거나 분류하는 방식

비지도학습

정답 없이 데이터 안의 구조나 패턴을 찾는 방식

강화학습

행동에 대한 보상을 바탕으로 학습하는 방식

머신러닝 모델

머신러닝에서는 문제의 형태를 파악하고, 데이터에 맞는 모델을 선택하는 것이 중요하다.

선형회귀 : 연속적인 값을 예측할 때 사용
로지스틱 회귀 : 분류 문제에서 자주 사용
결정트리 / 랜덤포레스트 : 조건을 기준으로 데이터를 나누며 예측
XGBoost : 성능이 좋은 부스팅 계열 모델
SVM : 데이터를 경계로 구분하는 분류 모델
k-means / PCA : 비지도학습에서 자주 사용하는 대표 기법

모델 평가와 성능 해석

모델을 학습시키는 것만큼 결과를 평가하는 과정이 중요하다.
이 과정에서 모델이 학습 데이터에만 잘 맞는지, 새로운 데이터에도 잘 작동하는지 확인할 수 있다.

train / test 데이터 분리

학습용 데이터와 평가용 데이터를 나누는 과정

과적합(Overfitting)

학습 데이터에만 지나치게 맞춰져 일반화 성능이 떨어지는 상태

과소적합(Underfitting)

데이터의 패턴을 충분히 학습하지 못한 상태

평가 지표

정확도, 정밀도, 재현율, F1-score 등으로 모델 성능을 확인

딥러닝

딥러닝은 머신러닝의 한 분야로, 인공신경망을 여러 층으로 쌓아 더 복잡한 패턴을 학습하는 방법이다.
머신러닝이 사람이 특징을 어느 정도 직접 정리해주는 방식이라면, 딥러닝은 데이터 안의 특징을 모델이 스스로 학습한다는 점이 특징이다.

PyTorch

딥러닝을 구현할 때 자주 사용하는 도구
PyTorch는 모델 구조를 정의하고, 데이터를 불러오고, 손실을 계산하고, 가중치를 업데이트하는 과정을 비교적 직관적으로 구현할 수 있게 해준다.

텐서(Tensor)

딥러닝에서 데이터를 표현하는 기본 단위
스칼라, 벡터, 행렬, 고차원 텐서는 모두 텐서의 한 형태이다.

인공신경망(ANN)

입력층, 은닉층, 출력층으로 구성되며, 데이터를 받아 예측값을 만든다.

활성화 함수

신경망이 단순한 선형 계산만 반복하지 않도록 도와주는 요소이다.
대표적으로 ReLU가 자주 사용된다.

딥러닝 학습 과정

딥러닝 학습은 일정한 흐름을 반복하며 이루어진다.

순전파(Forward Propagation)

입력 데이터를 모델에 넣고 예측값을 만든다.

pred = model(X)

손실 함수(Loss Function)

예측값과 실제 정답 사이의 오차를 계산한다.

loss = loss_fn(pred, y)

역전파(Backpropagation)

위에서 계산한 오차를 줄이기 위해 어떤 가중치를 얼마나 수정해야 하는지 계산한다.

loss.backward()

옵티마이저(Optimizer)

계산된 값을 바탕으로 실제 가중치를 업데이트한다.

optimizer.step()

딥러닝 학습:

데이터 입력 → 예측 → 오차 계산 → 가중치 수정 순으로 진행

배치사이즈(Batch Size): 한 번에 모델에 넣는 데이터의 개수
에포크(Epoch): 전체 학습 데이터를 한 바퀴 모두 학습한 횟수
학습률(Learning Rate): 가중치를 얼마나 크게 수정할지 결정하는 값

이 값들은 학습 속도와 성능에 영향을 주는 값으로, 이 값들을 적절하게 수정하여 모델의 오차를 최소화 해야한다.

정리

실제 프로젝트에서는 아래와 같은 절차로 진행한다.

데이터 이해: 데이터의 구조와 특징 파악
데이터 전처리: 결측치, 이상치, 인코딩, 스케일링 처리
모델링: 문제에 맞는 모델 선택
평가: 과적합 여부와 성능 지표 확인

0개의 댓글