๋”ฅ๋Ÿฌ๋‹/Today I learned :

๋จธ์‹ ๋Ÿฌ๋‹ ํ”„๋กœ์ ํŠธ - ์บ˜๋ฆฌํฌ๋‹ˆ์•„ ์ฃผํƒ ๊ฐ€๊ฒฉ ์˜ˆ์ธก

์ฃผ์˜ ๐Ÿฑ 2021. 7. 27. 16:37
728x90

์ฃผ์š” ๋‹จ๊ณ„

1. ํฐ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ

2. ๋ฐ์ดํ„ฐ ๊ตฌํ•˜๊ธฐ

3. ๋ฐ์ดํ„ฐ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ํƒ์ƒ‰, ์‹œ๊ฐํ™”

4. ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ค€๋น„

5. ๋ชจ๋ธ ์„ ํƒํ•˜๊ณ  ํ›ˆ๋ จ, ์ƒ์„ธํžˆ ์กฐ์ •

6. ์†”๋ฃจ์…˜ ์ œ์‹œ

7. ์‹œ์Šคํ…œ ๋Ÿฐ์นญ, ๋ชจ๋‹ˆํ„ฐ๋ง, ์œ ์ง€๋ณด์ˆ˜

 

๋‹ค๋ฅธ ์ธก์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ตฌ์—ญ์˜ ์ค‘๊ฐ„ ์ฃผํƒ ๊ฐ€๊ฒฉ ์˜ˆ์ธกํ•˜๊ธฐ

 

 

1. ๋ฌธ์ œ ์ •์˜ 

์‹ ํ˜ธ : ๋จธ์‹ ๋Ÿฌ๋‹ ์‹œ์Šคํ…œ์— ์ฃผ์ž…ํ•˜๋Š” ์ •๋ณด

 

ํŒŒ์ดํ”„๋ผ์ธ

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ปดํฌ๋„ŒํŠธcomponent๋“ค์ด ์—ฐ์†๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธpipeline์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

๋ณดํ†ต ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ผ์ • ์‹œ๊ฐ„ ํ›„ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋‹ค์Œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด ์ž์‹ ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“œ๋Š” ์‹์ž…๋‹ˆ๋‹ค.

๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฟ์ž…๋‹ˆ๋‹ค.

์ด๋Š” (๋ฐ์ดํ„ฐ ํ๋ฆ„๋„ ๋•๋ถ„์—) ์‹œ์Šคํ…œ์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ , ๊ฐ ํŒ€์€ ๊ฐ์ž์˜ ์ปดํฌ๋„ŒํŠธ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ์ปดํฌ๋„ŒํŠธ์˜ ๋งˆ์ง€๋ง‰ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•ด (์ ์–ด๋„ ํ•œ๋™์•ˆ์€) ํ‰์ƒ์‹œ์™€ ๊ฐ™์ด ๊ณ„์† ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹œ์Šคํ…œ์ด ๋งค์šฐ ๊ฒฌ๊ณ ํ•ด์ง‘๋‹ˆ๋‹ค.

ํ•œํŽธ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์ ์ ˆํžˆ ๋˜์ง€ ์•Š์œผ๋ฉด ๊ณ ์žฅ ๋‚œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•œ๋™์•ˆ ๋ชจ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง„์ง€ ์˜ค๋ž˜ ๋˜๋ฉด ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

 

์ง€๋„ ํ•™์Šต, ๋น„์ง€๋„ ํ•™์Šต, ๊ฐ•ํ™” ํ•™์Šต ์ค‘ ๋ฌด์—‡์ผ๊นŒ์š”? ๋ถ„๋ฅ˜๋‚˜ ํšŒ๊ท€์ธ๊ฐ€์š” ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ์–ด๋–ค ์ž‘์—…์ธ๊ฐ€์š”?

๋ฐฐ์น˜ ํ•™์Šต๊ณผ ์˜จ๋ผ์ธ ํ•™์Šต ์ค‘ ์–ด๋Š ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜์š”?

 

 

