μ΄λ²μλ Supervised Learning (μ§λνμ΅)μ λ°ν κ°λ μ λ°νμ¬ νλ² μμλ³΄κ² μ΅λλ€.
Supervised Learning (μ§λνμ΅)
μ§λνμ΅μ λ¨Έμ λ¬λμ ν λΆμΌλ‘, λΌλ²¨μ΄ μλ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ νμ΅νλ μκ³ λ¦¬μ¦μ λλ€.
- μ λ ₯ λ°μ΄ν°μ μ΄μ μμνλ μΆλ ₯ κ°(λͺ©ν λλ λΌλ²¨)μ΄ μ£Όμ΄μ§λ©°, λͺ¨λΈμ μ΄ λ°μ΄ν°λ₯Ό ν΅ν΄ νμ΅νμ¬ μλ‘μ΄ μ λ ₯μ λν΄ μμΈ‘μ μνν μ μμ΅λλ€.
- μ§λνμ΅μ ν¬κ² νκ·(Regression)μ λΆλ₯(Classification)λ‘ λλ©λλ€.
Regression (νκ·)
νκ·λ μ°μμ μΈ μ«μ κ°μ μμΈ‘νλ λ¬Έμ λ₯Ό λ€λ£Ήλλ€.
- μλ₯Ό λ€μ΄, μ£Όνμ λ©΄μ , λ°© κ°μ, μμΉ λ±μ κΈ°λ°μΌλ‘ μ£Όν κ°κ²©μ μμΈ‘νλ κ²½μ°κ° μ΄μ ν΄λΉν©λλ€.
- νκ· λ¬Έμ μμλ μμΈ‘νλ €λ κ°μ΄ μ°μμ μΈ μ«μλ‘ ννλ©λλ€.
- μμλ₯Ό λ€λ©΄, μ§κ° μμΈ‘: μ£Όνμ ν¬κΈ°, μμΉ, μ°μ λ±μ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ μ£Όν κ°κ²©μ μμΈ‘ν©λλ€.
- κΈ°μ¨ μμΈ‘: κ³Όκ±°μ κΈ°μ¨ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ λ―Έλμ κΈ°μ¨μ μμΈ‘ν©λλ€.
Regression (νκ·)μ μ£Όμ μκ³ λ¦¬μ¦
- λ¨μ μ ν νκ·(Simple Linear Regression): νλμ λ
립λ³μ(X)μ μ’
μλ³μ(Y)κ°μ κ΄κ³λ₯Ό μ§μ μΌλ‘ λͺ¨λΈλ§ν©λλ€. λ°μ΄ν° ν¬μΈνΈμ κ°μ₯ μ λ§λ μ§μ μ μ°Ύλκ²μ λͺ©νλ‘ ν©λλ€.
- μ§μ μ Y = aX + bμ ννλ₯Ό κ°μ§λ©°, μ¬κΈ°μ a,bλ λͺ¨λΈμ νμ΅μ ν΅ν΄ κ²°μ μ΄ λ©λλ€.
- λ€μ€ μ ν νκ·(Multiple Linear Regression): μ¬λ¬κ°μ λ
립λ³μ(X)μ νλμ μ’
μλ³μ(Y)κ°μ κ΄κ³λ₯Ό λͺ¨λΈλ§ν©λλ€. λ°μ΄ν°μ μ¬λ¬κ°μ μ
λ ₯λ³μλ₯Ό κ³ λ €νμ¬ κ²°κ³Όλ₯Ό μμΈ‘ν©λλ€.
- λͺ¨λμ ννλ Y = a1X1 + a2X2 + ... + anXn + b μ νν μ λλ€.
- λ¦Ώμ§ νκ·(Ridge Regression) & λΌμ νκ·(Lasso Regression): λ€μ€ μ ν νκ·(Multiple Linear Regression)μ νμ₯ λ²μ μΌλ‘, Overfitting(κ³Όμ ν©)μ λ°©μ§νκΈ° μν΄ Normalization(μ κ·ν)λ₯Ό μ μ©ν©λλ€.
- λ¦Ώμ§ νκ·(Ridge Regression)λ κ³μμ λν L2 μ κ·ν, λΌμ νκ·(Lasso Regression)λ L1 μ κ·νλ₯Ό μ¬μ©νμ¬ λͺ¨λΈμ 볡μ‘λλ₯Ό μ€μ λλ€.
Example Code
from sklearn.linear_model import LinearRegression
# λ°μ΄ν° μ€λΉ (μ: λ©΄μ , κ°κ²©)
X = [[1500], [1800], [2400], [3000], [3500]] # λ©΄μ (νλ°©νΌνΈ)
y = [200000, 250000, 320000, 380000, 450000] # κ°κ²© (λ¬λ¬)
# λͺ¨λΈ νμ΅
model = LinearRegression()
model.fit(X, y)
# μλ‘μ΄ λ°μ΄ν° μμΈ‘
new_data = [[2000]] # μμΈ‘ν λ©΄μ
predicted_price = model.predict(new_data)
print(f"μμΈ‘ κ°κ²©: ${predicted_price[0]:.2f}")
# μμΈ‘ κ°κ²©: $267013.18
Classification (λΆλ₯)
λΆλ₯λ λ²μ£Όν κ°μ μμΈ‘νλ λ¬Έμ λ₯Ό λ€λ£Ήλλ€.
- μλ₯Ό λ€μ΄, μ΄λ©μΌμ΄ μ€νΈμΈμ§ μλμ§λ₯Ό λΆλ₯νκ±°λ, μ΄λ―Έμ§μμ νΉμ κ°μ²΄λ₯Ό μΈμνλ κ²½μ°κ° μ΄μ ν΄λΉν©λλ€.
- λΆλ₯ λ¬Έμ μμλ μμΈ‘νλ €λ κ²°κ³Όκ° μ΄μ°μ μΈ ν΄λμ€(μ: μ€νΈ/μ μ, κ³ μμ΄/κ°)λ‘ λλ©λλ€.
- μμλ₯Ό λ€λ©΄, μ€νΈ λ©μΌ λΆλ₯: μ΄λ©μΌμ λ΄μ©μ λΆμνμ¬ μ€νΈ λ©μΌμΈμ§ μλμ§λ₯Ό νλ¨ν©λλ€.
- μ΄λ―Έμ§ λΆλ₯: μ΄λ―Έμ§ λ°μ΄ν°λ₯Ό λΆμνμ¬ ν΄λΉ μ΄λ―Έμ§κ° μ΄λ€ κ°μ²΄λ₯Ό ν¬ν¨νκ³ μλμ§ λΆλ₯ν©λλ€.
Classification (λΆλ₯)μ μ£Όμ μκ³ λ¦¬μ¦
- λ‘μ§μ€ν± νκ·(Logistic Regression): Binary(μ΄μ§)λΆλ₯ λ¬Έμ μμ μ£Όλ‘ μ¬μ©λ©λλ€. λ°μ΄ν°κ° νΉμ ν΄λμ€μ μν νλ₯ μ μ£Όλ‘ μμΈ‘νλ©°, Sigmoid Function(μκ·Έλͺ¨μ΄λ ν¨μ)λ₯Ό μ¬μ©νμ¬ μμΈ‘ κ²°κ³Όλ₯Ό 0, 1 μ¬μ΄μ κ°μΌλ‘ λ³νν©λλ€.
- κ²°κ³Όμ μΌλ‘ , 0.5λ₯Ό κΈ°μ€μΌλ‘ Classλ₯Ό λΆλ₯ν©λλ€.
- μν¬νΈ λ²‘ν° λ¨Έμ (Support Vector Machine, SVM): λ Classκ°μ μ΅λ Marginμ μ°Ύλ μκ³ λ¦¬μ¦μ
λλ€. SVM λ¨Έμ μ λ°μ΄ν°λ₯Ό λλ μ΅μ μ Border(κ²½κ³)λ₯Ό μ°ΎμΌλ©°, Marginμ μ΅λν νμ¬ λͺ¨λΈμ μΌλ°ν μ±λ₯μ λμ
λλ€.
- Non-Linear(λΉμ ν) λ¬Έμ μ λ°νμ¬λ Kernel Trick(컀λ νΈλ¦)μ μ¬μ©νμ¬ ν΄κ²°ν©λλ€.
- k-μ΅κ·Όμ μ΄μ(k-Nearest Neighbors, k-NN): μλ‘μ΄ λ°μ΄ν° ν¬μΈνΈμ Classifcation(λΆλ₯)λ₯Ό κ°μ₯ κ°κΉμ΄ Kκ°μ μ΄μ λ°μ΄ν° ν¬μΈνΈμ Class λ€μλ₯Ό κΈ°λ°μΌλ‘ κ²°μ νλ μκ³ λ¦¬μ¦ μ
λλ€.
- λ°μ΄ν°κ° Normalization(μ κ·ν)κ° λμ΄μμ§ μκ±°λ, μ€μΌμΌμ΄ λ€λ₯Όλ μ±λ₯ μ΄μκ° μμ΅λλ€.
- μμ¬κ²°μ λ무(Decision Tree) & λλ€ ν¬λ μ€νΈ(Random Forest): μμ¬κ²°μ λ무(Decision Tree)λ λ°μ΄ν°λ₯Ό μ¬λ¬ κΈ°μ€μ λ°λΌ λΆλ₯νλ νΈλ¦¬κ΅¬μ‘°, λλ€ ν¬λ μ€νΈλ λ€μμ μμ¬κ²°μ λ무(Decision Tree)λ₯Ό μμλΈ(ensemble)νμ¬ λͺ¨λΈμ μμΈ‘ μ±λ₯μ λμ λλ€.
Example Code
from sklearn.linear_model import LogisticRegression
# λ°μ΄ν° μ€λΉ (μ: μ΄λ©μΌ λ΄μ© νΉμ±, λΌλ²¨)
X = [[0.1, 0.6], [0.4, 0.3], [0.5, 0.7], [0.9, 0.2]] # νΉμ± (μ€νΈ νλ₯ μ§ν)
y = [0, 1, 0, 1] # λΌλ²¨ (0: μ μ, 1: μ€νΈ)
# λͺ¨λΈ νμ΅
model = LogisticRegression()
model.fit(X, y)
# μλ‘μ΄ λ°μ΄ν° μμΈ‘
new_data = [[0.2, 0.4]] # μμΈ‘ν λ°μ΄ν°
predicted_class = model.predict(new_data)
print(f"μμΈ‘ κ²°κ³Ό: {'μ€νΈ' if predicted_class[0] == 1 else 'μ μ'}")
# μμΈ‘ κ²°κ³Ό: μ μ
- Linear Regressionμ λ°νμ¬λ λ€μκΈμ μμΈν μ μ΄μ μ€κ² μ΅λλ€..
Summary
Supervised Learning, μ§λνμ΅μμ κ°μ₯ μ€μν κ²μ λ°μ΄ν° νμ§κ³Ό μκ³ λ¦¬μ¦ μ νμ΄λΌκ³ μκ°ν©λλ€.
λ°μ΄ν°κ° μΆ©λΆν μμ§λκ³ λΌλ²¨λ§μ΄ μλμ΄ μμ΄μΌ λͺ¨λΈμ΄ μ λλ‘ νμ΅λλ€κ³ μκ°ν©λλ€.
λν, μ¬μ©μκ° κ°μ§κ³ μλ λ¬Έμ μ νΉμ±κ³Ό λ°μ΄ν°μ νΉμ±μ λ§λ μκ³ λ¦¬μ¦μ μ ννλ κ²μ΄ μ€μν©λλ€.
μλ₯Ό λ€μ΄, λ°μ΄ν°κ° λ§€μ° λ§κ³ 볡μ‘νλ€λ©΄ λλ€ ν¬λ μ€νΈλ μν¬νΈ λ²‘ν° λ¨Έμ κ°μ κ°λ ₯ν μκ³ λ¦¬μ¦μ΄ νμν μ μμ΅λλ€.
λ§μ§λ§μΌλ‘, λͺ¨λΈμ μ±λ₯μ νκ°νκ³ κ°μ νκΈ° μν΄ κ΅μ°¨ κ²μ¦(cross-validation), νμ΄νΌνλΌλ―Έν° νλ(hyperparameter tuning) λ±μ νμ©νμ¬ μ΅μ μ λͺ¨λΈμ μ ννκ³ μμΈ‘ μ νλλ₯Ό λμ¬μΌ ν©λλ€.
'π Machine Learning' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ML] Supervised Learning (μ§λνμ΅) (0) | 2024.08.06 |
---|---|
[ML] Modelμ νμ΅κ³Ό νκ° (0) | 2024.08.02 |
[ML] Naive Bayes (λμ΄λΈ λ² μ΄μ¦) (0) | 2024.08.01 |
[ML] Linear Regression (μ ννκ·) (0) | 2024.08.01 |
[ML] Machine Learning (λ¨Έμ λ¬λ) Intro (0) | 2024.07.28 |