Artificial Intelligence/๐Ÿ“–

[์ •๋ฆฌ] Encoding ๊ด€๋ จ API

geum 2022. 1. 28. 18:46

1. LabelEncoder() : target values๋ฅผ 0~(ํด๋ž˜์Šค ๊ฐœ์ˆ˜-1) ์‚ฌ์ด ์ •์ˆ˜๋กœ ์ธ์ฝ”๋”ฉ

 

โ—พ ๋ณ€ํ™˜ ์‹œ ์•ŒํŒŒ๋ฒณ/ํ•œ๊ธ€ ์ˆœ์„œ๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค. → a, ใ„ฑ: 0

โ—พ input์ด ์•„๋‹Œ target values๋งŒ ์ ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ž์„ธํžˆ

 

from sklearn.preprocessing import LabelEncoder, OneHotEncoder, MinMaxScaler, StandardScaler

le = LableEncoder()
label = np.array(['dog', 'cat', 'tiger', 'rabbit', 'pig'])

le.fit_transform(label)

์‹คํ–‰ ๊ฒฐ๊ณผ

 

2. OneHotEncoder() : ๋ฒ”์ฃผํ˜• feature๋ฅผ  one-hot numeric array๋กœ ๋ณ€ํ™˜

 

โ—พ sparse=False๋กœ ์„ค์ •ํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ array ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด๋œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’์€ True → matrix ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด)

โ—พ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋ฉด one-hot encoding์„ ์—ฌ๋Ÿฌ feature์— ํ•œ๊บผ๋ฒˆ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ohe = OneHotEncoder(sparse=False, handle_unknown='ignore')

X = [['Male', 1], ['Female', 3], ['Female', 2]]

ohe.fit(X)
ohe.transform(([['Female', 1], ['Male', 4]]))

์‹คํ–‰ ๊ฒฐ๊ณผ

 

sci-kit learn์—์„œ ์˜ฌ๋ ค๋†“์€ ์˜ˆ์ œ ์‹คํ–‰ ๊ฒฐ๊ณผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ง„์งœ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ๊ทผ๋ฐ ๋งž๊ฒŒ ์ดํ•ดํ•œ๊ฑด์ง€๋Š” ๋ชจ๋ฆ„ ๐Ÿคฆ‍โ™€๏ธ

 

โœ… ๋งˆ์ง€๋ง‰ ์ค„ ์ฝ”๋“œ ๋ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ถ„์„

 

โ—ฝ ohe.transform(([['Female', 1], ['Male', 4]]))

๋ฐฐ์—ด X๋ฅผ ๋งŒ๋“ค์–ด๋†จ์ง€๋งŒ ๊ฒฐ๊ตญ์€ ['Female', 1]๊ณผ ['Male', '4']์— ์›ํ•ซ์ธ์ฝ”๋”ฉ์„ ์ ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ

 

โ—ฝ handle_unknown='ignore'

fit ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•œ ๋ฐฐ์—ด์— ์—†๋Š” ๊ฐ’(=4)์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ValueError ๋ฌธ๊ตฌ ์—†์ด ์ •์ƒ ์‹คํ–‰

 

โ—ฝ ['Female', 1] → [1, 0, | 1, 0, 0]

 ๋ฌธ์ž์™€ ์ˆซ์ž 2๊ฐœ๋งŒ ์›ํ•ซ์ธ์ฝ”๋”ฉ ํ•˜๋Š”๋ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ์—์„œ๋Š” ๋ฐฐ์—ด ์›์†Œ๊ฐ€ 5๊ฐœ๋‚˜ ๋˜๊ธธ๋ž˜ ์ด๊ฒŒ ๋„ˆ๋ฌด ์ดํ•ด๊ฐ€ ์•ˆ๋์—ˆ๋‹ค ใ… 

 

โ” ์‹คํ–‰ ๊ฒฐ๊ณผ ๊ฐ ๋ฐฐ์—ด ์›์†Œ๊ฐ€ 5๊ฐœ์ธ ์ด์œ 

fit ์ „์— ๋งŒ๋“ค์–ด์ค€ ๋ฐฐ์—ด X๋ฅผ ๋ณด๋ฉด ๋ฌธ์ž๋Š” ๋‘ ์ข…๋ฅ˜์ด๊ณ  ์ˆซ์ž๋Š” ์„ธ ์ข…๋ฅ˜๋‹ค. ๋‘๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€๋Š” ๋ฌธ์ž์— ๋Œ€ํ•œ ์›ํ•ซ์ธ์ฝ”๋”ฉ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋˜๊ณ  ์„ธ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์—๋Š” ์ˆซ์ž์— ๋Œ€ํ•œ ์›ํ•ซ์ธ์ฝ”๋”ฉ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋œ๋‹ค.

 

โ” [4] → [0, 0, 0]

์„ธ ๊ฐœ์˜ ์ˆซ์ž๋กœ fit ํ•จ์ˆ˜๋ฅผ ์ ์šฉ์‹œ์ผฐ๊ธฐ ๋•Œ๋ฌธ์— encoder์—๋Š” ์ˆซ์ž ์„ธ ๊ฐœ๋งŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์ง„ ๊ฑธ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๊ธˆ๋ฐฉ ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ ๊ฐ™๋‹ค. handle_unknown = ~ ์„ ์„ค์ •ํ•ด์„œ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์–ด๋„ API ๋‚ด๋ถ€์—์„œ๋Š” ์ด์ƒ์—†์ด ๋Œ์•„๊ฐ€์ง€๋งŒ, ๋ˆˆ์— ๋ณด์ด์ง€๋Š” ์•Š๋Š” ๊ทธ๋Ÿฐ ๋Š๋‚Œ!