| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- gpt1
- MySQL
- leetcode
- 파이썬
- ChatGPT
- 코딩테스트
- 논문리뷰
- SQL 첫걸음
- outer join
- 가상환경
- 분산
- 그래프
- transformer
- GPT
- dfs
- 프로그래머스
- Bert
- ABAE
- 백준
- 머신러닝
- join
- 연구
- 자연어처리
- 알고리즘
- deepseek
- LLM
- NLP
- SQL
- Aspect
- paper review
- Today
- Total
huginn muninn
Machine Learning의 개념과 종류 본문
1. 머신러닝이란?
기계학습 또는 머신러닝은 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다(위키피디아)

- 주어진 데이터를 통해 입력변수와 출력변수간의 관계를 만드는 함수 f를 만드는 것.
- 주어진 데이터 속에서 데이터의 특징을 찾아내는 함수 f를 만드는 것
-> 이게 머신러닝이라고 할 수 있겠다.
예를 들면 아래와 같다.
x : 게임 유저들의 게임 내 활동 정보
y : 게임 이탈 여부 / 어뷰징 여부
-> 이상 탐지 모델, 이상탐지 관련 주요 feature 추출
2. 지도학습과 비지도학습
2.1 지도학습
y=f(x)에 대해 입력변수 x를 가지고 출력변수 y의 관계에 대해 모델링하는 것. 지도학습은 두 가지가 있다.
- 회귀(regression) : 입력변수 x에 대해서 연속형 출력변수 y를 예측
- 분류(classification) : 입력변수 x에 대해서 이산형 출력변수 y를 예측


연속형 변수는 : 키, 몸무게, BMI지수 같은 수치들
이산형 변수(클래스)는 성별, 흡연여부, 질병여부, 주가가 오른다, 내린다, 불량이다 정상이다 이런 것들을 말한다.
지도학습 모델은 예를 들어 주식가격 예측, 공정 불량 여부 탐지 등이 있겠다. 쉽게 말해서 지도학습은 학습데이터가 있고 정답 데이터가 같이 있어서 서로의 관계를 학습하는 모델이라고 이해하면 쉽다.
2.2 비지도학습
x들끼리 어떠한 패턴을 찾아내는 것. 즉 출력변수y가 존재하지 않고 입력변수간의 관계에 대해 모델링하는 것이다. 지도학습과는 반대로 정답 데이터가 없기 때문에 학습데이터만 가지고 관계를 파악해야한다.
대표적으로 두 가지가 있다.
- 군집 분석 : 유사한 데이터끼리 그룹화
- PCA : 독립변수들의 차원을 축소화
비지도 학습의 예로는 고객 세그먼트 분류 등이 있겠다.
3. 머신러닝의 종류
3.1 선형 회귀 분석(Linear Regression)

- 독립변수와 종속변수가 선형적이 관계가 있다라는 가정하에 분석하는 것
- 직선을 통해 종속변수를 예측하기 때문에 독립변수의 중요도와 영향력을 파악하기 쉽다.
- 단점은 비선형 관계를 가질 경우 관계를 잘 파악하지 못한다.
3.2 의사결정나무(Decision Tree)


- 독립변수의 조건에 따라 종속변수를 분리
- 이해하기 쉬우나 과대적합(overfitting)이 잘 일어남
- 간단한 문제에는 적합하나 복잡한 모형에는 분석을 잘 못한다...
- 나중에 설명할 앙상블 모델의 기초가 되는 모델
3.3 KNN(K-Nearest Neighbor)

- 새로 들어온 데이터의 주변 K개의 데이터의 class로 분류하는 기법.
- 가까운 것들은 그들만의 특징이 있을 것이라고 생각하고 하나의 클래스로 묶는다.
- K는 사람이 지정해주는 것(이렇게 사람이 지정해주는 어떤 인자들, 이런 것들을 하이퍼파라미터라고 함)
3.4 Neural Network

- 입력, 은닉, 출력층으로 구성된 모형으로서 각 층을 연결하는 노드의 가중치를 업데이트 하면서 학습
- 이것도 과대적합이 잘되어서 잘 쓰이지 않는다.
- 출력값과 실제값의 차이를 보고 업데이트 시킴.
3.5 SVM(Support Vector Machine)

- class 간의 거리(margin)이 최대가 되도록 decision boundary를 만드는 방법
- 학습 과정 내에서 어느 정도의 오차를 허용하고 직선을 긋는다.
뉴럴 네트워크나 다른 모델 같은 경우에는 무조건 이 학습 데이터를 잘 맞추기 위해 직선을 딱 맞게 긋는데 SVM은 학습하는 과정내에서 어느정도 오차를 허용하기 때문에 과대적합이 잘 안되지만, 요즘은 거의 쓰지 않는다. 학습시간이 너무 오래 걸리고 좋은 모델들이 계속 나오고 있기 때문.
3.6 Ensemble Learning

- 여러 개의 모델(classifier or base learner)을 결합해 사용하는 모델
- 결정 트리 기반으로 앙상블 러닝을 많이 사용함
- 크게 bagging, random forest, boosting 3가지가 있다.
같은 데이터로 결정트리를 학습시키면 똑같은 결과가 나올 것이다. 앙상블 모델은 각각의 모델들이 아웃풋을 내고 이것들의 평균을 내거나 투표를 해야 하는데 똑같은 아웃풋으로 평균을 내고, 투표하는 건 쓸데없으니까 사용하는 여러 개의 모델(base learner)을 좀 더 다양하게 만들어서 성능이 좋은 새로운 분류기를 만들어 내는 것이 앙상블 모델의 핵심이다.
앙상블 러닝은 위에서 말한 bagging, random forest, boosting 만 말하는 것이 아니라 모델을 그냥 여러 개 섞으면 앙상블 모델이다.
성능이 너무 좋아서 캐글이나 데이콘에서 좋은 성능을 내고 있기도 하다.
하지만 주의해야 할 것이 있다. 무조건 정확도가 높은 게 장땡이라면 앙상블 모델을 사용하면 되지만 Y에 영향을 끼치는 주요 feature를 찾는 것이 목적이라면 앙상블 모델이 좋지는 않다...
3.7 K-means clustering

- Label 없이 데이터의 군집으로 k개로 생성
- K개를 어떻게하면 잘 설정할 수 있을까를 고민해야 함 -> K에 따라서 성능이 달라지기 때문
- 데이터가 고차원이면 K-means clustering이 잘 안된다.
'머신러닝' 카테고리의 다른 글
| 오차행렬(confusion matrix) (0) | 2024.09.12 |
|---|---|
| 다중공선성(Multicollinearity) (0) | 2024.04.07 |
| 머신러닝을 위한 수학적 개념 이해 (1) | 2024.04.04 |
| 모형의 적합성 평가와 과적합(overfitting) (1) | 2024.04.03 |