์ธ๊ณต์ง€๋Šฅ ๐ŸŒŒ/๋จธ์‹ ๋Ÿฌ๋‹

๋จธ์‹ ๋Ÿฌ๋‹ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ ์ „์ฒ˜๋ฆฌ

23.8 2022. 11. 27. 07:19
๋ฐ˜์‘ํ˜•

๋ฒ”์ฃผํ˜• ์ž๋ฃŒ๋ฅผ ๋จธ์‹ ๋Ÿฌ๋‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฃŒ๋ฅผ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณธ๊ฒฉ์ ์œผ๋กœ ์ž๋ฃŒ ๋ณ€ํ™˜๋ฒ•์„ ๋‹ค๋ฃจ๊ธฐ ์ „, ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค :)

 

๋ฒ”์ฃผํ˜• ์ž๋ฃŒ๋ฅผ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์˜ ํƒ€์ดํƒ€๋‹‰ ์ƒ์กด์ž ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ํ‘œ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

 

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ช‡ ๊ฐœ์˜ ๋ฒ”์ฃผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ํƒ€์ดํƒ€๋‹‰ ์ƒ์กด์ž ๋ฐ์ดํ„ฐ์—์„œ๋Š” ์–ด๋–ค ํ•ญ๋ชฉ์ด ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์ผ๊นŒ์š”?

 

PassengerId๋ฅผ ๋ณด๋ฉด ๊ฐ ์Šน๊ฐ์˜ ๊ณ ์œ  ๋ฒˆํ˜ธ์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๊ณ ,

Survived๋Š” ์ƒ์กดํ–ˆ๋ƒ ์•ˆํ–ˆ๋ƒ๋ฅผ ์ˆซ์ž๋กœ ์˜ฎ๊ฒผ๊ณ ,

Pclass๋Š” ๋“ฑ๊ธ‰์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

Name์€ ์–‘์ด ๋งŽ์€ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

 

์ด์™ธ์— Sex, Ticket, Cabin, Embarked๋„ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

(๋‚˜์ด, ์ž์‹์˜ ์ˆ˜, ๋ฐฐ์šฐ์ž์˜ ์ˆ˜, ์š”๊ธˆ์€ ์ˆ˜์น˜ํ˜• ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.)

 

 

๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์˜ ์ข…๋ฅ˜

๋ฒ”์ฃผ์˜ ํฌ๊ธฐ๊ฐ€ ์˜๋ฏธ ์—†๋‹ค๋ฉด ๋ช…๋ชฉํ˜• ์ž๋ฃŒ

ํฌ๊ธฐ๊ฐ€ ์˜๋ฏธ ์žˆ๋‹ค๋ฉด ์ˆœ์„œํ˜• ์ž๋ฃŒ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋Œ€ํ‘œ์ ์ธ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ ๋ณ€ํ™˜ ๋ฐฉ์‹

๋ช…๋ชฉํ˜• ์ž๋ฃŒ 

- ์ˆ˜์น˜ ๋งคํ•‘ ๋ฐฉ์‹

- ๋”๋ฏธ(Dummy) ๊ธฐ๋ฒ•

 

๋ช…๋ชฉํ˜• ์ž๋ฃŒ 

- ์ˆ˜์น˜ ๋งคํ•‘ ๋ฐฉ์‹

 

 

๋ช…๋ชฉํ˜• ์ž๋ฃŒ ๋ณ€ํ™˜ - ์ˆ˜์น˜ ๋งคํ•‘ ๋ณ€ํ™˜

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฒ”์ฃผ๋ฅผ 0, 1๋กœ ๋งคํ•‘ํ•œ๋‹ค.

(-1, 1), (0, 100) ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๊ฐ€ ์žˆ์ง€๋งŒ ๋ชจ๋ธ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ male์€ 0์œผ๋กœ, female์€ 1๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ ํ•ญ์ƒ 0์ด๋‚˜ 1๋กœ ๋ณ€ํ™˜ํ•  ํ•„์š”๋Š” ์—†๋‹ค. (-1, 1), (0, 100)๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜ํ•ด๋„ ๋˜์ง€๋งŒ, ์ด๋Š” ๋ชจ๋ธ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

๋ช…๋ชฉํ˜• ์ž๋ฃŒ์˜ ๋ฒ”์ฃผ๊ฐ€ ์„ธ ๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ, ์ˆ˜์น˜์˜ ํฌ๊ธฐ ๊ฐ„๊ฒฉ์„ ๊ฐ™๊ฒŒ ํ•˜์—ฌ์„œ ์ˆ˜์น˜๋ฅผ ๋งคํ•‘ํ•ด์ค€๋‹ค. 

ex) 0, 1, 2, 3...

 

 

