๐ค ์ ์กฐ์ ์์ ๋ฐ์ดํฐ ๊ณผํ๊ณผ ๋จธ์ ๋ฌ๋์ด ์ด๋ค ๋์์ ์ค ์ ์์๊น?
1) ํ์ง ๊ด๋ฆฌ
์ ํ์ ์์ฐ ๊ณผ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ค์ํ ๋ณ์๋ค์ ๋ชจ๋ธ ์์์ ๊ณ์ฐํ๊ณ ํต์ ํ ์ ์๋ค. ์ด๋ฅผ ํตํด์ ์์ ์ ์ธ ์์ฐ๊ณผ ๊ณต๊ธ์ด ๊ฐ๋ฅํด์ง๋ค.
2) ์๋ฐฉ ์ ๋น
์ฅ๋น๊ฐ ๊ณ ์ฅ๋๊ธฐ ์ ์ ์งํ๋ฅผ ํตํด ๊ณ ์ฅ ์๊ธฐ๋ฅผ ์์ธกํ๊ณ ์๋ฐฉ ์ ๋น๋ฅผ ํ ์ ์๋๋ก ๋๋๋ค. ์ฅ๋น ๊ณ ์ฅ์ผ๋ก ์ธํ ์์ฐ๋ ์ ํ๋ฅผ ๋ฐฉ์งํ๊ณ , ์ฅ๋น ์ ๋น์ ๋๋ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
3) ์์ ์์ธก
์ ํํ๊ฒ ์์๋ฅผ ์์ธกํจ์ผ๋ก์จ ์์ฐ ๊ณํ์ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋๋ค. ๊ตฌ์ฒด์ ์ธ ์์ฐ ๊ณํ์ ์์ฐ์ ํจ์จ์ฑ ๋ฟ ์๋๋ผ ์์ต์ฑ์ ๋์ผ ์ ์๋ค.
4) ํ๋ก์ธ์ฑ ์กฐ๊ฑด
์์ฐ ๊ณผ์ ์์ ์ฌ๋ฌ ๋ณ์๋ค์ ์ญํ๊ด๊ณ ํ์
์ ์๋ํํ์ฌ ๊ณต์ ์ ์ต์ ํํ ์ ์๋ค.
5) ์ฐ๊ตฌ ๊ฐ๋ฐ
์์ฐ ๊ณผ์ ์์ ์ป์ด๋ธ ๋น
๋ฐ์ดํฐ์ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋จธ์ ๋ฌ๋์ ์๋ก์ด ์ ํ์ ๊ฐ๋ฐํ๊ฑฐ๋ ๋ค๋ฅธ ๊ธฐ์
๊ณผ ํ์
ํ ๋ ์ข์ ๊ธฐ๋ฐ์ด ๋๋ค.
6) ์ค๋งํธ ์ ํ
์ ํ์ ์์ฐ ๊ณผ์ ์ ๋ชจ๋ธํํจ์ผ๋ก์จ ๊ฐ๋ณ ๊ณ ๊ฐ์ ๋ง์ถคํ ์ ํ์ ์ ๊ณตํ ์ ์๊ฒ ๋๋ค.
Bagging: ์ค๋ฒํผํ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ
Boosting: ๊ฐ๋ณ ํธ๋ฆฌ์ ์ฑ๋ฅ์ด ์ค์ํ ๋ ์ฌ์ฉ
Boosting model์ ์๊ฐํ๊ฐ ๊ฐ๋ฅํ๋ค. ์์ฐจ์ ์ผ๋ก ํธ๋ฆฌ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ์ "๋ช ๋ฒ์งธ ํธ๋ฆฌ ๊ทธ๋ ค์ค"๋ผ๊ณ ํ๋ฉด ํด๋น ํธ๋ฆฌ๋ฅผ ์๊ฐํํ ์ ์์.
โ๏ธ Gradient ๋ชจ๋ธ์ learning rate์ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ฐจ์ด๊ฐ ์์
XGBoost๋ GBT์์ ๋ณ๋ ฌ ํ์ต์ ์ง์ํ์ฌ ํ์ต ์๋๊ฐ ๋นจ๋ผ์ง ๋ชจ๋ธ
๐ก ๋ถ์คํ ํ๋ผ๋ฏธํฐ
๐ก ์ผ๋ฐ ํ๋ผ๋ฏธํฐ
๐ก ํ์ต๊ณผ์ ํ๋ผ๋ฏธํฐ
๐ก ๋ฏผ๊ฐํ๊ฒ ์กฐ์ ํด์ผํ๋ ๊ฒ
๐ก ๊ณผ์ ํฉ ๋ฐฉ์ง๋ฅผ ์ํด ์กฐ์ ํด์ผํ๋ ๊ฒ
: Microsoft์์ ๊ฐ๋ฐํ ๋จธ์ ๋ฌ๋์ ์ํ ๋ฌด๋ฃ ์คํ์์ค ๋ถ์ฐ ๊ทธ๋๋์ธํธ ๋ถ์คํ ํ๋ ์์ํฌ
EFB(Exclusive Feature Bundling) & GOSS(Gradient based One Side Sampling)
GOSS: ํ์ ์ค์ธ๋ค.
EFB: ์ด์ ์ค์ธ๋ค.
์ผ๋ฐ์ ์ธ GBM ๊ณ์ด์ ํธ๋ฆฌ ๋ถํ ๋ฐฉ์์ ๊ท ํ ํธ๋ฆฌ ๋ถํ (Level Wise) ๋ฐฉ์์ ์ด์ฉ
๋ฐ๋ฉด์,
๐ก Parameters
๊ธฐ์กด ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น๊ตํ์ฌ ์์ด ๊ธฐ๋ฐ ๋์์ ์ฌ์ฉํ์ฌ ๋ฒ์ฃผํ ๊ธฐ๋ฅ์ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ๋ ๊ทธ๋ ๋์ธํธ ๋ถ์คํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ ์์ํฌ๋ฅผ ์ ๊ณต
๐ก ์ฅ์
1) ๊ณผ์ ํฉ์ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ถ์คํ
์ฃผ๋ฌธ
2) ๋ฒ์ฃผํ ๊ธฐ๋ฅ์ ๋ํ ๊ธฐ๋ณธ ์ฒ๋ฆฌ
3) ๋น ๋ฅธ GPU ํ๋ จ
4) ๋ชจ๋ธ ๋ฐ ๊ธฐ๋ฅ ๋ถ์์ ์ํ ์๊ฐํ ๋ฐ ๋๊ตฌ
5) ๊ณผ์ ํฉ์ ๊ทน๋ณตํ๊ธฐ ์ํด ์์๊ฐ ์๋ ๋ถ์คํ
์ ์ฌ์ฉ
6) ์ด๋ฆ ๊ทธ๋๋ก ๋ฒ์ฃผํ ํน์ฑ์ ์ ์ฒ๋ฆฌํจ
7) ๋ ๋น ๋ฅธ ์คํ์ ์ํด Oblivious Trees ๋๋ Symmetric Trees ์ฌ์ฉ
๐ก ๋จ์
1) CatBoost ๋ ํฌ์ ํ๋ ฌ์ ์ง์ ํ์ง ์์
2) ๋ฐ์ดํฐ ์ธํธ์ ์์นํ ํ์
์ด ๋ง์ ๋ CatBoost๋ LightGBM๋ณด๋ค ํ๋ จํ๋ ๋ฐ ์๋์ ์ผ๋ก ๋ง์ ์๊ฐ์ด ์์
๐ก ํน์ง
๐ก Main parameters
(ํด๋น ์ค์ต์ ์ค์น ์ด์๋ก ์ธํด colab์ผ๋ก ์งํํจ)
๐ก XGBoost ์๊ฐํ
xgb.plot_tree(model_xgb, num_trees=1)
fig = plt.gcf()
fig.set_size_inches(30, 20)
๐ก
- ๋ฐ์ดํฐ๊ฐ category ํ์ ์ผ๋ก ๋์ด์์ผ๋ฉด LightGBM, CatBoost์์ ์ธ์ฝ๋ฉ์ด ํ์์๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ์ง ์๊ณ category ํํ๋ก ๋ฃ์ด์ฃผ๋ฉด ์์์ ํ์ตํ๋ค.
์ ํ๋(Accuracy)๊ฐ ๋๋ค๊ณ ํด์ ์ ์ฉํ๊ธฐ ์ด๋ ต๋ค. ํฌ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์์ธกํ๋ ๊ฒ์ด, ์ ์ฒด ๋ฐ์ดํฐ์ ๋ํ ์ ํ๋๋ณด๋ค ์ค์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค.
ํ์ค์์ ๋ง์ฃผ์น๋ ๋ง์ ๋ฐ์ดํฐ๋ค์ด ๋ถ๊ท ํ ๋ฐ์ดํฐ์ด๊ธฐ ๋๋ฌธ์ ์ ํ๋ ์ธ์ ๋ค๋ฅธ ์ธก์ ์งํ๊ฐ ํ์ํ๋ค.
๋ถ๊ท ํ๋ฐ์ดํฐ์์ ํผ๋ํ๋ ฌ์ด ํ์ํ ์ด์ ๋, ๋ง์ฝ์ ๋ด๊ฐ ๋ง๋ ๋ชจ๋ธ์ด ํน์ ์ง๋ณ์ ํ์งํ๋ ๋ชจ๋ธ์ด๋ผ๊ณ ํ ๋ ์ค์ ๋ก ๋ง๋ค์ด์ง ๋ชจ๋ธ์ด ์ ๋ถ ๋ณ์ ๊ฑธ๋ ธ๋ค๊ณ ํ๋จํ๋ ๋ฉ์ฒญํ ๋ชจ๋ธ์ด ๋ง๋ค์ด์ก๋คํด๋, ์ค์ ์ํ ๋ฐ์ดํฐ๊ฐ 100๋ง๊ฐ๊ฐ ์ง๋ณ์ด ๊ฑธ๋ฆฐ ์ฌ๋์ ์ํ์ด๊ณ 10๊ฐ๋ง ์ง๋ณ์ด ๊ฑธ๋ฆฌ์ง ์์ ์ฌ๋์ ์ํ์ด๋ผ๋ฉด 99.99ํ๋ก๋ก ๋ด๊ฐ ๋ง๋ ๋ชจ๋ธ์ด ์ ํํ๊ฒ ์๋ํ๋ ๊ฒ ์ฒ๋ผ ๋ณด์ผ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฐ Accuracy์ ๋งน์ ์ ๋ณด์ํ๊ธฐ์ํด Precision๊ณผ Recall ๊ฐ์ ์งํ๊ฐ ํ์ํ๊ฒ ๋ฉ๋๋ค!
๐ก "1์ข ์ค๋ฅ == ๋จ์ ์์ " ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์กฐ๊ธ ๋ ์ ์ธ์์ง์ง๋..?
TN(True Negative, Negative Negative)
์ค์ ๋ ์์ ์ด ์๋๊ณ (0), ์์ ์ด ์๋ ๊ฒ(0)์ผ๋ก ์ ์์ธกํจ.
FP(False Positive, Negative Positive) - 1์ข
์ค๋ฅ
์ค์ ๋ ์์ ์ด ์๋๋ฐ(0), ์์ (1)๋ก ์์ธก
์คํธ๋ฉ์ผ์ด ์๋๋ฐ ์คํธ๋ฉ์ผ๋ก ์์ธก
๋ฌด๊ณ ํ ํผ๊ณ ์ธ์๊ฒ ์ ์ฃ๋ฅผ ์ ๊ณ
FN(False Negative, Positive Negative) - 2์ข
์ค๋ฅ
์ค์ ๋ ์์ ์ธ๋ฐ(1), ์์ ์ด ์๋ ๊ฒ(0)์ผ๋ก ์์ธก
์์ธ๋ฐ ์์ด ์๋ ๊ฒ์ผ๋ก ์์ธก
ํ์ฌ๊ฐ ๋ฌ๋๋ฐ ํ์ฌ๊ฐ ์๋๋ผ๊ณ ์์ธก
TP(True Positive, Positive Positive)
์ค์ ๋ ์์ ์ธ๋ฐ(1), ์์ (1)์ผ๋ก ์ ์์ธกํจ.
๐ก
- Precision: ์์ธก๊ฐ์ด 1์ธ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ณ์ฐ
- Recall: ์ค์ ๊ฐ์ด 1์ธ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ณ์ฐ
(TIP) ์ํ๋ฆฌ: ์์ธก 1 == ํ๋ฆฌ์์ , ์ค๋ฆฌ์ฝ: ์ค์ 1 == ๋ฆฌ์ฝ- F1 score: precision๊ณผ recall์ ์กฐํํ๊ท
๐ค "์ ๋ต์ธ๋ฐ ๋ชป ์ฐพ์ ๊ฒ์ด ๋ง๋ค."๋ผ๋ ๊ฒฐ๊ณผ๋ ์ธ์ ๋์ฌ๊น?
Recall์ด ๋ฎ์ ๋
๐ค "์ ๋ต์ด ์๋๋ฐ๋ ์ ๋ต์ด๋ผ๊ณ ํ ๊ฒ์ด ๋ง๋ค."๋ผ๋ ๊ฒฐ๊ณผ๋ ์ธ์ ๋์ฌ๊น?
Precision ์ด ๋ฎ์ ๋
๐ค Precision์ด ์ค์ํ ๊ฒฝ์ฐ
ex) ์คํธ ๋ฉ์ผ ๊ฒ์ถ์ ๊ฒฝ์ฐ
์คํธ ๋ฉ์ผ์ด๋ฉด ์ฐธ, ์คํธ ๋ฉ์ผ์ด ์๋๋ฉด ๊ฑฐ์ง์ด๋ผ๊ณ ํ ๋.
์คํธ ๋ฉ์ผ์ด ์๋๋ฐ ์คํธ ๋ฉ์ผ๋ก ํ๋จํด์ ์ฐจ๋จํด๋ฒ๋ฆฌ๋ฉด ์ค์ํ ๋ฉ์ผ์ ๋ฐ์ง ๋ชปํ ์ ์๋ค.
๐ค Recall์ด ์ค์ํ ๊ฒฝ์ฐ
ex) ์ ๊ฒ์ถ์ ๊ฒฝ์ฐ
์์ด ๊ฒ์ถ๋๋ฉด ์ฐธ, ๊ฒ์ถ๋์ง ์์ผ๋ฉด ๊ฑฐ์ง์ด๋ผ๊ณ ํ ๋.
์ค์ ๋ก ์์ ๊ฑธ๋ ธ๋๋ฐ, ๊ฑธ๋ฆฌ์ง ์์๋ค๊ณ ํ๋จํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฐ์ฅ ์ํ
ex) ์ง์ง
์ง์ง์ด ์ ๋ฌ์ผ๋ ๋ํผ๋ช
๋ น์ ํ ๊ฒ์ ์๋ช
๊ณผ๋ ์ง์ฅ์ด ์์ง๋ง ์ง์ง์ด ๋ฌ๋๋ฐ ๋ํผ๋ช
๋ น์ด ์๋ค๋ฉด ์๋ช
์ ์ํ
Q: ์ ํ
์ด๋ธ์์ ๊ธฐ์กด ํธ๋ฆฌ๋ชจ๋ธ์ ์์๋ ํ๋ผ๋ฏธํฐ ์ค์ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ผ๋ก ๋ณด์ฌ์ง๋ ํ๋ผ๋ฏธํฐ ๋ฌด์์ด ์์๊น์?
A: learning rate
Q: ์ learning_rate๊ฐ ๋ฎ์๋ n_estimator ๊ฐ์ ๋์ฌ์ผ ๊ณผ์ ํฉ์ด ๋ฐฉ์ง๋ ๊น์?
A: ํ์ตํ์ง ๋ง์์ผ ํ ๊ฒ๊น์ง ๋๋ฌด ์์ธํ ํ์ตํ๋ค ๋ณด๋ฉด ์ผ๋ฐํ ํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๊ณผ๋์ ํฉ์ด ๋ฉ๋๋ค.
learning_rate๋ฅผ ์ค์ธ๋ค๋ฉด ๊ฐ์ค์น ๊ฐฑ์ ์ ๋ณ๋ํญ์ด ๊ฐ์ํด์, ์ฌ๋ฌ ํ์ต๊ธฐ๋ค์ ๊ฒฐ์ ๊ฒฝ๊ณ(decision boundary) ์ฐจ์ด๊ฐ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค. n_estimators( == ํธ๋ฆฌ์ ์; ํ์ตํ์) ๋ฅผ ๋๋ฆฐ๋ค๋ฉด ์์ฑํ๋ ์ฝํ ๋ชจ๋ธ(weak learner == ๊ฐ๊ฐ์ ํธ๋ฆฌ)๊ฐ ๋์ด๋๊ฒ ๋๊ณ , ์ฝํ ๋ชจ๋ธ์ด ๋ง์์ง๋งํผ ๊ฒฐ์ ๊ฒฝ๊ณ(decision boundary)๊ฐ ๋ง์์ง๋ฉด์ ๋ชจ๋ธ์ด ๋ณต์กํด์ง๊ฒ ๋ฉ๋๋ค.
์ฆ, ๋ถ์คํ ์๊ณ ๋ฆฌ์ฆ์์ n_estimators์ learning_rate๋ trade-off ๊ด๊ณ์ ๋๋ค.
n_estimators(๋๋ learning_rate)๋ฅผ ๋๋ฆฌ๊ณ , learning_rate(๋๋ n_estimators)์ ์ค์ธ๋ค๋ฉด ์๋ก ํจ๊ณผ๊ฐ ์์๋ฉ๋ค.
Q: ๋ถ์คํ
๋ชจ๋ธ์ ์ ์ค๋ฒํผํ
์ ๋ฏผ๊ฐํ ๊น์?
A: ์ค๋ต๋
ธํธ๋ฐฉ์์ผ๋ก ์ด์ ํธ๋ฆฌ(์ด์ ํ์ต)๊ฐ ๋ค์ ํธ๋ฆฌ(๋ค์ ํ์ต)์ ์ํฅ์ ์ฃผ๊ธฐ ๋๋ฌธ์ ํ๋ฒ ์๋ชป๋ถ๋ฅ๋๋ฉด ๋น ์ ธ๋์ค๊ธฐ ํ๋ค๋ค.
Q: ๋ฐฐ๊น
๋ชจ๋ธ์ ์๊ฐํ๊ฐ ์ด๋ ค์ 3rd party ๋๊ตฌ๋ฅผ ๋ฐ๋ก ์ค์นํด์ผ ์๊ฐํ ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๊ฒ๋ ๊ฐ๋ณ ํธ๋ฆฌ๋ฅผ ์๊ฐํ ํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ถ์คํ
๋ชจ๋ธ์ ์ ์๊ฐํ๊ฐ ๊ฐ๋ฅํ ๊น์?
A: ๋ฐฐ๊น
๋ชจ๋ธ์ ๋ณ๋ ฌ์ ์ผ๋ก ํธ๋ฆฌ๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ถ์คํ
์ ์์ฐจ์ ์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์
๋๋ค.
Q: cv์ kfold ๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๊ทธ๋ฅ cv=์ซ์๋ฅผ ์ง์ ํ ๋์ ์ด๋ค ์ฐจ์ด๊ฐ ์๊ฒ ์ฌ์ฉํ ์ ์์๊น์?
A: random_state๊ฐ์ ๊ณ ์ ํ ์ ์๋ค.
Q: cat_features๋ฅผ ์ง์ ํด์ ์ค์ตํ ์ด์ ?
A: ์ ์ฒ๋ฆฌ, ์ธ์ฝ๋ฉ ์์ด ์ฝ๊ฒ ํด๋ณด๊ธฐ ์ํด
Q: ํ์ค์ธ๊ณ์ ๋ถ๊ท ํํ ๋ฐ์ดํฐ์ ์๊ฐ ๋ฌด์์ด ์์๊น์?
A: ์ค์ํ์ ์ ์ผ์ด๋์ง ์๋ ์ผ. e.g. ์ํ์ ์ฌ๋ถ, ์์ฐ๊ณผ์ ์๋ถ(์ํ, ๋ถ๋ํ)์ฌ๋ถ, ์ํ ๋์ถ ์ฌ๋ถ ํ๋จ, ์์ฐ์ฌํด, ๊ฒ์์ด๋ ๊ด๊ณ ์ด๋ทฐ์ง
Q: confusion matrix๊ฐ ์ฑ
, ๋ธ๋ก๊ทธ, ์ํค ๊ทธ๋ฆฌ๊ณ ์ฌ์ดํธ๋ง๋ค ์์๊ฐ ๋ค ๋ค๋ฆ
๋๋ค. ์ด๋ค ๊ธฐ์ค์ผ๋ก ๋ด์ผ ํ ๊น์?
A: ์ฌ์ดํท๋ฐ์์๋ ์ํค๋ ์ฑ
์ ์์์ ๋ค๋ฅด๊ฒ ๊ทธ๋ ค์ง๋๋ฐ ์ฌ์ดํท๋ฐ ๊ธฐ์ค์ผ๋ก ๋ณด๋๊ฒ ๊ทธ๋๋ง ๋ ํผ๋์ค๋ฝ์ต๋๋ค.
Q: Precision์ ์ฌ์ฉํด์ผ ํ ๋?
A: ๋ฌด๊ณ ํ ํผ๊ณ ์ธ์๊ฒ ์ ์ฃ ์ ๊ณ
๐ก TIP
๋ฐ์ดํฐ๊ฐ json ํ์์ผ ๋, pd.read_json ํจ์๋ฅผ ์ด์ฉํ๋ฉด json์ dataframe์ผ๋ก ๋ณํ์์ผ์ค๋๋ค. ์ฅ๋ฅด๋ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ณํํ๊ณ join, merge ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒ๋ฆฌํ๊ธฐ ์ข์ต๋๋ค!
Q: precision์ ์ฌ์ฉํด์ผํ ๋ ์ค์ ์ฝ ํจ๊ณผ ์์๋ ์์๊น์?
A: ์ฝํจ๊ณผ๊ฐ ์๋๋ฐ ์๋ค๊ณ ํด์ ์๋ชป๋จน์ด ๋ถ์์ฉ์ด ์๊ฒผ๋ค๋ฉด ๊ทธ๊ฒ๋ ๋ฌธ์ ๊ฐ ๋ ์ ์๊ฒ ์ฃ . ์๋ชป๋จน์๋๋ฐ ์๋ฌด ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์๊ด ์๊ฒ ์ฃ . ์ํฉ์ ๋ณด๊ณ ํ๋จํ๋๊ฒ ๋ง์๋ณด์
๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์๋ชป๋จน์ด ๋ถ์์ฉ์ด ์๊ฒผ๋ค๋ฉด Precision์ ๋ด๋ ๊ด์ฐฎ์ ๋ณด์
๋๋ค.