SKN Family AI Bootcamp 24기 / 4주차 - 머신러닝 (1)

A.·2026년 2월 20일

SKN 24

목록 보기
15/15

인공지능 (AI: Artificial Intelligence)

-> 사람이 하는 모든 일을 기계가 대체하는 것.

인공지능의 구분

Weak AI - 현재의 대부분의 Ai 모델들
Strong AI - 인간과 동일한 수준의 지능을 갖고 자율적으로 사고하며 문제를 해결할 수 있는 ai
Artificial Super Intelligence, ASI - 스스로 목표를 설정하여 지식을 강화하는 인공지능

AI > ML > DL


머신러닝 학습 종류

1. 지도 학습 (Supervised Learning)

정답(label)이 포함된 데이터를 학습하여 새로운 데이터의 결과를 예측

분류설명대표 알고리즘
분류 (Classification)데이터를 정해진 범주(Category) 중 하나로 분류로지스틱 회귀, 결정 트리(DT), 랜덤 포레스트(RF), SVM, XGBoost, LightGBM
회귀 (Regression)연속적인 숫자 값을 예측 (예: 집값, 주가)선형 회귀, 릿지(Ridge), 라쏘(Lasso), 엘라스틱넷, 회귀 트리
앙상블 (Ensemble Learning)여러개의 개별모델을 결합하여 더 강력한 예측모델을 만드는 방법Voting, Bagging, Boosting, Stacking

-> 학습데이터로 사용하는 데이터 안에, 어떤 데이터를 바탕으로 어떤 값이 결론으로 나온다는 정답이 들어가야 한다.
-> 예측 결과를 기반으로 모델의 성능을 평가하고, 성능을 최적화한다.
-> 지도 학습은 주어진 정답이 있으므로 모델 성능이 더 높지만, 정답 데이터가 없으면 학습할 수 없다는 단점을 가진다.

Task:
(1) 분류 (Classification) - 입력 데이터를 주어진 클래스(label)로 분류하는 문제 (예: 스팸 이메일 분류, 이미지 분류 등) -> 이상값 형태로 예측. 결과값이 학습데이터 안에만 있는 결과값만 나옴.
(2) 회귀 (Regression) - 연속적인 값을 예측하는 문제 (예: 주택 가격 예측, 주식 가격 예측 등) -> 결과가 연속값 형태로 예측, 학습데이터안에 값이 있을수도, 없을수도..

2. 비지도학습(Unsupervised Learning)

정답(Label)이 없을 때 사용하는 방식, 정답이 없는 데이터를 받아 데이터가 어떻게 구성되었는지(어떠한 특성을 바탕으로 하는지)를 직접 찾아 학습하는 방식 -> 정답(Label) 없이 데이터 자체의 패턴이나 구조를 발견

분류설명대표 알고리즘
군집화 (Clustering)유사한 특성을 가진 데이터끼리 그룹화K-평균(K-Means), DBSCAN, 계층적 군집화
차원 축소 (Dimension Reduction)데이터의 특성 수를 줄이면서 핵심 정보 유지PCA(주성분 분석), LDA, t-SNE, UMAP
연관 규칙 (Association Rule)데이터 간의 상관관계 발견 (장바구니 분석)Apriori, FP-Growth

(1) 군집화 (Clustering) - 비슷한 특성을 가진 데이터끼리 그룹화하는 문제 (예: 고객 세분화 등) -> 데이터 통으로 주고 너가 생각할때 비슷한 애들끼리 그룹화 해.
(2) 차원축소 (Dimension Reduction) - 데이터의 차원을 축소해 시각화하거나, 계산량을 줄이는 기법 (예: PCA(주성분 분석) 등) -> 데이터의 차원을 축소, 핵심특징만 남기고 복잡도 줄임

🔍 차원 축소 기법의 핵심 차이점 비교

차원 축소 기법은 '정답(Label)의 유무''데이터를 직선으로 파악하는지(선형/비선형)'에 따라 다음과 같이 구분된다.

기법명학습 유형선형/비선형핵심 목적
PCA (주성분 분석)비지도 학습선형데이터의 분산(Variance)을 최대한 보존하며 축소
LDA (선형 판별 분석)지도 학습선형클래스(정답) 간의 차이를 최대화하며 축소
LLE (지역 선형 임베딩)비지도 학습비선형이웃 데이터들 간의 국소적 관계를 유지하며 축소

💡 한눈에 보는 특징 요약

1. PCA (Principal Component Analysis)

  • 비지도 학습 & 선형: 정답 없이 데이터가 가장 널리 퍼진 방향을 찾아 직선으로 투영함.
  • 언제 쓸까?: 정보 손실을 최소화하면서 차원을 줄여 데이터 시각화나 노이즈 제거를 할 때 사용.

