๋ถํธ์บ ํ์์ ์งํํ ๋จธ์ ๋ฌ๋ ๊ฒฝ์ง๋ํ๋ฅผ ํตํด, ๊ณต๊ณต๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ธ์ ์ํํธ ๊ฐ๊ฒฉ์ ์์ธกํ๋ ํ๋ก์ ํธ๋ฅผ ์ํํ์ต๋๋ค. ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ถํฐ ๋ชจ๋ธ๋ง, ๊ทธ๋ฆฌ๊ณ AutoML๊น์ง์ ํ๋ฆ์ ์ ๋ฆฌํ๋ฉด์, ์ค์ ๊ฐ๊ฐ์ ์ตํ๋ ๋ฐ ํฐ ๋์์ด ๋์๋ ๊ฒฝํ์ ์์ฑํด๋ด ๋๋ค.
train.csv: ๊ฑฐ๋๊ฐ ํฌํจ๋ ํ์ต์ฉ ๋ฐ์ดํฐ์ (์ฝ 111๋ง ๊ฑด)
test.csv: ์์ธก์ ์ํ ํ ์คํธ์ (์ฝ 9์ฒ ๊ฑด)
bus_feature.csv: ๋จ์ง๋ณ ๋ฒ์ค์ ๋ฅ์ฅ ํต๊ณ
subway_feature.csv: ๋จ์ง๋ณ ์งํ์ฒ ํต๊ณ

One-Hot Encoding: ๋ฒ์ฃผํ ๋ณ์(์๊ตฐ๊ตฌ, ๊ฑฐ๋์ ํ ๋ฑ)์ ๋ํด ์ ์ฉ
Missing ์ฒ๋ฆฌ: ๊ฒฐ์ธก ๋น์จ์ด ๋๊ณ ์ค์๋๊ฐ ๋ฎ์ ๋ณ์๋ ์ ๊ฑฐํ๊ฑฐ๋ ํ๊ท /์ต๋น๊ฐ์ผ๋ก ๋์ฒด
์งํ์ฒ /๋ฒ์ค ์ ๋ณด ๋ณํฉ: ๋จ์ง ๋จ์๋ก aggregation ํ ์ํํธ ๋ฐ์ดํฐ์ ์กฐ์ธ
import matplotlib.pyplot as plt
plt.scatter(train_df['์ ์ฉ๋ฉด์ (ใก)'], train_df['๊ฑฐ๋๊ธ์ก(๋ง์)'], alpha=0.3)
plt.xlabel("์ ์ฉ๋ฉด์ (ใก)")
plt.ylabel("๊ฑฐ๋๊ธ์ก(๋ง์)")
plt.title("์ ์ฉ๋ฉด์ vs ๊ฑฐ๋๊ธ์ก")
plt.show()
train_df["์ํํธ๋ช
_ํ๊ท ๊ฐ"] = train_df.groupby("์ํํธ๋ช
")["๊ฑฐ๋๊ธ์ก(๋ง์)"].transform("mean")
from lightgbm import LGBMRegressor
model = LGBMRegressor(num_leaves=64, max_depth=7, learning_rate=0.05, n_estimators=1000)
model.fit(X_train, y_train, eval_set=[(X_valid, y_valid)], early_stopping_rounds=50)
from autogluon.tabular import TabularPredictor
predictor = TabularPredictor(label='๊ฑฐ๋๊ธ์ก(๋ง์)', eval_metric='rmse').fit(train_data=train_df)

๋ง์ง๋ง ๋จ๊ณ์์๋ Amazon์ AutoML ํ๋ ์์ํฌ์ธ AutoGluon์ ํ์ฉํ์ต๋๋ค. ์ด ํ๋ ์์ํฌ๋ ์ฌ๋ฌ ๋ชจ๋ธ(LGBM, XGB, NeuralNet ๋ฑ)์ ์กฐํฉํ๊ณ , Stacking/Bagging ์์๋ธ๊น์ง ์๋์ผ๋ก ์ํ
[์ฅ์ ]
๋ณต์กํ ํ๋ผ๋ฏธํฐ ํ๋ ์์ด๋ ์ค์ํ ์ฑ๋ฅ
๋ค์ํ ๋ชจ๋ธ ์กฐํฉ์ ํตํ ์คํํน ์์๋ธ
Validation Set ๋ถํ ์๋ํ
from autogluon.tabular import TabularPredictor
predictor = TabularPredictor(label="๊ฑฐ๋๊ธ์ก(๋ง์)").fit(train_data=train_df)
EDA์ ํผ์ฒ ์์ง๋์ด๋ง์์ ์๊ฐ ์์ (๊ฐ์ฅ ๋ง์ด ๋๊ณ ๊ฐ์ฅ ์ค์ํ๋ฏ)
AutoML์ ์ฌ์ฉํ๋ฉด์ baseline ๋ชจ๋ธ์ ์ดํดํ๊ณ ๋น๊ตํ๋ ๊ณผ์ ์ด ์ค์ํจ์ ๋๋
ํฅํ์๋ ์๊ณ์ด ๊ณ ๋ ค ๋๋ ์ง์ญ๋ณ ๋ชจ๋ธ ๋ถ๋ฆฌ ๋ฑ์ ๊ณ ๋ํ๋ฅผ ๊ณ ๋ คํ ์์
๋ถ๋์ฐ์ด๋ผ๋ ์ค์ํ๊ณผ ๋ฐ์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ค๋ณด๋ฉฐ, ๋จธ์ ๋ฌ๋์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ์์ฌ๊ฒฐ์ ์ ๋์์ ์ค ์ ์๋์ง ์ฒด๊ฐํ ์ ์์์