[ํผ๊ณต๋จธ์ ] 05. ์ ๋ฆฌ
โท ํค์๋ ํต์ฌ ํฌ์ธํธ
๊ฒฐ์ ํธ๋ฆฌ : ์/์๋์ค์ ๋ํ ์ง๋ฌธ์ ์ด์ด๋๊ฐ๋ฉด์ ์ ๋ต์ ์ฐพ์ ํ์ตํ๋ ์๊ณ ๋ฆฌ์ฆ
๋น๊ต์ ์์ธก ๊ณผ์ ์ ์ดํดํ๊ธฐ ์ฝ๊ณ ์ฑ๋ฅ๋ ๋ฐ์ด๋จ
๋ถ์๋ : ๊ฒฐ์ ํธ๋ฆฌ๊ฐ ์ต์ ์ ์ง๋ฌธ์ ์ฐพ๊ธฐ ์ํ ๊ธฐ์ค
์ฌ์ดํท๋ฐ์ ์ง๋ ๋ถ์๋์ ์ํธ๋กํผ ๋ถ์๋ ์ ๊ณต
์ ๋ณด์ด๋ : ๋ถ๋ชจ ๋ ธ๋์ ์์ ๋ ธ๋์ ๋ถ์๋ ์ฐจ์ด
๊ฒฐ์ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ณด ์ด๋์ด ์ต๋ํ๋๋๋ก ํ์ต
๊ฐ์ง์น๊ธฐ : ๊ฒฐ์ ํธ๋ฆฌ์ ์ฑ์ฅ์ ์ ํํ๋ ๋ฐฉ๋ฒ
(๊ฒฐ์ ํธ๋ฆฌ๋ ์ ํ ์์ด ์ฑ์ฅํ๋ฉด ํ๋ จ ์ธํธ์ ๊ณผ๋์ ํฉ๋๊ธฐ ์ฌ์)
ํน์ฑ ์ค์๋ : ๊ฒฐ์ ํธ๋ฆฌ์ ์ฌ์ฉ๋ ํน์ฑ์ด ๋ถ์๋๋ฅผ ๊ฐ์ํ๋๋ฐ ๊ธฐ์ฌํ ์ ๋
๊ฒ์ฆ ์ธํธ : ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ์ํด ๋ชจ๋ธ์ ํ๊ฐํ ๋,
ํ ์คํธ ์ธํธ๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ์ํด ํ๋ จ ์ธํธ์์ ๋ค์ ๋ผ์ด ๋ธ ๋ฐ์ดํฐ ์ธํธ
๊ต์ฐจ ๊ฒ์ฆ : ํ๋ จ ์ธํธ๋ฅผ ์ฌ๋ฌ ํด๋๋ก ๋๋ ๋ค์ ํ ํด๋๊ฐ ๊ฒ์ฆ ์ธํธ์ ์ญํ ์ ํ๊ณ ๋๋จธ์ง ํด๋์์๋ ๋ชจ๋ธ์ ํ๋ จํจ
๊ต์ฐจ ๊ฒ์ฆ์ ์ด๋ฐ ์์ผ๋ก ๋ชจ๋ ํด๋์ ๋ํด ๊ฒ์ฆ ์ ์๋ฅผ ์ป์ด ํ๊ท ํ๋ ๋ฐฉ๋ฒ
๊ทธ๋ฆฌ๋ ์์น : ํ์ดํผํ๋ผ๋ฏธํฐ ํ์์ ์๋ํํด ์ฃผ๋ ๋๊ตฌ
ํ์ํ ๋งค๊ฐ๋ณ์๋ฅผ ๋ญ๋ คํ๋ฉด ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ์ฌ ๊ฐ์ฅ ์ข์ ๊ฒ์ฆ ์ ์์ ๋งค๊ฐ๋ณ์ ์กฐํฉ์ ์ ํ
๋ง์ง๋ง์ผ๋ก ์ด ๋งค๊ฐ๋ณ์ ์กฐํฉ์ผ๋ก ์ต์ข ๋ชจ๋ธ ํ๋ จ
๋๋ค ์์น : ์ฐ์๋ ๋งค๊ฐ๋ณ์ ๊ฐ์ ํ์ํ ๋ ์ ์ฉ
ํ์ํ ๊ฐ์ ์ํ๋งํ ์ ์๋ ํ๋ฅ ๋ถํฌ ๊ฐ์ฒด๋ฅผ ์ ๋ฌ
์ง์ ํ ํ์๋งํผ ์ํ๋งํ์ฌ ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ๊ธฐ ๋๋ฌธ์ ์์คํ ์์์ด ํ๋ฝํ๋ ๋งํผ ํ์๋ ์กฐ์
์์๋ธ ํ์ต : ๋ ์ข์ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ํ๋ จํ๋ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ
๋๋ค ํฌ๋ ์คํธ : ๋ํ์ ์ธ ๊ฒฐ์ ํธ๋ฆฌ ๊ธฐ๋ฐ์ ์์๋ธ ํ์ต ๋ฐฉ๋ฒ
๋ถํธ์คํธ๋ฉ ์ํ์ ์ฌ์ฉํ๊ณ ๋๋คํ๊ฒ ์ผ๋ถ ํน์ฑ์ ์ ํํ๋ ํธ๋ฆฌ๋ ๋ง๋๋ ๊ฒ์ด ํน์ง
์์คํธ๋ผ ํธ๋ฆฌ : ๋๋ค ํฌ๋ ์คํธ์ ๋น์ทํ๊ฒ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ธ ๋ชจ๋ธ์ ๋ง๋ค์ง๋ง ๋ถํธ์คํธ๋ฉ ์ฌ์ฉ x
๋์ ๋๋คํ๊ฒ ๋ ธ๋๋ฅผ ๋ถํ ํด ๊ณผ๋์ ํฉ ๊ฐ์์ํด
๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ : ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ์ฐ์์ ์ผ๋ก ์ถ๊ฐํ์ฌ ์์ค ํจ์๋ฅผ ์ต์ํํ๋ ์์๋ธ ๋ฐฉ๋ฒ
ํ๋ จ ์๋๊ฐ ์กฐ๊ธ ๋๋ฆฌ์ง๋ง ๋ ์ข์ ์ฑ๋ฅ ๊ธฐ๋
ํ์คํ ๊ทธ๋จ ๊ธฐ๋ฐ ๊ทธ๋ ์ด์ธํธ ๋ถ์คํ : ๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ ์ ์๋๋ฅผ ๊ฐ์ ํ ๊ฒ
โท ํต์ฌ ํจํค์ง, ํจ์
< Pandas >
* info() : ๋ฐ์ดํฐํ๋ ์์ ์์ฝ๋ ์ ๋ณด ์ถ๋ ฅ
์ธ๋ฑ์ค์ ์ปฌ๋ผ ํ์ ์ ์ถ๋ ฅํ๊ณ , ๋์ด ์๋ ๊ฐ์ ๊ฐ์, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ๊ณต
verbose : ๊ธฐ๋ณธ๊ฐ True๋ฅผ False๋ก ๋ฐ๊พธ๋ฉด ๊ฐ ์ด์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ์ง ์์
* describe() : ๋ฐ์ดํฐํ๋ ์ ์ด์ ํต๊ณ ๊ฐ ์ ๊ณต
์์นํ - ์ต์, ์ต๋, ํ๊ท , ํ์คํธ์ฐจ, ์ฌ๋ถ์๊ฐ
๊ฐ์ฒด ํ์ ์ด - ๊ฐ์ฅ ์์ฃผ ๋ฑ์ฅํ๋ ๊ฐ, ํ์
percentiles : ๋ฐฑ๋ถ์์ ์ง์
< scikit-learn >
* DecisionTreeClassifier : ๊ฒฐ์ ํธ๋ฆฌ ๋ถ๋ฅ ํด๋์ค
criterion : ๋ถ์๋ ์ง์
๊ธฐ๋ณธ๊ฐ ์ง๋๋ถ์๋ 'gini' / ์ํธ๋กํผ๋ถ์๋ 'entropy'
splitter : ๋ ธ๋๋ฅผ ๋ถํ ํ๋ ์ ๋ต
๊ธฐ๋ณธ๊ฐ 'best' ์ ๋ณด ์ด๋ ์ต๋ / 'random' ์์ ๋ ธ๋ ๋ถํ
max_depth : ํธ๋ฆฌ๊ฐ ์ฑ์ฅํ ์ต๋ ๊น์ด ์ง์
๊ธฐ๋ณธ๊ฐ None ๋ฆฌํ ๋ ธ๋๊ฐ ์์ํ๊ฑฐ๋ min_samples_split๋ณด๋ค ์ํ ๊ฐ์๊ฐ ์ ์ ๋๊น์ง ์ฑ์ฅ
min_samples_split : ๋ ธ๋๋ฅผ ๋๋๊ธฐ ์ํ ์ต์ ์ํ ๊ฐ์ (๊ธฐ๋ณธ๊ฐ 2)
max_features : ์ต์ ์ ๋ถํ ์ ์ํด ํ์ํ ํน์ฑ์ ๊ฐ์ ์ง์ (๊ธฐ๋ณธ๊ฐ None ๋ชจ๋ ํน์ฑ ์ฌ์ฉ)
* plot_tree : ๊ฒฐ์ ํธ๋ฆฌ ๋ชจ๋ธ์ ์๊ฐํ
์ฒซ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๊ฒฐ์ ํธ๋ฆฌ ๋ชจ๋ธ ๊ฐ์ฒด ์ ๋ฌ
max_depth : ๋ํ๋ผ ํธ๋ฆฌ์ ๊น์ด (๊ธฐ๋ณธ๊ฐ None ๋ชจ๋ ๋ ธ๋ ์ถ๋ ฅ)
feature_names : ํน์ฑ์ ์ด๋ฆ ์ง์
filled : True๋ก ์ง์ ํ๋ฉด ํ๊น๊ฐ์ใ ๋ฐ๋ผ ๋ ธ๋ ์์ ์์ ์ฑ์
* cross_validate() : ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ๋ ํจ์
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ ๋ชจ๋ธ ๊ฐ์ฒด ์ ๋ฌ
๋ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ ํน์ฑ๊ณผ ํ๊น ๋ฐ์ดํฐ ์ ๋ฌ
scoring : ๊ฒ์ฆ์ ์ฌ์ฉํ ํ๊ฐ ์งํ ์ง์
๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ฅ ๋ชจ๋ธ - ์ ํ๋ 'accuracy' / ํ๊ท ๋ชจ๋ธ - ๊ฒฐ์ ๊ณ์ 'r2'
cv : ๊ต์ฐจ ๊ฒ์ฆ ํด๋ ์๋ ์คํ๋ฆฌํฐ ๊ฐ์ฒด ์ง์ (๊ธฐ๋ณธ๊ฐ 5)
ํ๊ท - KFold / ๋ถ๋ฅ - StratifiedKFold
n_jobs : ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ ๋ ์ฌ์ฉํ CPU ์ฝ์ด ์ ์ง์
๊ธฐ๋ณธ๊ฐ 1 (ํ๋์ ์ฝ์ด ์ฌ์ฉ) / -1 ์์คํ ์ ์๋ ๋ชจ๋ ์ฝ์ด ์ฌ์ฉ
return_train_score : True๋ก ์ง์ ํ๋ฉด ํ๋ จ ์ธํธ์ ์ ์๋ ๋ฐํ (๊ธฐ๋ณธ๊ฐ False)
* GridSearchCV() : ๊ต์ฐจ ๊ฒ์ฆ์ผ๋ก ํ์ดํผํ๋ผ๋ฏธํฐ ํ์ ์ํ
์ต์์ ๋ชจ๋ธ์ ์ฐพ์ ํ ํ๋ จ ์ธํธ ์ ์ฒด๋ฅผ ์ฌ์ฉํด ์ต์ข ๋ชจ๋ธ์ ํ๋ จ
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๊ทธ๋ฆฌ๋ ์์น๋ฅผ ์ํํ ๋ชจ๋ธ ๊ฐ์ฒด ์ ๋ฌ
๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์๋ ํ์ํ ๋ชจ๋ธ์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์ ๋ฌ
scroing, cv, n_jobs, return_train_score ๋งค๊ฐ๋ณ์๋ cross_validate() ํจ์์ ๋์ผ
* RandomizedSearchCV() : ๊ต์ฐจ ๊ฒ์ฆ์ผ๋ก ๋๋คํ ํ์ดํผํ๋ผ๋ฏธํฐ ์ํ
์ต์์ ๋ชจ๋ธ์ ์ฐพ์ ํ ํ๋ จ ์ธํธ ์ ์ฒด๋ฅผ ์ฌ์ฉํด ์ต์ข ๋ชจ๋ธ ํ๋ จ
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๊ทธ๋ฆฌ๋ ์์น๋ฅผ ์ํํ ๋ชจ๋ธ ๊ฐ์ฒด ์ ๋ฌ
๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์๋ ํ์ํ ๋ชจ๋ธ์ ๋งค๊ฐ๋ณ์์ ํ๋ฅ ๋ถํฌ ๊ฐ์ฒด ์ ๋ฌ
scroing, cv, n_jobs, return_train_score ๋งค๊ฐ๋ณ์๋ cross_validate() ํจ์์ ๋์ผ
* RandomForestClassifier : ๋๋ค ํฌ๋ ์คํธ ๋ถ๋ฅ ํด๋์ค
n_estimators : ์์๋ธ์ ๊ตฌ์ฑํ ํธ๋ฆฌ์ ๊ฐ์ ์ง์ (๊ธฐ๋ณธ๊ฐ 100)
criterion : ๋ถ์๋ ์ง์
๊ธฐ๋ณธ๊ฐ ์ง๋๋ถ์๋ 'gini' / ์ํธ๋กํผ๋ถ์๋ 'entropy'
max_depth : ํธ๋ฆฌ๊ฐ ์ฑ์ฅํ ์ต๋ ๊น์ด ์ง์
๊ธฐ๋ณธ๊ฐ None ๋ฆฌํ ๋ ธ๋๊ฐ ์์ํ๊ฑฐ๋ min_samples_split๋ณด๋ค ์ํ ๊ฐ์๊ฐ ์ ์ ๋๊น์ง ์ฑ์ฅ
min_samples_split : ๋ ธ๋๋ฅผ ๋๋๊ธฐ ์ํ ์ต์ ์ํ ๊ฐ์ (๊ธฐ๋ณธ๊ฐ 2)
max_features : ์ต์ ์ ๋ถํ ์ ์ํด ํ์ํ ํน์ฑ์ ๊ฐ์ ์ง์ (๊ธฐ๋ณธ๊ฐ auto ํน์ฑ ๊ฐ์์ ์ ๊ณฑ๊ทผ)
boostrap : ๋ถํธ์คํธ๋ฉ ์ํ ์ฌ์ฉํ ์ง ์ง์ (๊ธฐ๋ณธ๊ฐ True)
oob_scroce : OOB ์ํ์ ์ฌ์ฉํ์ฌ ํ๋ จํ ๋ชจ๋ธ์ ํ๊ฐํ ์ง ์ง์ (๊ธฐ๋ณธ๊ฐ False)
n_jobs : ๋ณ๋ ฌ ์คํ์ ์ฌ์ฉํ CPU ์ฝ์ด ์ ์ง์
๊ธฐ๋ณธ๊ฐ 1 (ํ๋์ ์ฝ์ด ์ฌ์ฉ) / -1 ์์คํ ์ ์๋ ๋ชจ๋ ์ฝ์ด ์ฌ์ฉ
* ExtraTreesClassifier : ์์คํธ๋ผ ํธ๋ฆฌ ๋ถ๋ฅ ํด๋์ค
n_estimators, criterion, max_depth, min_samples_split, max_features, oob_score, n_jobs - ๋๋ค ํฌ๋ ์คํธ์ ๋์ผ
boostrap : ๋ถํธ์คํธ๋ฉ ์ํ ์ฌ์ฉํ ์ง ์ง์ (๊ธฐ๋ณธ๊ฐ False)
* GrandientBoosintClassifier : ๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ ๋ถ๋ฅ ํด๋์ค
loss : ์์ค ํจ์ ์ง์ , (๊ธฐ๋ณธ๊ฐ ๋ก์ง์คํฑ ์์ค ํจ์ 'deviance')
learning_rate : ํธ๋ฆฌ๊ฐ ์์๋ธ์ ๊ธฐ์ฌํ๋ ์ ๋ ์กฐ์ (๊ธฐ๋ณธ๊ฐ 0.1)
n_estimators : ๋ถ์คํ ๋จ๊ณ๋ฅผ ์ํํ๋ ํธ๋ฆฌ์ ๊ฐ์ (๊ธฐ๋ณธ๊ฐ 100)
subsample : ์ฌ์ฉํ ํ๋ จ ์ธํธ์ ์ํ ๋น์จ ์ง์ (๊ธฐ๋ณธ๊ฐ 1.0)
max_depth : ๊ฐ๋ณ ํ๊ท ํธ๋ฆฌ์ ์ต๋ ๊น์ด (๊ธฐ๋ณธ๊ฐ 3)
* HistGrandientBoosintClassifier : ํ์คํ ๊ทธ๋จ ๊ธฐ๋ฐ ๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ ๋ถ๋ฅ ํด๋์ค
learning_rate : ํ์ต๋ฃฐ ๋๋ ๊ฐ์ ์จ (๊ธฐ๋ณธ๊ฐ 0.1 / 1.0์ด๋ฉด ๊ฐ์ ์ ํ ์์)
max_iter : ๋ถ์คํ ๋จ๊ณ๋ฅผ ์ํํ๋ ํธ๋ฆฌ์ ๊ฐ์ (๊ธฐ๋ณธ๊ฐ 100)
max_bins : ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋๋ ๊ตฌ๊ฐ์ ๊ฐ์ (๊ธฐ๋ณธ๊ฐ 255 ์ด๋ณด๋ค ํฌ๊ฒ ์ง์ ํ ์ ์์)
โท ํ์ธ๋ฌธ์
1. ๊ฒฐ์ ํธ๋ฆฌ์ ๋ถ์๋์ ๋ํด ์ฌ๋ฐ๋ฅด๊ฒ ์ค๋ช
์ง๋ ๋ถ์๋๋ ํด๋์ค์ ๋น์จ์ ์ ๊ณฑํ์ฌ ๋ชจ๋ ๋ํ ๋ค์ 1์์ ๋บ๋ค
์ํธ๋กํผ ๋ถ์๋๋ ํด๋์ค ๋น์จ๊ณผ ํด๋์ค ๋น์จ์ ๋ฐ์ด 2์ธ ๋ก๊ทธ๋ฅผ ์ ์ฉํ ๊ฐ์ ๊ณฑํด์ ๋ชจ๋ ๋ํ ํ ์์๋ก ๋ฐ๊พธ์ด ๊ณ์ฐ
2. ๊ฒฐ์ ํธ๋ฆฌ์์ ๊ณ์ฐํ ํน์ฑ ์ค์๋๊ฐ ์ ์ฅ๋์ด ์๋ ์์ฑ
feature_importances_
3. ํ๋ จ ์ธํธ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ํด๋๋ก ๋๋๊ณ ํด๋ 1๊ฐ๋ ํ๊ฐ ์ฉ๋๋ก, ๋๋จธ์ง ํด๋๋ ํ๋ จ ์ฉ๋๋ก ์ฌ์ฉ
๊ทธ ๋ค์ ๋ชจ๋ ํด๋๋ฅผ ํ๊ฐ ์ฉ๋๋ก ์ฌ์ฉํ๊ฒ๋ ํด๋ ๊ฐ์๋งํผ ์ด ๊ณผ์ ์ ๋ฐ๋ณต
์ด๋ฌํ ํ๊ฐ ๋ฐฉ๋ฒ์ ๋ฌด์?
๊ต์ฐจ ๊ฒ์ฆ
4. ๋ค์ ์ค ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ์ง ์๋ ํจ์๋ ํด๋์ค๋?
cross_validate()
GridSearchCV
RandomizedSearchCV
train_test_split()
5. ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ํ๋ จ์ํค๊ณ ๊ฐ ๋ชจ๋ธ์ ์์ธก์ ์ทจํฉํ์ฌ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ง๋๋ ํ์ต ๋ฐฉ์
์์๋ธ ํ์ต
6. ๋ค์ ์ค ๋น์ ํ ๋ฐ์ดํฐ์ ์ํ๋ ๊ฒ์ ๋ฌด์?
์์ ๋ฐ์ดํฐ
csv ๋ฐ์ดํฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ์ดํฐ
์ด๋ฏธ์ง ๋ฐ์ดํฐ
3. ์๊ณ ๋ฆฌ์ฆ ์ค ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถํธ์คํธ๋ฉ ์ํ์ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ?
๋๋ค ํฌ๋ ์คํธ
์์คํธ๋ผ ํธ๋ฆฌ
๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ
ํ์คํ ๊ทธ๋จ ๊ธฐ๋ฐ ๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ
์ฐธ๊ณ ๋์ : ํผ์๊ณต๋ถํ๋ ๋จธ์ ๋ฌ๋ + ๋ฅ๋ฌ๋, ๋ฐํด์ , ํ๋น๋ฏธ๋์ด, 2020๋
'Ability ๐ฑ > ML' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํผ๊ณต๋จธ์ ] 06. ์ ๋ฆฌ (1) | 2022.06.23 |
---|---|
[ํผ๊ณต๋จธ์ ] 06. ๋น์ง๋ ํ์ต - ๊ตฐ์ง, ์ฃผ์ฑ๋ถ ๋ถ์ (0) | 2022.06.23 |
[ํผ๊ณต๋จธ์ ] 05. ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ (0) | 2022.06.22 |
[ํผ๊ณต๋จธ์ ] 04. ์ ๋ฆฌ (1) | 2022.06.21 |
[ํผ๊ณต๋จธ์ ] 04. ๋ค์ํ ๋ถ๋ฅ ์๊ณ ๋ฆฌ์ฆ - ๋ก์ง์คํฑ ํ๊ท, ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ (0) | 2022.06.19 |