[My IT : Article] 선형대수학과 머신러닝, EDA, 데이터 전처리

2026. 2. 9. 18:12·My IT/Article

1. 선형대수학이란 어떤 학문이며, 왜 머신러닝에 필요할까?

먼저 선형대수학의 사전적 정의에 대해 말해보자면 선형대수학은 벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야로서, 현대 선형대수학에서는 주로 벡터 공간을 주 연구대상으로 삼는다고 한다. 내가 기억하기로는 고등학교 시절 기하와 벡터를 배우곤 했는데, 기하와 벡터 고등학교과정의 어려워진 학문이라고 생각하면 편할 듯 싶다. 선형대수학에서 쓰이는 기본적인 벡터와 벡터 공간만 알아보자면,

 

  • 벡터

스칼라 vs 벡터

스칼라(속력) = 크기

벡터(속도) = 크기 + 방향

 

기하학적으로 벡터를 말할때는 스칼라라는 것이 꼭 따라오곤 하는데, 위에 기술한 그대로 스칼라는 숫자 하나로 설명이 되는 양, 즉 예를 들면 무게(70kg), 거리(42km) 등등이 있겠다, 여기에 방향을 더하면 벡터가 된다고 할 수 있는데, 벡터는 예를 들자면 운전을 하고 있을 때, 동쪽으로 2km가야한다고 하였을때 거리 + 방향이 모두 있는데, 이를 표현하는 것이 벡터이다.

이를 화살표로 표현하게 되면,

 

이렇게 되는데, 이 화살표를 좌표 평면에 순서쌍으로 나타내어서, 얼마나 어디로 갔는지 표현하고는 한다.

$$\begin{bmatrix}1\\3\end{bmatrix}$$

어느 방향으로 얼만큼 갔는지, 밑에서도 한번 더 언급하겠지만 이렇게 행렬로 표현한다.

 

  • 벡터 공간

그렇다면 벡터 공간은 무엇일까? 위에서 설명한 벡터를 마음대로 더하고, 숫자를 곱해도 항상 같은 집합 안에 있으면 벡터 공간이라고 할 수 있겠다. 예를 들면 2차원 평면 (4, 2), (10,-2), (5, 1) 라는 세개의 벡터들이 있다고 가정하자. 

$$(4,2)+(10,-2)+(5,-1)=(19,-1)$$

$$2(5,-1)=(10,-2)$$

모두 더해도 여전히 2차원 벡터인걸 보아, 2차원 평면은 벡터공간이라고 할 수 있겠다. 좀 더 쉽게 비유로 설명하자면, 벡터공간은 레고판이고, 벡터는 레고라고 생각하면 편하지 않을까 싶다.

 

▲벡터 공간을 나타낸다면 이렇게 나타내곤 한다.

 

 

이렇게 선형대수학에 쓰이는 벡터와 벡터 공간에 대해 알아보았는데, 그래서 선형대수학은 왜 머신러닝에서 필요할까? 

 

1.머신러닝의 구조는 기본적으로 행렬로 이루어져 있다.

 

각각 열에 맞는 특징이 배열되어 있다

머신러닝에서의 데이터는 기본적으로 벡터와 행렬로 표현되는데, 여기서 행렬은 쉽게 생각하면 벡터를 2차원, 3차원으로 합쳐놓은거라고 생각하면 편하다. 벡터 하나의 행을 데이터 하나로 잡고, 각 대응되는 열을 그 데이터의 특징으로 잡고 데이터를 계산할 수있다. 따라서 선형대수를 사용하면 이 데이터를 효율적으로 다루고 계산할 수 있게 된다.

 

2. 머신러닝을 기하학적으로 이해하기 쉬워진다.

 

기본적으로 머신러닝 모델은 데이터를 공간에서 이동/회전/압축/확장 시키는 과정이라고 볼 수 있는데, 예를 들자면 선형회귀은 데이터 공간에서 최적의 '직선'을 찾는 것이고, 신경망 모델은 데이터 공간에서 고차원 변환을 한 후 분류하는 작업이라고 볼 수 있는데, 선형대수를 공부하게 되면 이를 이해하기 쉬워지고, 데이터가 공간에서 어떻게 움직이는지 생각하기 쉬워진다.

기본적인 선형대수에서의 2차원 행렬 변환 과정.

