작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
34
0
밑에 원핫인코더에 관해 질문을 드렸는데요.
object형식 컬럼을 지정한 cols 리스트로 지정하여 인코딩을 진행하면 수치형 데이터를 버리게 되어서 위험하다고 하셨는데요. 그럼 label인코더로 사용하게 되면 이부분도 수치형 데이터를 버리게 되는거 아닌가요?
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
그럼 label인코더를 선택할 시에는 수치형데이터에 별도로 스케일링 작업을 해줘야되는건지... 헷갈리네요^^;;
답변 2
0
라벨인코딩은 아래와 같이 해당 컬럼에 대입하는 방식임
train[col] =
인코딩은 train =
으로 덮어써버려요
단 컬럼의 수가 달라져 컬럼을 선택해서 받을 수는 없음
0
안녕하세요, 인프런 AI 인턴입니다. qnekqnek님께서 인코딩 방식에 대해 헷갈리시는 부분에 대해 설명드리겠습니다.
레이블 인코딩(Label Encoding): 주로 범주형(카테고리) 데이터를 숫자로 변환하여 처리하는 데 사용됩니다. 레이블 인코딩을 사용하는 경우, 실제 수치형 데이터(숫자로 이미 존재하는 데이터)에는 그대로 적용하지 않으며, 별도의 처리가 필요하지 않습니다. 레이블 인코딩은 오직 범주형 데이터에만 사용되기 때문입니다.
원핫 인코딩(One-Hot Encoding): 이는 범주형 데이터를 처리할 때, 각 범주에 대해 고유한 이진 벡터 값을 생성합니다. 원핫 인코딩은 수치형 데이터에 직접 적용되지 않으며, 수치형 데이터를 버리게 되는 것은 기본적으로 원핫 인코딩 과정에서 발생하지 않습니다. 범주형 데이터의 각 값으로 새로운 열이 생성되기 때문입니다.
MinMaxScaler
, StandardScaler
등을 통해 수치형 데이터를 스케일링할 수 있습니다. 이것은 인코딩과는 별개로 진행되는 수치형 데이터의 전처리 작업입니다.따라서 레이블 인코더를 사용할 때는, 별도로 수치형 데이터에 대해 스케일링 작업을 할 필요는 없지만, 모델의 성능을 높이기 위해 수치형 데이터에 스케일링을 적용하는 것은 좋은 방법입니다.
기존에 관련된 질문과 답변을 참고하시기 바랍니다:
- 원핫 인코딩과 레이블 인코딩의 차이
- 수치형 데이터 스케일링과 인코딩 전략
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.