π μ€μ΅ λ΄μ© μμ½
- 0501
- λ¨Έμ λ¬λμ μ§λνμ΅μ λΆλ₯λ₯Ό μ¬μ©νλ Scikit-learn API κΈ°μ΄
- DecisionTree λ₯Ό μ€μ΅(μμΉλ°μ΄ν°λ§ μ¬μ©)
- 0502
- λ²μ£Όν λ°μ΄ν°λ₯Ό μΈμ½λ©(μμΉλ°μ΄ν°λ‘ λ³ν)
- One-Hot-Encoding(
pd.get_dummies
)
- RamdomForest
- 0503
- One-Hot-Encoding(scikit-learn)
- μΈλνΌν
, μ€λ²νΌν
μ νκ°ν λ train, test λ κ°μ§ λ°μ΄ν°μ λν μ μλ₯Ό λΉκ΅
- κΈ°μ‘΄μλ testλ°μ΄ν°μ λν΄μλ§ νκ°νλλ° train λ°μ΄ν°λ‘ νκ°ν΄λ³Ό μμ
- cross validation κΈ°λ²μ μ¬μ©ν΄μ νκ°
π μ€λ²νΌν
, μΈλνΌν
- μΈλνΌν
μ λͺ¨λΈμ΄ νμ΅ μ€λ₯λ₯Ό μ€μ΄μ§ λͺ»νλ μν©
- μ€λ²νΌν
μ λͺ¨λΈ νμ΅ μ€λ₯κ° ν
μ€νΈ λ°μ΄ν°μ μ€λ₯λ³΄λ€ ν¨μ¬ μμ κ²½μ°λ₯Ό μλ―Έ
- λ κ·Έλνμ μ°¨μ΄ : yμΆμ΄ loss, accuracy