๋ช…๋ชฉํ˜• ์ž๋ฃŒ - ๋”๋ฏธ(Dummy) ๊ธฐ๋ฒ•

๋”๋ฏธ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฒ”์ฃผ๋ฅผ 0 ๋˜๋Š” 1๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

 

Sex์— ์žˆ๋˜ female๊ณผ male๋‘ ๊ฐ€์ง€์˜ ๋ฒ”์ฃผ๊ฐ€ ์ƒˆ๋กœ์šด ์—ด๋กœ ์ƒ์„ฑ์ด ๋˜๊ณ ,

์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ ์—ด์€ ๊ฐ ํ–‰์— ๋Œ€ํ•ด ํ•ด๋‹น์ด ๋˜๋ฉด1, ํ•ด๋‹น์ด ๋˜์ง€ ์•Š์œผ๋ฉด 0์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

 

์ˆ˜์น˜ ๋งคํ•‘์€ ํ•œ๊ฐ€์ง€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ํ•ด๋‹น ์—ด ์•ˆ์—์„œ ์ˆซ์ž๋กœ ๋งคํ•‘ํ•œ ๊ฒƒ์ด๊ณ ,

๋”๋ฏธ๋Š” ํ•œ ๊ฐ€์ง€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๋ฒ”์ฃผ๋“ค์„ ์ƒˆ๋กœ์šด ์—ด๋กœ ๋งŒ๋“ค์–ด์„œ 0๊ณผ 1๋กœ ๋งคํ•‘ํ•œ ๊ฒƒ์ด๋‹ค.

 

 

์ˆœ์„œํ˜• ์ž๋ฃŒ - ์ˆ˜์น˜ ๋งคํ•‘ ๋ณ€ํ™˜

์ˆ˜์น˜์— ๋งคํ•‘ํ•˜์—ฌ ๋ณ€ํ™˜ํ•˜์ง€๋งŒ, ์ˆ˜์น˜ ๊ฐ„ ํฌ๊ธฐ ์ฐจ์ด๋Š” ์ปค์Šคํ…€์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํฌ๊ธฐ ์ฐจ์ด๊ฐ€ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ๋‹ค.

 

 

์‹ค์Šต

1) ๋ช…๋ชฉํ˜• ์ž๋ฃŒ ์ˆ˜์น˜๋งคํ•‘์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

titanic์˜ ๋ฐ์ดํ„ฐ ์ค‘ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์ธ Sex๋ฐ์ดํ„ฐ์˜ male๊ณผ female์„ 0๊ณผ 1๋กœ ๋งคํ•‘.

 

*pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ replace ํ•จ์ˆ˜ ์‚ฌ์šฉ

A๋ฅผ 0์œผ๋กœ, B๋ฅผ 1๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ ์‚ฌ์šฉ

DataFrame.replace({A:0, B:1})
import pandas as pd
import seaborn as sns

#๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
titanic = sns.load_dataset('titanic')


print('๋ณ€ํ™˜ ์ „ : \n', titanic.head())

titanic['Sex'].replace({'female':1, 'male':0}, inplace=True)


# ๋ณ€ํ™˜ํ•œ ์„ฑ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ
print('๋ณ€ํ™˜ ํ›„ : \n', titanic.head())
print('\n๋ณ€ํ™˜ ํ›„: \n',titanic['Sex'].head())

 

 

1) ๋ช…๋ชฉํ˜• ์ž๋ฃŒ ๋”๋ฏธ ๋ฐฉ์‹์œผ๋กœ ๋งคํ•‘ํ•˜๊ธฐ

titanic Embarked๋ฐ์ดํ„ฐ์˜ S, Q, C ๋ฒ”์ฃผ๋ฅผ ๋”๋ฏธ ๋ฐฉ์‹์„ ์ด์šฉํ•ด ๋ณ€ํ™˜ํ•ด ๋ด…์‹œ๋‹ค.

* pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ get_dummies๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

get_dummiesํ•จ์ˆ˜๋Š” DataFrame์— ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , pd. ์„ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ DataFrame์„ ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค!

pd.get_dummies(DataFrame[[๋ณ€์ˆ˜๋ช…]])
# ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
titanic = pd.read_csv('./data/titanic.csv')
print('๋ณ€ํ™˜ ์ „: \n',titanic['Embarked'].head())

# 1. get_dummies๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
dummies = pd.get_dummies(titanic[['Embarked']])
dummies1 = pd.get_dummies(titanic['Embarked'])


# ๋ณ€ํ™˜ํ•œ Embarked ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
print('\n๋ณ€ํ™˜ ํ›„: \n',dummies.head())
print('\n๋ณ€ํ™˜ ํ›„ 1: \n',dummies1.head())

728x90
๋ฐ˜์‘ํ˜•