📌 머신러닝 알고리즘 개요 (Overview of ML Algorithms)
머신러닝 알고리즘은 데이터를 학습하여 패턴을 찾고 예측하는 기술입니다. 지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning), 반지도 학습(Semi-Supervised Learning), 자기 지도 학습(Self-Supervised Learning) 등의 카테고리로 나뉩니다.
🏆 1️⃣ 지도학습 알고리즘 (Supervised Learning Algorithms)
👉 정답(라벨)이 있는 데이터를 학습하여 예측하는 알고리즘
📍 1. 선형 회귀 (Linear Regression)
✔ 개념:
- 입력(X)과 출력(Y)의 관계를 직선(선형 함수)으로 표현
- Y = aX + b 형태의 모델
✅ 예제:
📌 집값 예측
- X: 평수, 방 개수
- Y: 집값
- 집의 특성을 이용해 가격을 예측
📝 코드 예제 (선형 회귀 – 집값 예측)
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 데이터 생성 X = np.array([50, 60, 70, 80, 90]).reshape(-1, 1) Y = np.array([300, 350, 400, 450, 500]) # 모델 학습 model = LinearRegression() model.fit(X, Y) # 예측 pred = model.predict([[75]]) print(f"75평 집의 예상 가격: {pred[0]}만원") # 그래프 시각화 plt.scatter(X, Y, color="blue") plt.plot(X, model.predict(X), color="red") plt.xlabel("평수") plt.ylabel("집값(만원)") plt.show()
📍 2. 로지스틱 회귀 (Logistic Regression)
✔ 개념:
- 분류(Classification) 문제 해결
- 출력값이 0 또는 1 (예: 스팸 vs 정상 메일)
✅ 예제:
📌 이메일 스팸 분류
- X: 이메일 본문 단어
- Y: 0(정상) 또는 1(스팸)
📍 3. 결정 트리 (Decision Tree)
✔ 개념:
- 데이터에 대한 질문을 하며 분류를 수행
- 사람이 이해하기 쉬운 모델
✅ 예제:
📌 대출 승인 여부 예측
- X: 연봉, 신용 점수
- Y: 대출 승인 여부 (O/X)
📍 4. 랜덤 포레스트 (Random Forest)
✔ 개념:
- 여러 개의 결정 트리를 조합하여 예측 정확도 향상
✅ 예제:
📌 신용카드 사기 탐지
- X: 거래 내역
- Y: 0(정상), 1(사기)
📍 5. 서포트 벡터 머신 (SVM, Support Vector Machine)
✔ 개념:
- 데이터 사이의 최적의 경계를 찾아 분류 수행
✅ 예제:
📌 얼굴 인식 시스템
- X: 얼굴 특징
- Y: 특정 사람인지 여부
📍 6. 신경망 (Neural Networks)
✔ 개념:
- 인간 뇌를 모방한 모델
- 복잡한 패턴을 학습 가능
✅ 예제:
📌 자연어 처리 (NLP), 음성 인식
🔍 2️⃣ 비지도학습 알고리즘 (Unsupervised Learning Algorithms)
👉 정답이 없는 데이터를 분석하여 패턴을 찾는 알고리즘
📍 1. K-평균 군집화 (K-Means Clustering)
✔ 개념:
- 데이터를 K개의 그룹으로 나누는 알고리즘
✅ 예제:
📌 고객 세분화 (Customer Segmentation)
- 고객을 비슷한 특성별로 그룹화
📝 코드 예제 (K-평균 군집화 – 고객 그룹화)
import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans # 샘플 데이터 (연령, 구매 금액) X = np.array([[25, 300], [30, 450], [35, 500], [40, 700], [23, 200], [50, 900], [60, 1000]]) # K-평균 군집화 kmeans = KMeans(n_clusters=3, random_state=42) kmeans.fit(X) labels = kmeans.labels_ # 시각화 plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis') plt.xlabel("연령") plt.ylabel("구매 금액") plt.show()
📍 2. 주성분 분석 (PCA, Principal Component Analysis)
✔ 개념:
- 데이터의 차원을 줄여 중요한 특징만 남김
✅ 예제:
📌 고해상도 이미지 압축
🎮 3️⃣ 강화학습 알고리즘 (Reinforcement Learning Algorithms)
👉 보상을 통해 최적의 행동을 학습하는 알고리즘
📍 1. Q-러닝 (Q-Learning)
✔ 개념:
- AI가 환경에서 보상을 받아가며 학습
✅ 예제:
📌 게임 AI (알파고, 자율주행)
🧐 4️⃣ 반지도 학습 (Semi-Supervised Learning)
👉 일부 데이터만 정답이 있는 경우 학습하는 알고리즘
📍 1. 반지도 학습 모델
✔ 개념:
- 적은 양의 라벨 데이터 + 많은 비라벨 데이터 학습
✅ 예제:
📌 의료 데이터 분석 (라벨 부족한 경우 활용)
🤖 5️⃣ 자기 지도 학습 (Self-Supervised Learning)
👉 데이터의 일부를 숨기고 스스로 학습하는 알고리즘
📍 1. GPT, BERT 같은 모델
✔ 개념:
- 문장의 일부를 가리고 나머지로 예측
✅ 예제:
📌 ChatGPT 같은 대규모 언어 모델
📊 6️⃣ 머신러닝 알고리즘 비교
알고리즘 | 유형 | 특징 | 예제 |
---|---|---|---|
선형 회귀 | 지도학습 | 연속된 값 예측 | 집값 예측 |
로지스틱 회귀 | 지도학습 | 분류 문제 해결 | 스팸 필터 |
랜덤 포레스트 | 지도학습 | 여러 트리 조합 | 신용카드 사기 탐지 |
K-평균 군집화 | 비지도학습 | 데이터 그룹화 | 고객 세분화 |
Q-러닝 | 강화학습 | 보상 기반 학습 | 게임 AI |
GPT | 자기 지도 학습 | 문장 일부 예측 | ChatGPT |
🚀 결론 (Conclusion)
✅ 머신러닝 알고리즘은 목적에 따라 다양한 방식으로 활용됨
✅ 초보자는 지도학습 → 비지도학습 → 강화학습 순으로 학습 추천