λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Machine Learning/scikit-learn

[데이터 μ „μ²˜λ¦¬] One-Hot Encoding(원-ν•« 인코딩)

by ISLA! 2023. 9. 27.

πŸ§‘‍πŸ’» 원-ν•« μΈμ½”λ”©μ΄λž€?

  • μ•žμ„œ μ‚΄νŽ΄λ³Έ λ ˆμ΄λΈ” μΈμ½”λ”©μ˜ 문제점(숫자 κ°’μ˜ 크고 μž‘μŒμ΄ κ°€μ€‘μΉ˜λ‘œ μž‘μš©)을 ν•΄κ²°ν•˜κΈ° μœ„ν•œ 인코딩 방식이닀.
  • 피쳐 κ°’μ˜ μœ ν˜•μ— 따라 μƒˆλ‘œμš΄ 피쳐λ₯Ό μΆ”κ°€ν•˜κ³ , 고유 값에 ν•΄λ‹Ήν•˜λŠ” μΉΌλŸΌμ—λ§Œ 1을 ν‘œμ‹œν•˜κ³  λ‚˜λ¨Έμ§€ μΉΌλŸΌμ—λŠ” 0을 ν‘œμ‹œν•˜λŠ” 방식이닀.

 

 

πŸš€ 원-ν•« 인코딩 with sklearn

  • μ‚¬μ΄ν‚·λŸ°μ˜ OneHotEncoder 클래슀둜 κ°€λŠ₯ν•˜λ‹€.
  • 단, LabelEncoder 와 λΉ„κ΅ν•˜μ—¬ μ•½κ°„ μ£Όμ˜ν•  점이 μžˆλ‹€.

πŸ‘‰ μž…λ ₯κ°’μœΌλ‘œ 2차원 데이터가 ν•„μš”

πŸ‘‰ λ³€ν™˜ 값이 ν¬μ†Œν–‰λ ¬ ν˜•νƒœμ΄λ―€λ‘œ 이λ₯Ό λ‹€μ‹œ toarray() λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄ λ°€μ§‘ν–‰λ ¬λ‘œ λ³€ν™˜ν•΄μ•Ό 함

 

 

πŸš€ 원-ν•« 인코딩 with Pandas

  • μ΄λŸ¬ν•œ 번거둜운 과정을 κ±°μΉ˜μ§€ μ•Šμ•„λ„ λ˜λŠ” pandas 의 get_dummies() λ©”μ„œλ“œκ°€ μžˆλ‹€.
  • λ¬Έμžμ—΄ μΉ΄ν…Œκ³ λ¦¬ 값을 μˆ«μžν˜•μœΌλ‘œ λ³€ν™˜ν•  ν•„μš” 없이 λ°”λ‘œ λ³€ν™˜μ΄ κ°€λŠ₯ν•˜λ‹€.
import pandas as pd

df = pd.DataFrame({'item':['냉μž₯κ³ ', 'TV', 'μ „μžλ ˆμΈμ§€', '선풍기', 'TV']})
pd.get_dummies(df)

 

원핫 인코딩 μ „
인코딩 ν›„

 

728x90