2. LDA (Linear Discriminant Analysis)

  • 지도 학습 & 선형: 정답(Label)을 참고하여, 같은 클래스끼리는 가깝게, 다른 클래스끼리는 멀게 선형적으로 투영.
  • 언제 쓸까?: 분류(Classification) 모델의 성능을 높이기 위해 최적화된 차원 축소가 필요할 때 사용.

3. LLE (Locally Linear Embedding)

  • 비지도 학습 & 비선형: 데이터가 꼬여있거나 굽어있는 비선형 구조(예: 스위스 롤 모양)일 때, 이웃 데이터 간의 관계를 유지하며 이를 평평하게 펼침.
  • 언제 쓸까?: PCA와 같은 선형 기법으로 해결할 수 없는 복잡한 구조의 데이터를 분석할 때 사용.

3. 강화학습(Reinforcement Learning)**

정답대신 보상(Reward)를 통해 학습하는 방식. 에이전트(컴퓨터) 가 특정 환경에서 행동을 하고, 그 결과에 따라 상이나 벌을 받으며 최적의 행동 순서를 스스로 찾아냄. (시행착오를 통해 최적의 행동을 찾게 됨) -> 에이전트가 환경과 상호작용하며 보상(Reward)을 최대화하는 방향으로 학습
e.g) 자율주행, 게임 AI 등..

분류설명대표 알고리즘
강화 학습행동에 따른 보상을 통해 최적의 정책 학습Q-Learning, DQN, PPO, A3C

학습 종류별 모델 (Task별 알고리즘)

머신러닝은 해결하려는 문제의 성격(데이터의 정답 유무 등)에 따라 크게 세가지 task로 구분됨.

지도학습 분류모델 (데이터를 사전에 정의된 범주로 분류하는 데 사용)

모델명설명
로지스틱 회귀
(Logistic Regression)
이진 또는 다중 클래스 확률 기반 분류, 출력은 특정 클래스에 속할 확률로 나타남.
K-최근접 이웃
(K-Nearest Neighbors, KNN)
가장 가까운 K개의 이웃을 기반으로 클래스를 예측하는 모델. 데이터의 분포에 따라 성능이 크게 달라질 수 있음.
서포트 벡터 머신
(Support Vector Machine, SVM)
클래스 간의 최대 마진을 찾는 분류 모델로, 고차원 데이터에서도 잘 동작함.
결정 트리
(Decision Tree)
의사결정 규칙을 시각화할 수 있는 트리 구조로 분류. 이해와 해석이 쉬우나, 과적합에 취약할 수 있음.
랜덤 포레스트
(Random Forest)
여러 결정 트리를 결합해 예측하는 앙상블 모델로, 과적합을 방지하고 성능을 향상시킴.
나이브 베이즈
(Naive Bayes)
조건부 확률 기반 분류 모델로, 가정이 간단하고 계산 효율이 높아 텍스트 분류 등에 자주 사용됨.
그래디언트 부스팅 머신
(Gradient Boosting Machine, GBM)
이전 트리의 오차를 줄이는 방식으로 여러 트리를 결합해 성능을 향상시키는 모델. XGBoost, LightGBM 등이 대표적.

지도학습 회귀모델 (연속적인 값을 예측하는 데 사용)

모델명설명
선형 회귀
(Linear Regression)
독립 변수와 종속 변수 간의 선형 관계를 가정하여 값을 예측하는 모델
다중 선형 회귀
(Multiple Linear Regression)
여러 독립 변수를 사용해 종속 변수의 값을 예측하는 선형 모델
릿지 회귀
(Ridge Regression)
과적합을 방지하기 위해 L2 정규화(term)를 추가한 선형 회귀 모델
라쏘 회귀
(Lasso Regression)
과적합을 방지하기 위해 L1 정규화(term)를 추가한 선형 회귀 모델
다항 회귀
(Polynomial Regression)
독립 변수와 종속 변수 간의 비선형 관계를 나타낼 때 사용하는 회귀 모델
그래디언트 부스팅 회귀
(Gradient Boosting Regression)
회귀 문제에 적합한 앙상블 학습 모델로, 여러 약한 학습기를 결합해 성능을 향상시키는 방식. XGBoost, LightGBM 등 사용.

비지도학습 모델 (라벨이 없는 데이터를 기반으로 데이터의 패턴을 발견하는 데 사용)