사람들은 미적분이랑 선형대수 없이도 머신러닝 실무자가 될 수는 있지만, 모델이 예상대로 작동하지 않으면 이를 머신러닝 시스템을 뜯어보고 무엇이 문제인지 찾아봐야하는데, 그럴 때 선형대수나 미적분 지식이 부족하면 디버깅에 매우 어려움을 겪을 것이라고 한다. 따라서 머신러닝을 배우기 전 기본적인 선형대수와 미적분을 체화시키는 것은 반필수적이라고 생각한다.

 

 

2. EDA(Exploratory Data Analysis)란 무엇일까?

1)EDA란 ?

 

EDA란 Exploratory Data Analysis, 즉 탐색적 데이터 분석의 약자이다. 존 튜키라는 미국의 저명한 통계학자가 창안한 데이터 분석 방법론으로, 본격적으로 머신러닝이나 데이터를 통계 분석 하기 전에 데이터를 이를 이해하고 탐색하는 과정을 의미한다. EDA를 하게 되면 그래프, 차트를 통해 시각화한 자료를 보거나, 평균/중앙값/이상치 등 요약 통계 정보를 볼 수 있게 된다.

 

2)EDA, 왜 필요할까?

 

EDA를 하게되면 모델학습전에 먼저 데이터를 검토하므로 데이터가 표현하는 현상을 잘 이해하고, 데이터에 대한 잠재적인 문제(중복 데이터, 이상치, 결측치 등)을 미리 발견할 수 있게 되고, 데이터가 부족하거나 잘못되었다고 판단하면 데이터를 다시 수집하거나 추가로 수집하는 등의 결정을 내릴 수 있게 된다. 또한 이렇게 미리 데이터에 대한 지식을 쌓아 놓으면, 이후에 예측 모델을 만들 때 유용하게 사용할 수 있게 된다. EDA를 진행하지 않았을 시에는 데이터를 모델에 학습시켰을 때, 편향된 학습이 일어나거나 중복 데이터를 미리 제거하지 못해 반복 작업이 늘어나 시간이 낭비될 수도 있다.

 

EDA의 장점들

 

3)EDA 과정

 

EDA과정은 아래와 같이 나뉜다고 볼 수 있는데, 기본적인 과정은 이렇고, 다른 과정들이 중간에 더해지거나 빠지거나 하면서 데이터에 맞는 EDA과정을 거친다. 시각화를 세분화해서 하기도 

  • 데이터 구조 이해 : 데이터의 전반적인 특성과 구조 파악
  • 통계 요약 : 데이터 분포와 기본 통계 특성 확인(수치형 데이터(평균, 중앙값, 표준편차) , 범주형 데이터(빈도, 비율))
  • 시각화 : 숫자/문자로만 이루어진 데이터를 히스토그램/막대그래프/선 그래프 등으로 시각화하여 데이터를 펼쳐본다.
  • 결측치/이상치 확인 : 데이터 품질 문제를 찾고, 전처리 계획을 수립한다.

   ↗결측치 : 데이터셋에서 값이 누락되거나 비어있는 경우

   ↗ 이상치 : 전체 데이터의 분포에서 현저하게 벗어난, 극단적으로 크거나 작은 값 

 

  • 변수 간 관계 확인 : 변수 간 연관성(상관계수, 산점도 등)을 파악하여 특징 선택과 모델 설계에 활용한다.
  • 요약 및 분석 방향 설정 : 위에서 진행한 EDA 결과를 바탕으로 모델링과 데이터 전처리 전략을 결정하게 된다

위에서 나온 데이터 전처리 전략은 아래에서 다루겠다.

 

 

3) 데이터 전처리

1)데이터 전처리란?

 

머신러닝에서 데이터를 모델에 학습시키기 전에, EDA와 데이터 전처리는 가히 필수적이라고 할 수 있다. 위에서 봤던 EDA가 데이터를 이해하고 살펴보는 과정이었다면, 데이터 전처리는 위에서 살펴보았던 것들을 바탕으로 실제로 모델링에 사용할 수 있게 발견한 문제를 해결하고, 모델이 학습할 수 있는 형태로 데이터를 준비하는 과정이다. 모든 데이터가 예쁘게 하자 없이 학습시키기 좋게 나오면 정말 좋겠지만, 현실에서 데이터를 수집하게 되면 절대 그런일은 없다고 봐도 무방하다. 그렇기 때문에 EDA, 데이터 전처리 과정은 불가피하다. 원시데이터에서 데이터 전처리를 통해서 처리가 필요한 값들은 크게 결측값, 이상치, 중복값이 있는데, 이를 처리하는 방법에 대해 아래에서 기술하겠다.