๋ ˆ์ด๋ธ”๋œ ํ›ˆ๋ จ ์ƒ˜ํ”Œ์ด ์žˆ์œผ๋‹ˆ ์ง€๋„ํ•™์Šต, ์˜ˆ์ธกํ•ด์•ผํ•˜๊ณ  ์ด๋•Œ ํŠน์„ฑ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ด๋ฏ€๋กœ ๋‹ค์ค‘ํšŒ๊ท€, ๊ฐ ๊ตฌ์—ญ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ๊ฐ’ ์˜ˆ์ธกํ•˜๋ฏ€๋กœ ๋‹จ๋ณ€๋Ÿ‰ ํšŒ๊ท€, ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘์œผ๋ฏ€๋กœ ๋ฐฐ์น˜ ํ•™์Šต

 

 

2. ์„ฑ๋Šฅ ์ธก์ • ์ง€ํ‘œ ์„ ํƒ

 

ํšŒ๊ท€ ๋ฌธ์ œ์˜ ์ „ํ˜•์ ์ธ ์„ฑ๋Šฅ ์ง€ํ‘œ๋Š” ํ‰๊ท  ์ œ๊ณฑ๊ทผ ์˜ค์ฐจRoot Mean Square Error (RMSE). ์˜ค์ฐจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ด ๊ฐ’์€ ๋”์šฑ ์ปค์ง€๋ฏ€๋กœ ์˜ˆ์ธก์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ๊ฐ€๋Š ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

 

์ด์ƒ์น˜๊ฐ€ ๋งŽ์„ ๋• ํ‰๊ท  ์ ˆ๋Œ€ ์˜ค์ฐจ ์‚ฌ์šฉ

 

3. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

housing.head()  ์ฒ˜์Œ 5๊ฐœ ํ–‰๋งŒ

 

housing.info() ๋ฐ์ดํ„ฐ ์š”์•ฝ ๋ณด๊ธฐ

 

 

housing.describe() ์ˆซ์žํ˜• ํŠน์„ฑ์˜ ์š”์•ฝ ์ •๋ณด

 

 

 

 

%matplotlib inline

import matplotlib.pyplot as plt

housing.hist(bins=50, figsize=(20,15))

save_fig("attribute_histogram_plots")

plt.show()

 

