Jayden`s
[TIL]30.Evaluation Metrics for Classification(Precision, Recall, f1score, threshold, ROC curve, AUC)
๋ชฉํ Counfusion Matrix์ ๋ํ ์ดํด ๋ฐ ํด์ ์ ๋ฐ๋, ์ฌํ์จ์ ์ดํดํ๊ณ ์ฌ์ฉ ROC Curve, AUC score์ ๋ํ ์ดํด feature engineering ํ def engineer(df): """ํน์ฑ์ ์์ง๋์ด๋ง ํ๋ ํจ์์ ๋๋ค.""" # ์๋ก์ด ํน์ฑ์ ์์ฑํฉ๋๋ค. behaviorals = [col for col in df.columns if 'behavioral' in col] df['behaviorals'] = df[behaviorals].sum(axis=1) # 'behavioral'์ด๋ผ๋ ๋จ์ด๊ฐ ํฌํจ๋ column์ ๋ํด์ sumํ ์๋ก์ด ๋ณ์ ๋ง๋ค๊ธฐ # ๊ณ์ ๋ ๊ฐ(seas)์ ๋ํ ๋ชจ๋ธ์ ํ์ตํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ h1n1์ ๋ํ ํน์ฑ์ ์ ๊ฑฐํฉ๋๋ค. dels = [col for ..
category_encoders(TargetEncoder, CatBoostEncoder) ๊ทธ๋ฆฌ๊ณ Ordinal๊ณผ OneHot encoder
1. ์์ ์์ ์ธ๊ธ๋์ง ์์ ๋ค๋ฅธ ์ข ๋ฅ์ category_encoders๋ฅผ 2๊ฐ ์ด์ ์ฌ์ฉํด ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํด ๋ณด์๊ณ , ๋ค์ ์ง๋ฌธ์ ๋ํด ์๋ก ๋ ผ์ํด ๋ณด์ธ์. ์ฌ์ฉํ์ encoder๋ ๊ฐ๊ฐ ์ด๋ค ์ฅ๋จ์ ์ ๊ฐ๊ณ ์์ผ๋ฉฐ, ์ด๋ค ์ํฉ์์ ์ฌ์ฉํ๋ฉด ์ข์๊น์? ์ฌ๋ฌ ์ธ์ฝ๋ ์ค TargetEncoder์ CatBoostEncoder๊ฐ ๊ฐ์ฅ ํฅ๋ฏธ๊ฐ ์๊ฒจ ์ ์ฉํด๋ณด์์ต๋๋ค. OrdinalEncoder(๊ธฐ์ค) ํผํ ์ ์๊ฐ : 4.27 s ์ ํ๋ ๋ฐ f1 score ํน์ฑ ์ค์๋ TargetEncoder ํผํ ์ ์๊ฐ : 5.29 s ์ ํ๋ ๋ฐ f1 score ํน์ฑ ์ค์๋ CatBoostEncoder ํผํ ์ ์๊ฐ : 14.1 s ์ ํ๋ ๋ฐ f1 score ํน์ฑ ์ค์๋ ๋ ๊ฐ์ง์ ์ธ์ฝ๋๋ฅผ ์ค์ ํ ์ด์ ๋ ์์ธํ๋ ๋ชจ๋ฅด์ง๋ง, Ca..
[TIL]29.RandomForest(๋๋คํฌ๋ ์คํธ)
๋ชฉํ RandomForest์ ๋ํ ์ดํด Ordinal encoding(์์ํ ์ธ์ฝ๋ฉ)๊ณผ OneHot encoding(์ํซ ์ธ์ฝ๋ฉ)์ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉ ๋ฒ์ฃผํ ๋ณ์์ ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ์ด ํธ๋ฆฌ๋ชจ๋ธ๊ณผ ์ ํํ๊ท ๋ชจ๋ธ์ ์ฃผ๋ ์ํฅ์ ๋ํด ์ดํด ๋ค์ด๊ฐ๊ธฐ ์ ๋ฐ์ดํฐ๊ฐ ์ ํ/๋น์ ํ ์๊ด์์ด ๋ถ๋ฅ๋ฌธ์ ์ ์ ๊ธํ ๋ ๋๋คํฌ๋ ์คํธ๋ฅผ ๋จผ์ ์ ์ฉํด๋ณด๋ ๊ฒ์ ์ถ์ฒ ๊ฒฐ์ ํธ๋ฆฌ๋ชจ๋ธ : ํ๊ฐ์ ํธ๋ฆฌ๋ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ ๋ ธ๋์์ ์๊ธด ์๋ฌ๊ฐ ํ๋ถ ๋ ธ๋์์๋ ๊ณ์ ์ํฅ์ ์ค๋๋ค. ๋ํ, ํธ๋ฆฌ์ ๊น์ด์ ๋ฐ๋ผ ๊ณผ์ ํฉ๋๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋๋คํฌ๋ ์คํธ๋ฅผ ํตํด ํด๊ฒฐ ํ %%time # ์ ์คํํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ ๋ณด์ฌ์ค RandomForest(๋๋คํฌ๋ ์คํธ) ๋๋คํฌ๋ ์คํธ๋ Ensemble(์์๋ธ) ๋ฐฉ๋ฒ ์์๋ธ ๋ฐฉ๋ฒ์ ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ก ์ฌ๋ฌ ๋จธ์ ..
์๊ฐํ๋ฅผ ํตํด ํ์ธํ Imputer์ ์ฐจ์ด
2๊ฐ ์ด์์ imputer๋ฅผ ์ฌ์ฉํด ๊ฐ๊ฐ ํน์ฑ-ํ๊ฒ ๊ด๊ณ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค ๊ณต์ ํ๊ณ ๋ค์ ์ง๋ฌธ์ ๋ํด ์๋ก ๋ ผ์ํด ๋ณด์ธ์. ๋จผ์ ํน์ฑ์ค์๋์์ ๊ฐ์ฅ ์ค์๋๊ฐ ๋๊ฒ ๋์จ 'doctor_recc_h1n1' ํน์ฑ์ ๋ํด์๋ง Imputer ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ํ๊ฒ์์ ๊ด๊ณ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์์ต๋๋ค. seaborn plots ์ฌ์ฉํ์ฌ ๊ด์ฌ์๋ ํน์ฑ๋ค๊ณผ target๊ฐ์ ๊ด๊ณ๋ฅผ ๊ทธ๋ํ๋ก ๋ํ๋ด ๋ณด์ธ์. Imputer๋ฅผ ์ ์ฉํ์ง ์์์ ๋ ๋ณ์์ ํ๊ฒ ๋ชจ๋ binaryํ ๊ฐ์ผ๋ก 0๊ณผ 1์ ๋ํ ๊ฐ๋ค๋ง ์ฐํ๋ ๊ฒ์ด ๋ณด์ ๋๋ค. SimpleImputer(strategy='mean') ์ ์ฉ ์ imputer1 = SimpleImputer(strategy='mean') train_imp1 = im..
[TIL]28.Decision Tree(์์ฌ๊ฒฐ์ ๋๋ฌด)
๋ชฉํ ์ฌ์ดํท๋ฟ ํ์ดํ๋ผ์ธ(pipeline) ์ดํด ์ฌ์ดํท๋ฐ ๊ฒฐ์ ํธ๋ฆฌ(decision tree) ์ดํด ๊ฒฐ์ ํธ๋ฆฌ์ ํน์ฑ ์ค์๋(feature importance)๋ฅผ ํ์ฉ ๊ฒฐ์ ํธ๋ฆฌ ๋ชจ๋ธ์ ์ฅ์ ์ ์ดํดํ๊ณ ์ ํํ๊ท๋ชจ๋ธ๊ณผ ๋น๊ต ๊ฐ๋จํ ๋ฐ์ดํฐ ํ์ธ ํ train.head().T # Transpose ์ฌ์ฉํ์ฌ feature์ ๋ํด ๋ณด๊ธฐ ํธํ๊ฒ # target์ ๋ํด ํ๊ท์ ๋ถ๋ฅ ์ค ์ด๋ ๊ฒ์ผ๋ก ํ ์ง ํ๋จ ๊ฐ๋ฅ/ ๋ถ๋ฅ๋ฌธ์ ๋ผ๋ฉด ์ต๋น๊ธฐ์ค๋ชจ๋ธ ์ ํ๋ ๊ธฐ์ค, ๋ฐ์ดํฐ ๋ถํฌ ํ์ธ train[target].value_counts(normalize=True) # ProfileReport !pip install pandas-profiling==2.8.0 --user # ์ต์ ์ด ์๋๋ฉด ์๋ฌ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ from pandas_pro..