>  기사  >  백엔드 개발  >  One Hot Encoding은 Python에서 범주형 변수를 어떻게 처리합니까?

One Hot Encoding은 Python에서 범주형 변수를 어떻게 처리합니까?

DDD
DDD원래의
2024-11-11 12:38:03316검색

How does One Hot Encoding address categorical variables in Python?

Python의 One Hot Encoding: 범주형 변수 처리

문제 개요

기계 학습 분류 문제에서는 큰 비중을 차지합니다. 범주형 변수의 수는 특정 인코딩 기술이 필요한 문제를 야기합니다. 그러한 기술 중 하나는 데이터를 분류자에게 전달하기 전에 일반적으로 사용되는 하나의 핫 인코딩입니다.

접근 방식 1: Pandas의 pd.get_dummies 활용

한 가지 일반적인 접근 방식은 pd를 사용하는 것입니다. Pandas에서 get_dummies. 범주형 열을 각각 다른 범주를 나타내는 여러 더미 열로 변환합니다.

예:

import pandas as pd
s = pd.Series(list('abca'))
pd.get_dummies(s)
Out[]: 
     a    b    c
0  1.0  0.0  0.0
1  0.0  1.0  0.0
2  0.0  0.0  1.0
3  1.0  0.0  0.0

또는 접두사를 지정하면 각 더미에 대해 여러 열이 생성됩니다.

df = pd.DataFrame({
  'A':['a','b','a'],
  'B':['b','a','c']
})
df
Out[]: 
   A  B
0  a  b
1  b  a
2  a  c

one_hot = pd.get_dummies(df['B'], prefix='B')
df = df.drop('B',axis = 1)
df = df.join(one_hot)
df  
Out[]: 
       A  Ba  Bb  Bc
    0  a   0   1   0
    1  b   1   0   0
    2  a   0   0   1

접근 방식 2: Scikit-learn 사용

Scikit-learn의 OneHotEncoder는 하나의 핫 인코딩에 강력하고 유연한 접근 방식을 제공합니다.

예:

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.transform([[0, 1, 1]]).toarray()
array([[ 1.,  0.,  0.,  1.,  0.,  0.,  1.,  0.,  0.]])

제공된 코드 조각은 샘플 데이터의 맞춤 및 변환을 보여주며 바이너리 원-핫 인코딩을 보여줍니다.

계산 리소스를 신중하게 고려해야 합니다. 특히 대규모 데이터 세트의 경우 하나의 핫 인코딩에 필요합니다. 효율적인 데이터 처리 및 특징 선택 기술은 성능을 최적화하고 성공적인 분류 결과를 달성하는 데 매우 중요합니다.

위 내용은 One Hot Encoding은 Python에서 범주형 변수를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.