hist() ์ˆซ์žํ˜• ๋ฒ”์ฃผ์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ ์ถœ๋ ฅ

ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌํ•ญ

  1. ๋จผ์ € ์ค‘๊ฐ„ ์†Œ๋“median income ํŠน์„ฑ์ด US ๋‹ฌ๋Ÿฌ๋กœ ํ‘œํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.18 ๋ฐ์ดํ„ฐ๋ฅผ ์ทจํ•ฉํ•œ ํŒ€์— ํ™•์ธํ•ด๋ณด๋‹ˆ ์Šค์ผ€์ผ์„ ์กฐ์ •ํ•˜๊ณ , ์ƒํ•œ์ด 15(์‹ค์ œ๋กœ๋Š” 15.0001), ํ•˜ํ•œ์ด 0.5(์‹ค์ œ๋กœ๋Š” 0.4999)๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋จธ์‹ ๋Ÿฌ๋‹์—์„œ๋Š” ์ „์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ”ํ•˜๊ณ  ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ๋œ ๊ฒƒ์ธ์ง€ ๋ฐ˜๋“œ์‹œ ์ดํ•ดํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ค‘๊ฐ„ ์ฃผํƒ ์—ฐ๋„housing median age์™€ ์ค‘๊ฐ„ ์ฃผํƒ ๊ฐ€๊ฒฉmedian house value ์—ญ์‹œ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ํ•œ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.19 ์ค‘๊ฐ„ ์ฃผํƒ ๊ฐ€๊ฒฉ์˜ ๊ฒฝ์šฐ๋Š” ํƒ€๊นƒ ์†์„ฑ(๋ ˆ์ด๋ธ”)์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์ด ํ•œ๊ณ—๊ฐ’์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•™์Šต๋ ์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋ ์ง€ ์•ˆ ๋ ์ง€๋Š” ํด๋ผ์ด์–ธํŠธ ํŒ€(์ด ์‹œ์Šคํ…œ์˜ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•  ํŒ€)๊ณผ ํ•จ๊ป˜ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ทธ ํŒ€์—์„œ $500,000๋ฅผ ๋„˜์–ด๊ฐ€๋”๋ผ๋„ ์ •ํ™•ํ•œ ์˜ˆ์ธก๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
    • ํ•œ๊ณ—๊ฐ’ ๋ฐ–์˜ ๊ตฌ์—ญ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ๋ ˆ์ด๋ธ”์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
    • ํ›ˆ๋ จ ์„ธํŠธ์—์„œ ์ด๋Ÿฐ ๊ตฌ์—ญ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค($500,000๊ฐ€ ๋„˜๋Š” ๊ฐ’์— ๋Œ€ํ•œ ์˜ˆ์ธก์€ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ๋งค์šฐ ๋‚˜์  ๊ฒƒ์ด๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ์„ธํŠธ์—์„œ๋„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค).
  3. ํŠน์„ฑ๋“ค์˜ ์Šค์ผ€์ผ์ด ์„œ๋กœ ๋งŽ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. 
  4. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋งŽ์€ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๊ผฌ๋ฆฌ๊ฐ€ ๋‘๊ป์Šต๋‹ˆ๋‹ค. ๊ฐ€์šด๋ฐ์—์„œ ์™ผ์ชฝ๋ณด๋‹ค ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋” ๋ฉ€๋ฆฌ ๋ป—์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํ˜•ํƒœ๋Š” ์ผ๋ถ€ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ํŒจํ„ด์„ ์ฐพ๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ด๋Ÿฐ ํŠน์„ฑ๋“ค์„ ์ข€ ๋” ์ข… ๋ชจ์–‘์˜ ๋ถ„ํฌ๊ฐ€ ๋˜๋„๋ก ๋ณ€ํ˜•์‹œํ‚ค๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

4. ํ…Œ์ŠคํŠธ ์„ธํŠธ ๋งŒ๋“ค๊ธฐ


๋ฌด์ž‘์œ„๋กœ ์ƒ˜ํ”Œ ์„ ํƒํ•ด ๋ฐ์ดํ„ฐ์…‹์˜ 20%์ •๋„๋ฅผ ๋–ผ์–ด๋†“๊ธฐ

ํ›ˆ๋ จ์„ธํŠธ 16512๊ฐœ

ํ…Œ์ŠคํŠธ ์„ธํŠธ 4128๊ฐœ

 

์ด๊ฒƒ๋„ ๊ดœ์ฐฎ์ง€๋งŒ ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์„ธํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค! ์—ฌ๋Ÿฌ ๋ฒˆ ๊ณ„์†ํ•˜๋ฉด ์šฐ๋ฆฌ๋Š”(๋˜๋Š” ์šฐ๋ฆฌ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด) ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์„ ๋ณด๋Š” ์…ˆ์ด๋ฏ€๋กœ ์ด๋Ÿฐ ์ƒํ™ฉ์€ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์€ ์ฒ˜์Œ ์‹คํ–‰์—์„œ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ๋ฒˆ ์‹คํ–‰์—์„œ ์ด๋ฅผ ๋ถˆ๋Ÿฌ๋“ค์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ํ•ญ์ƒ ๊ฐ™์€ ๋‚œ์ˆ˜ ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋„๋ก np.random.permutation()์„ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ๋‚œ์ˆ˜ ๋ฐœ์ƒ๊ธฐ์˜ ์ดˆ๊นƒ๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค๋ฉด np.random.seed(42)20).

 