모델명설명
K-평균 군집화
(K-Means Clustering)
데이터를 K개의 군집으로 나누어 각 군집의 중심과 가까운 데이터를 그룹화하는 군집화 기법.
계층적 군집화
(Hierarchical Clustering)
데이터 간의 거리를 측정해 계층적으로 군집을 형성하며, 트리 구조로 시각화 가능.
DBSCAN
(Density-Based Spatial Clustering of Applications with Noise)
밀도 기반의 군집화 기법으로, 밀집된 군집과 잡음을 구분함. 비정형 데이터에 강한 성능을 보임.
주성분 분석
(PCA, Principal Component Analysis)
차원을 축소해 데이터의 주요 성분을 추출하는 기법으로, 데이터 시각화나 차원 축소에 사용됨.
t-SNE
(t-distributed Stochastic Neighbor Embedding)
고차원의 데이터를 2차원 또는 3차원으로 변환해 데이터의 분포를 시각화하는 비지도학습 기법.
UMAP
(Uniform Manifold Approximation and Projection)
차원 축소 기법으로, t-SNE와 유사하지만 더 빠르고 정확한 성능을 제공함.
GAN
(Generative Adversarial Network)
생성자와 판별자와의 경쟁 속에서 더 나은 데이터 샘플을 만들어 내는 방식. 이미지 생성, 데이터 증강에 효과적.

머신러닝 학습 환경 설정

용어 설명

  • Feature data (X data) = 통계적 관점에서는 독립변수
  • label data (y data) = 종속변수, target

머신러닝 파이프라인의 주요 단계

단계
1. 데이터 수집
2. EDA
3. 데이터 전처리
4. 데이터 분류
5. 모델 선정
6. 학습
7. 평가
  1. 데이터 로드 및 정제 : 데이터베이스, API, 웹 크롤링 등을 통해 원천 데이터를 확보합니다.

  2. 데이터 확인 (EDA)

  • 결측치, 이상치 확인 및 데이터 정제
  1. 데이터전처리 (Data Preprocessing)
  • 데이터 스케일링, 표준화 및 정규화 등을 통해 데이터를 학습에 용이하도록 전처리
  • 인코딩 (Encoding) - 텍스트(범주형데이터)를 숫자화 (수치형데이터)로 변환
    - 레이블 인코딩 (label encoding): 카테고리를 숫자로 단순변환
    - 원-핫 인코딩 (one-hot encoding): 고유값마다 컬럼 만들고 해당하면 1 또는 0으로 표시
    *선형모델은 원-핫, 트리모델은 레이블 권장
  • 피처스케일링 : 연속값을 처리
    표준화 (Standardization, StandardScaler) - 표준정규분포, 평균이 0 표준편차가 1.회귀, 분류에서 주로 사용
    정규화(Normalization, MinMaxScaler) - min을 0, max를 1인 값으로 변환. 픽셀 데이터와 같은 이미지 처리할 때 많이 사용
  1. 데이터 분류 (Data Splitting - 학습데이터/평가데이터) 후 학습에 적용
    train_test_split(): 학습용 데이터와 검증용 데이터를 분리하는 함수
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, train_size=0.8, shuffle=False, stratify=iris_data.label, random_state=11)
  • 첫 번째 매개변수 : 정답을 알아내기 위한 대상 데이터 (변수명을 iris_data 라고 지은 것)
  • 두 번째 매개변수 : 정답 데이터 (변수명을 iris_label라고 지은 것)
  • train_size 또는 test_size : 주어진 데이터셋에서 학습용 또는 평가용 데이터 사이즈 지정 가능 (전체 데이터셋의 크기는 1이다.)
  • shuffle=False : 데이터셋을 랜덤하게 자르지 않고 순서대로 자르게 하는 설정 (기본 값: True)
  • stratify ****: feature 값을 지정해 주면 피처값의 비율대로 데이터셋을 나누도록 하는 설정
    • EDA를 통해 정답 데이터의 종류별 개수를 판별할 수 있게 되고, 학습 데이터와 평가 데이터에서 정답의 비율이 잘 맞아야 학습이 잘 이루어진다. (정답 데이터가 5:3:2의 비율로 존재한다면 학습 데이터와 평가 데이터를 나눌 때도 해당 비율로 나눠지도록 하는 것이다.)
  • random_state : 테스트 시 고정된 값을 사용해야 모델을 바꿨을 때도 동일한 조건에서 성능을 확인할 수 있으므로 고정값을 지정하는 설정 (난수 seed 고정)
  1. 모델선정
  • 주어진 상황(Task)에 따라 어떤 모델을 사용해야 하는지 결정한다.
    • EDA를 통해서 모델을 통해 해결해야 하는 상황(회귀인지 분류인지 등)을 판단할 수 있고, 어떤 문제인지에 따라 그 문제를 해결하기 위한 모델을 선정한다.
  1. 학습
  • 선정한 모델을 앞서 나눈 학습용 데이터로 학습시킨다.
  1. 평가
  • 성능에 대한 평가 단계로, 성능이 기대한 것 만큼 나오지 않는다면 4번 단계(데이터 분류)로 돌아가서 성능을 높일 수 있도록 한다.
    • 정답 데이터가 부족하다면 추가하고, 전처리를 다시 하거나, 모델을 다른 걸로 바꾸는 것 등을 통해 성능 개선할 수 있도록 한다.