π loss?
- μμΈ‘ν κ°κ³Ό μ€μ κ° μ¬μ΄μ μ°¨μ΄λ₯Ό λνλ΄λ μ§ν
ποΈ μνΈλ‘νΌ?
π§βπ νμ΅, μμΈ‘ λ°μ΄ν°μ
λλκΈ°(μ€μ΅)
-
μ λ΅κ°μ΄μ μμΈ‘ ν΄μΌν κ° = Churn
-
λ¬Έμ μ λ΅μ λλκΈ°
- X(λ¬Έμ ) : λ
립λ³μ, 2μ°¨μ νλ ¬
- y(μ λ΅) : μ’
μλ³μ, 1μ°¨μ 벑ν°
- X, y νμ μκ° κ°μμ§ νμΈ(μ€μ!!!!!)
-
νμ΅κ³Ό μμΈ‘μΌλ‘ λλκΈ°
- X_train : μνμ κΈ°μΆλ¬Έμ
- y_train : κΈ°μΆλ¬Έμ μ λ΅
- X_test : μ€μ λ¬Έμ
- y_test : μ€μ λ¬Έμ μ λ΅
-
train_test_split
무μμλ‘ λ°μ΄ν°μ
μ trainκ³Ό testλ‘ λλ
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
stratify
: λ³΄ν΅ λ²μν λ μΈ΅ννμ§μΌλ‘ λ²μνκΈ°λ ν¨
sklearn.model_selection.StratifiedKFold
ποΈ Training λ°μ΄ν°λ₯Ό λλ λ μ‘°μ¬ν΄μΌν κ²
- νμ΅ λͺ¨λΈμ λ§λ€μλλ° μ νλκ° 99%κ° λμ¬ κ²½μ°? (μ€μλλ¬Έμ΄λΌλ©΄)
- μ λ΅μ νμ΅ λ°μ΄ν°μ ν¬ν¨μν€λ©΄ μ λλ‘ νμ΅νκΈ° μ΄λ €μ
- λ°μ΄ν° λμ! (Data Leakage)
- λ―Έλμ λν μ ν μ μ μλ μ λ³΄κ° λͺ¨λΈ νμ΅μμ μ¬μ©λ κ²½μ°
- testλ°μ΄ν°κ° νμ΅μ μ΄μ©λ κ²½μ°
- λμκ° λ°μ β λͺ¨λΈμ μ¬μ©νμ¬ μμ¬ κ²°μ μ λ΄λ¦¬κΈ° μ κΉμ§λ λͺ¨λΈμ΄ μ νν΄λ³΄μ But κ·Έ μ΄νμλ λͺ¨λΈμ΄ λ§€μ° λΆμ ν
- ν΄μ»€ν€(κ²½μ§λν) νΉμ± μ, 리λ보λ μ μΆμ μν΄ μΆλ‘ μ μ¬μ©λ testλ°μ΄ν° λ€μ΄ μ¬μ μ μ£Όμ΄μ§μ§λ§, μ€μ λͺ¨λΈμ μλΉμ€νλ νκ²½μμλ test λ°μ΄ν°λ€μ΄ μ΄λ ν λ°μ΄ν°λ€μ΄ λͺ κ°κ° μ
λ ₯μΌλ‘ λ€μ΄μ¬μ§ λͺ¨λ₯Έλ€.
π₯ One-Hot-Encoding
-
Ordinal encoding = λ²μ£Όν λ³μμ μ ν΄μ§ μμλ λ±κΈμ΄ μμ λ μ¬μ©
-
One hot encoding = λ²μ£Όν λ³μμ λͺ¨λ κ°μ μ΄μ§μ(binary)λ‘ νννλ λ°©λ²
-
μ₯λ¨μ
|
μ₯μ |
λ¨μ |
Ordinal encoding |
λ²μ£Όν λ³μμ μμλ λ±κΈμ λ°μνμ¬ μ 보λ₯Ό μ μ§ |
λ³μμ ν¬κΈ°κ° μμμ μκ΄ μμ΄ μ«μλ‘ ννλκΈ° λλ¬Έμ λͺ¨λΈ νμ΅μ λ¬Έμ κ° λ°μ |
One hot encoding |
λ²μ£Όν λ³μμ λͺ¨λ κ°μ κ³ λ €νμ¬ μ 보λ₯Ό μ μ§ |
λ³μκ° λ§μμ§μλ‘ λ³νλ λ³μμ μ°¨μμ΄ λμ΄λκ² λμ΄ λͺ¨λΈ νμ΅μ νμν λ°μ΄ν°μ μμ΄ μ¦κ° |
- μ₯μ
- λͺ¨λ λ¨Έμ λ¬λ μκ³ λ¦¬μ¦μμ μ¬μ©κ°λ₯
- λ²μ£Όν λ³μλ₯Ό μ«μν λ³μλ‘ λ³ννλ©΄μ, λͺ¨λΈμ΄ λ³μμ μκ΄κ΄κ³λ₯Ό μ΄ν΄ν μ μλ€.
- λ²μ£Όν λ³μμ μΉ΄ν
κ³ λ¦¬κ° λ§μμ Έλ μ μ©ν μ μλ€.
- λ¨μ
- μΉ΄ν
κ³ λ¦¬κ° λ§μ κ²½μ°, λ³μμ μ°¨μμ΄ λμ΄λ¨
- λ²μ£Όν λ³μμ μΉ΄ν
κ³ λ¦¬ μκ° μ μ κ²½μ°, ν¬μ νλ ¬μ΄ μμ±
- λ©λͺ¨λ¦¬μ μ²λ¦¬ μλμ λΆλ΄λ μ μλ€.
-
λμμ£Όλ ν¨μ pd.get_dummies
π₯ pd.get_dummies
pandas.get_dummies β pandas 1.5.3 documentation
- One-hot-encoding
-
X_rawμ μ»¬λΌ InternetService
μμ DSLμΌ λ 1μΈ μ»¬λΌμ μμ±νκΈ° μν μ½λ
X_raw['InternetService_DSL'] = X_raw['InternetService'] == 'DSL'
-
μλλ μ΄λ κ² νλνλ ν΄μ€μΌνμ§λ§ λ~무 λ§μμ λ€ λͺ»ν¨
- train, testμ Featureλ₯Ό λμΌνκ² λ§λ€μ΄μ£ΌμΌ νμ΅κ³Ό μμΈ‘μ ν λ μ€λ₯κ° μκΈ°μ§ μμ
- train, testλ₯Ό κ°κ° λ°λ‘ μΈμ½λ©νλ©΄, μ»¬λΌ μμ, κ°μκ° λ¬λΌμ§ μ μμ.
- λ€λ₯Έ featureλ₯Ό μ¬μ©νλ©΄ νμ΅νμ λ, μ€λ₯κ° λ°μνκΈ° λλ¬Έμ trainμΌλ‘ λ§μΆ°μ£Όλ μμ
μ΄ νμ
- scikit-learnμμ fit, transformμ ν λ, trainμλ§ fitμ ν΄μ£Όλ μ΄μ λ κ°λ€.
- μμμ 컬λΌμ
_
μΈλλ°λ₯Ό μΆκ°νμ¬ κ°μ μΆκ°ν΄μ£Όκ³ λ¬Έμλ₯Ό μμμ λ°κΏμ€!
- μμΉν λ³μλ μΈμ½λ©μ΄ λ μ μμ!!
- One-hot-encodingμ ν λ κ²°μΈ‘μΉλ κ³ λ €νμ§ μμ.
π« κ²°μΈ‘μΉλ₯Ό μ±μ°λ λ°©λ²
π€ ν¬μνλ ¬?
π² κ²°μ νΈλ¦¬ νμ΅λ²
π² RandomForest