Created at : 2024-10-31 17:55
Auther: Soo.Y
๐๋ฉ๋ชจ
Setup
X_train์ y_train์ ํ๋ค์ค ๋ฐ์ดํฐํ๋ ์ ํ์ ์ผ๋ก ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค. experiment_name์ ์คํ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค.
from pycaret.classification import ClassificationExperiment
s= ClassificationExperiment()
s.setup(
ย ย data=X_train,
ย ย target=y_train,
ย ย experiment_name='cold_disease',
ย ย verbose=True,
ย ย normalize=True,
)
compare_models
compare_models
๋ก ๋ค์ํ ๋ชจ๋ธ(๊ฐ์ ๊ฐ๋ณ ๋ชจ๋ธ ๊ฒฐ๊ณผ์) ์ฑ๋ฅ์ ๋น๊ตํ์ฌ best ๋ชจ๋ธ์ ๋ง๋ญ๋๋ค. best model์ n_select
๋ก ๋ญํน ์์์ ํด๋นํ๋ ๋ชจ๋ธ์ ์ ํํ ์ ์์ต๋๋ค. exclude
์์ ์ ์ธํ๊ณ ์ถ์ ๋ชจ๋ธ์ ์ ํํ ์ ์์ต๋๋ค.
best = s.compare_models(
ย ย sort='F1',
ย ย fold=10,
ย ย n_select=3,
ย ย exclude=['lightgbm'],
)
print(best)```
# tune_model
`tune_model`๋ก best model์์ ํ๋์ ์ํํฉ๋๋ค.
```python
tuned_models = [s.tune_model(model) for model in best]
print(tuned_models)
blend_models
blend_models
๋ฅผ ์ฌ์ฉํด์ ์กฐํฉ๋ ๋ชจ๋ธ(Voting)์ ๋ง๋ญ๋๋ค. optimize
๋ฅผ ์ฌ์ฉํด์ ์ด๋ค ํ๊ฐ ์งํ๋ก ํ๋ํ ์ง ์ ํํฉ๋๋ค. ๊ธฐ๋ณธ ๊ฐ์ Accuracy๋ก ๋์ด ์์ด์ ๋ง์ฝ ์ ํ๋๊ฐ ์ค์ํ ์ํฉ์ด ์๋๋ฉด ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
blended_model = s.blend_models(estimator_list=tuned_models, optimize='F1')
print(blended_model)
finalize_model
finalize_model
์ ์ฌ์ฉํด์ ์ต์ข
๊ฒฐ์ ๋ ๋ชจ๋ธ์ ๋ํด์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต์ ํฉ๋๋ค.
final_model = s.finalize_model(blended_model)
print(final_model)
predict_model
predict_model
์ ์ฌ์ฉํด์ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํฉ๋๋ค. raw_score=True
์ ์ค์ ํ๋ฉด label์ ๋ํ ํ๋ฅ ๊ฐ์ ๊ฐ์ด ๋ง๋ญ๋๋ค. (๋จ, ๋ชจ๋ธ์์ ํ๋ฅ ๊ฐ์ด ์์ผ๋ฉด ์์ฑ์ด ์๋ฉ๋๋ค.)
predictions = s.predict_model(final_model, data=X_valid, raw_score=True)
predictions
save_model
save_model
์ ์ฌ์ฉํด์ ๋ชจ๋ธ์ ์ ์ฅํฉ๋๋ค. pkl ํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
s.save_model(final_model, 'model_name')
load_model
load_model
์ ์ฌ์ฉํด์ ์ ์ฅ๋ ๋ชจ๋ธ์ ๋ถ๋ฌ์ต๋๋ค.
s.load_model('model_name)