๊ด€๋ฆฌ ๋ฉ”๋‰ด

yeon's ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ, GridSearchCV ๋ณธ๋ฌธ

Computer ๐Ÿ’ป/Machine Learning

ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ, GridSearchCV

yeon42 2021. 8. 26. 15:02
728x90

https://dsbook.tistory.com/135

 

[ํŒŒ์ด์ฌ ๋จธ์‹ ๋Ÿฌ๋‹ ์™„๋ฒฝ๊ฐ€์ด๋“œ] : ์‚ฌ์ดํ‚ท ๋Ÿฐ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ & GridSearchCV - 3

โ€ป HyperParameter(ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ)๋ž€? ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ๋ฐฐ์šด์ง€ ๋งŽ์ด ๋“ฃ๋Š” ์šฉ์–ด ์ค‘์— ํ•˜๋‚˜์ด๋‹ค. 1. ํŒŒ๋ผ๋ฏธํ„ฐ VS ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ผ๋‹จ, ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป๊ธฐ

dsbook.tistory.com

๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•„์‚ฌํ•˜๋ฉฐ ๊ณต๋ถ€

 


 

* ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ(HyperParameter)

 

1. ํŒŒ๋ผ๋ฏธํ„ฐ vs. ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ

 

- ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ๋„ฃ์–ด์•ผ ํ•˜๋Š” ์š”์†Œ๋“ค์„ ์˜๋ฏธํ•˜๋Š” ์šฉ์–ด๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

- ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์€ ์ธก์ •๋˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ํ•™์Šต๋˜์–ด์ง€์ง€ ์•Š์€ ์š”์†Œ๋“ค์„ ์˜๋ฏธํ•˜๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ˆ˜์ž‘์—…์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.

- ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž…๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ

- ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด ๊ทธ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์ด๋‚˜ ํ‘œ์ค€ํŽธ์ฐจ ๋“ฑ์ด ํŒŒ๋ผ๋ฏธํ„ฐ์— ์†ํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋งŽ์ด ์“ฐ์ด๋Š” ์šฉ์–ด์ด๋‹ค.

- ๋Œ€๋ถ€๋ถ„ ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋–ป๊ฒŒ ํ•™์Šต์„ ํ•ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค์ •์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๊ฐ’์„ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ์š”์†Œ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

 

 

- ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž…๋ ฅ์„ ํ•ด์ฃผ๋А๋ƒ(ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ), ์•„๋‹ˆ๋ฉด ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ†ตํ•ด ์–ป์€ ๊ฐ’(ํŒŒ๋ผ๋ฏธํ„ฐ)์„ ์˜๋ฏธํ–๋ƒ์ด๋‹ค.

- ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•™์Šตํ•˜๊ธฐ ์ด์ „์— ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž…๋ ฅํ•ด์ฃผ๋Š” ์š”์†Œ๋Š” ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅด๊ณ ,

  ํ•™์Šตํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•œ ํŠน์„ฑ๋“ค์— ๊ด€ํ•œ ์š”์†Œ๋“ค์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค.

 

- but, ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์˜๋ฏธ๋Š” ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜๋“ค์—์„œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋“ค์–ด๊ฐ€์•ผ ํ•  ์š”์†Œ ๋ผ๋Š” ๋œป์œผ๋กœ ์ด์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

 

 

 


 

2. ์™œ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?

 

- ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์ˆ˜ํžˆ ๋งŽ๊ณ , ๋น„์Šทํ•œ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋“ค์ด๋ผ๊ณ  ํ•˜๋”๋ผ๋„ ๋ถ„ํฌ๊ฐ€ ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค.

- ์ด๊ฒƒ๋“ค์„ ์ผ๋ฐ˜ํ™”๋œ ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ๋ธ์„ ์ ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ๋“ค์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์š”์†Œ๋“ค์„ ์ ์ ˆํ•œ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์— ์ตœ๊ณ ์˜ ์˜ˆ์ธก ์„ฑ๋Šฅ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

- ํŠนํžˆ, ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ ์ ˆํ•œ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ, ๊ณผ์ ํ•ฉ(Overfitting)์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ํฐ ๋„์›€์„ ์ค€๋‹ค.

 

 

 


 

* GridSearchCV

 

- ์‚ฌ์ดํ‚ท๋Ÿฐ(scikit-learn)์—๋Š” ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ด€๋ จํ•ด GridSearchCV๋ผ๋Š” ์‚ฌ์ดํ‚ท๋Ÿฐ ๋ชจ๋“ˆ์ด ์žˆ๋‹ค.

- GridSearchCV๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋งˆ๋‹ค ๋ช‡ ๊ฐ€์ง€ ๊ฐ’์„ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ๊ฐ€๋Šฅํ•œ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋งˆ๋‹ค ์˜ˆ์ธก ์„ฑ๋Šฅ์„ ์ธก์ •ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ผ์ด ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ , ์˜ˆ์ธก ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜์—ฌ ์ตœ์ ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๋Š” ์ˆ˜๊ณ ๋ฅผ ์ค„์ด๊ณ  ์ด ๊ณผ์ •์„ ํ•œ๊บผ๋ฒˆ์— ์ง„ํ–‰ํ•œ๋‹ค.

 

 

* GirdSearchCV API ์‚ฌ์šฉ๋ฒ•

 

1. train_test_split()์„ ํ†ตํ•ด ํ•™์Šต ๋ฐ์ดํ„ฐ์™€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค.

 

2. ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ธํŠธ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

parameters = {'max_depth': [1, 2, 3],
			'min_samples_split': [2, 3]}

- 'max_depth'์™€ 'min_samples_list'๋Š” ๊ฒฐ์ • ํŠธ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ข…๋ฅ˜์ด๋‹ค.

 

3. GridSearchCV ๊ฐ์ฒด์˜ fit(ํ•™์Šต ๋ฐ์ดํ„ฐ ์„ธํŠธ) ๋งค์„œ๋“œ์— ์ธ์ž๋กœ ์ž…๋ ฅํ•œ๋‹ค.

- fit ๋ฉ”์„œ๋“œ๋Š” ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•™์Šต๊ณผ ํ‰๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

- ๊ทธ ํ›„, cv_result_๋ผ๋Š” ์†์„ฑ์— ๊ธฐ๋กํ•œ๋‹ค.

- ์ด cv_result_๋Š” gridsearchcv์˜ ๊ฒฐ๊ณผ ์„ธํŠธ๋กœ์„œ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

4. cv_result_๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ๊ฒƒ์„ ์ด์šฉํ•ด pandas์˜ dataframe์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ํŽธํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

Comments