△실제로 데이터 과학자들도 데이터 전처리에 가장 많은 시간을 쏟는다고한다

 

2)데이터 전처리 : 결측값, 중복값, 이상치 처리

 

1)결측값 처리 방법

결측값(Missing Value)란 데이터셋에 정보가 없는 경우로, 수집 과정에서 누락되거나 유실되어 값이 비어 있는(NAN, Null, NA) 경우다. 보통 데이터를 수집하는 과정에서 응답 거부를 하거나, 기록 오류 등으로 발생한다. 이를 처리하는 방법에는

  • 제거 : 결측값이 포함된 행/열을 삭제한다. (pandas 라이브러리를 이용하여 dropna() 함수 사용)
  • 대치 : 대표값으로 결측값을 채우는데, 평균값/중앙값을 사용하거나, 최빈값을 사용하곤 한다.(pandas 라이브러리의 (fillna()사용 )
  • 예측 모델 기반 대치 : KNN/회귀분석 모델을 이용하여 결측값을 처리하는 방법도 있다.

2)중복값 처리 방법

중복값(Duplicate)란 동일한 데이터가 2개 이상 존재하는 경우로, 데이터 수집 과정에서 같은 데이터가 여러번 입력되거나, 여러 데이터를 합치는 과정에서 동일 데이터가 중복될 때도 있다고 한다. 이를 처리하려면 

  • 전체 중복 제거 : 완전히 같은 행을 제거 (drop_duplicates()함수 사용)
  • 선택적 중복 제거 : 특정 특징을 기준으로 중복을 판단 후 제거하는 방법(위와 같이 drop_duplicates 함수 사용)

 

3) 이상치 처리 방법

이상치(Outliers)란 다른 데이터와 현저히 다르게 벗어난 값으로, 보통 관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 큰 값을 얘기하는데, 측정 오류로도 나타날 수 있고, 데이터 입력 중 오타, 사람의 실수로도 이상치가 나타날 수 있다. 이를 탐지하는 방법으로는 주로 정규분포를 많이 사용한다. 

 

데이터의 정규분포

각각 표준편차마다 파란 부분을 넘어서는 부분에 해당하는 값을 이상치로 보곤 한다. 이를 처리하는 방법에는 아래와 같은 방법들이 있다.

  • 제거 : 극단값을 아예 제거
  • 대체 : 적절한 값(평균/중앙값 등)으로 대체
  • 변환 : 로그, 제곱근을 취하여 범위 축소

 

 

 

사진 참조 및 자료 출처:

이수안컴퓨터연구소(youtube)

'My IT > Article' 카테고리의 다른 글

[My IT : Article] PyTorch vs TensorFlow, Tensor(PyTorch) vs Array(Numpy)  (1) 2026.03.17
[My IT : Article] 딥러닝 vs 머신러닝, 딥러닝 하이퍼파라미터  (0) 2026.03.10
[My IT : Article] 결정 트리, 앙상블 기법, 차원 축소 기법  (2) 2026.03.04
[My IT : Article] 지도학습 vs 비지도학습, 손실함수, 편향/분산, K-폴드 교차 검증  (0) 2026.02.24
[My IT : Article] 선형 자료구조 : 배열, 링크드 리스트, 스택 , 큐 , 데크  (0) 2026.02.23
'My IT/Article' 카테고리의 다른 글
  • [My IT : Article] 딥러닝 vs 머신러닝, 딥러닝 하이퍼파라미터
  • [My IT : Article] 결정 트리, 앙상블 기법, 차원 축소 기법
  • [My IT : Article] 지도학습 vs 비지도학습, 손실함수, 편향/분산, K-폴드 교차 검증
  • [My IT : Article] 선형 자료구조 : 배열, 링크드 리스트, 스택 , 큐 , 데크
uj07096
uj07096
개발블로그 시작 !
  • uj07096
    김재헌 님의 블로그
    uj07096
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Algorithm
      • My IT
        • Article
        • Codes
      • TIL
      • My Projects N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    LSTM
    딥러닝
    python
    데이터전처리
    DenseNet
    DeepLearning
    EDA
    프로그래머스
    이상치
    kaggle
    머신러닝
    Tensor
    til
    Stack
    파이썬
    ResNet
    autoencoder
    LeetCode
    AI
    GAN
    PyTorch
    EfficientNet
    transfer learning
    optuna
    Algorithm
    Faster R-CNN
    convolution
    YOLO
    코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
uj07096
[My IT : Article] 선형대수학과 머신러닝, EDA, 데이터 전처리
상단으로

티스토리툴바