💡 하이퍼파라미터 (Hyperparameter) vs 파라미터 (Parameter)

  • Hyperparameter: 사용자가 수동으로 설정하는 값
  • 파라미터 (Parameter): 모델이 학습과정에서 데이터로부터 자동으로 학습하는 값 (함수한테 전달해주는 매개변수)
  1. "내가 할 일"과 "컴퓨터가 할 일"을 구분하기 위해
  • 파라미터는 모델이 공부하면서 스스로 최적값을 찾아가는 과정임. 우리가 직접 건드릴 수 없음.

  • 하이퍼파라미터는 우리가 직접 설계하고 입력해야 하는 값. 모델이 성능이 안 나온다면, 우리는 파라미터를 고치는 게 아니라 하이퍼파라미터를 수정(Tuning)해야 함. 즉, '어디를 고쳐야 할지' 알기 위해 구분해야 함.

  1. 모델의 성능(과적합)을 제어하기 위해
  • 하이퍼파라미터는 모델의 '복잡도'를 결정함.

-> 예를 들어, 결정 트리(Decision Tree)에서 max_depth(트리 깊이)라는 하이퍼파라미터를 너무 크게 잡으면 모델이 데이터에 너무 집착해서 과적합(Overfitting)이 발생한다. 모델의 공부 방식을 제어하는 브레이크 역할을 내가 쥐고 있다는 뜻.

  1. 모델 마다 '조절 레버'가 다르기 때문에
  • 어떤 모델은 학습률(Learning Rate)이 중요하고, 어떤 모델은 이웃의 수(K)가 중요. 각 모델이 가진 하이퍼파라미터를 알아야 그 모델을 제대로 다룰 수 있음.
구분하이퍼파라미터 (Hyperparameter)파라미터 (Parameter)
결정 주체사용자(사람)가 직접 설정모델이 학습을 통해 스스로 결정
특징모델 학습 전에 미리 설정됨학습 과정에서 데이터에 의해 업데이트됨
목적학습 알고리즘의 동작 방식을 제어데이터의 패턴을 표현
예시학습률(Learning Rate), 트리 깊이, K값선형 회귀의 가중치(w), 편향(b)
비유공부할 때 쓰는 '학습 계획표/환경'머릿속에 쌓이는 '지식/경험'

🤖 머신러닝 학습 종류별 모델 총정리

대부분의 알고리즘은 파이썬의 대표적인 머신러닝 라이브러리인 Scikit-learn에서 제공하며, 일부 고성능 모델이나 생성 모델은 전용 라이브러리를 사용함.

1. 지도학습: 분류 (Classification)

모델명설명라이브러리
로지스틱 회귀이진 또는 다중 클래스 확률 기반 분류Scikit-learn
KNN가까운 K개의 이웃 기반 예측Scikit-learn
SVM클래스 간 최대 마진을 찾는 모델Scikit-learn
결정 트리의사결정 규칙을 트리 구조로 시각화Scikit-learn
랜덤 포레스트여러 결정 트리를 결합한 앙상블 모델Scikit-learn
XGBoost / LightGBM성능이 뛰어난 그래디언트 부스팅 계열별도 라이브러리

2. 지도학습: 회귀 (Regression)

모델명설명라이브러리
선형 회귀독립-종속 변수 간 선형 관계 예측Scikit-learn
릿지 / 라쏘과적합 방지를 위한 정규화 회귀 모델Scikit-learn
다항 회귀비선형 관계를 나타내기 위한 모델Scikit-learn
GBM 회귀부스팅 방식을 회귀 문제에 적용Scikit-learn/별도

3. 비지도학습 및 차원 축소

차원 축소 모델은 학습 유형(지도/비지도)과 데이터의 선형성 유지 여부에 따라 다음과 같이 구분된다.

모델명분류 (학습 유형)선형/비선형설명라이브러리
K-Means / DBSCAN군집화-데이터를 유사한 그룹으로 묶음Scikit-learn
PCA차원 축소 (비지도)선형데이터 분산을 최대화하는 방향으로 축소Scikit-learn
LDA차원 축소 (지도)선형클래스 간 분별력을 최대화하도록 축소Scikit-learn
LLE차원 축소 (비지도)비선형이웃 간의 국소적 구조를 보존하며 축소Scikit-learn
t-SNE차원 축소 (비지도)비선형고차원 데이터 시각화에 최적화된 기법Scikit-learn
UMAP차원 축소 (비지도)비선형t-SNE보다 빠르고 전역 구조를 잘 보존함별도 (umap-learn)
GAN데이터 생성-가짜 데이터를 생성하는 생성 모델딥러닝 (PyTorch 등)
profile
코린이

0개의 댓글