ํ•˜์ง€๋งŒ ์ด ๋‘ ํ•ด๋ฒ• ๋ชจ๋‘ ๋‹ค์Œ๋ฒˆ์— ์—…๋ฐ์ดํŠธ๋œ ๋ฐ์ดํ„ฐ์…‹์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์ƒ˜ํ”Œ์˜ ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ๋ณด๋‚ผ์ง€ ๋ง์ง€ ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ƒ˜ํ”Œ์ด ๊ณ ์œ ํ•˜๊ณ  ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค).

 

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ ์ƒ˜ํ”Œ๋งˆ๋‹ค ์‹๋ณ„์ž์˜ ํ•ด์‹œ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ํ•ด์‹œ์˜ ๋งˆ์ง€๋ง‰ ๋ฐ”์ดํŠธ์˜ ๊ฐ’์ด 51(256์˜ 20% ์ •๋„)๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ƒ˜ํ”Œ๋งŒ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต ์‹คํ–‰๋˜๋ฉด์„œ ๋ฐ์ดํ„ฐ์…‹์ด ๊ฐฑ์‹ ๋˜๋”๋ผ๋„ ํ…Œ์ŠคํŠธ ์„ธํŠธ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ ์„ธํŠธ๋Š” ์ƒˆ ์ƒ˜ํ”Œ์˜ 20%๋ฅผ ๊ฐ–๊ฒŒ ๋˜์ง€๋งŒ ์ด์ „์— ํ›ˆ๋ จ ์„ธํŠธ์— ์žˆ๋˜ ์ƒ˜ํ”Œ์€ ํฌํ•จ์‹œํ‚ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

 

 

from zlib import crc32

 

def test_set_check(identifiertest_ratio):

    return crc32(np.int64(identifier)) & 0xffffffff < test_ratio * 2**32

 

def split_train_test_by_id(datatest_ratioid_column):

    ids = data[id_column]

    in_test_set = ids.apply(lambda id_: test_set_check(id_, test_ratio))

    return data.loc[~in_test_set], data.loc[in_test_set]

 

 

 

 

 



๋ฌด์ž‘์œ„ ์ƒ˜ํ”Œ๋ง ๋ฐฉ์‹ โ˜†

 

 

ํ…Œ์ŠคํŠธ ์„ธํŠธ๊ฐ€ ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ์†Œ๋“ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ž˜ ๋Œ€ํ‘œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ์†Œ๋“์ด ์—ฐ์†์ ์ธ ์ˆซ์žํ˜• ํŠน์„ฑ์ด๋ฏ€๋กœ ์†Œ๋“์— ๋Œ€ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ ํŠน์„ฑ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ์†Œ๋“์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค([๊ทธ๋ฆผ 2-8] ์ฐธ์กฐ). ์ค‘๊ฐ„ ์†Œ๋“ ๋Œ€๋ถ€๋ถ„์€ $20,000~$50,000 ์‚ฌ์ด์— ๋ชจ์—ฌ ์žˆ์ง€๋งŒ ์ผ๋ถ€๋Š” $60,000๋ฅผ ๋„˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต๋ณ„๋กœ ๋ฐ์ดํ„ฐ์…‹์— ์ถฉ๋ถ„ํ•œ ์ƒ˜ํ”Œ ์ˆ˜๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ณ„์ธต์˜ ์ค‘์š”๋„๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋ฐ ํŽธํ–ฅ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ง์€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๋œป์ด๊ณ  ๊ฐ ๊ณ„์ธต์ด ์ถฉ๋ถ„ํžˆ ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

income_cat์— 5๊ตฌ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋„ฃ๋Š”๋‹ค

๊ฐ ๋ฒ”์œ„๋ฅผ ๋ ˆ์ด๋ธ”๋กœ ์ •๋ฆฌ

median_income
income_cat

 

 

 

 

์†Œ๋“ ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์ธต ์ƒ˜ํ”Œ๋ง

ํ…Œ์ŠคํŠธ ์„ธํŠธ์™€ ํ›ˆ๋ จ์„ธํŠธ์—๋„ ๋น„์œจ ๋น„์Šทํ•˜๊ฒŒ ์œ ์ง€

 

 


oR

 

๋ฐ˜์‘ํ˜•