인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

kccjjang님의 프로필 이미지
kccjjang

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

dir과 help 완벽 마스터

레이블 인코딩관련

해결된 질문

작성

·

50

0

from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
for col in cols:
  train[col]=le.fit_transform(train[col])
  test[col]=le.transform(test[col]

이렇게 레이블 인코딩을 했는데요..

object안에 갯수가 많을 경우

fit을 통해서 매팅사전을 만드는데요.

제가 궁금한것은 매핑이 어떻게 되었는지 확인하는

방법이 궁금합니다.

예) 사과, 배, 수박, 메론이 있으면

 무엇이 1, 2,3,4로 매핑되었는지 확인하고 싶을때

그 방법이 궁금합니다.

답변 4

0

kccjjang님의 프로필 이미지
kccjjang
질문자

와 답변 감사드립니다.

 

근데 너무 복잡하군요..

확인하는 이유는 다른건 아니고, 뭐가 어떻게 변경되었는지

일일이 확인하는게 번거로울거 같아서요..

근데 생각보다 이 코딩도 복잡하네요..

 

감사합니다...^^

 

0

kccjjang님의 프로필 이미지
kccjjang
질문자

추가적으로 위에서 제시한 방법으로는 마지막으로

레이블 인코딩을 적용한 컬럼의 값만 알수 있는데요

 

보통 데이터프레임에서는 여러개의 object 열이 존재합니다.

마지막에 적용한 object열 말고 다른 열은 어떻게

동시에 알수는 없는건지요?

 

 

 

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

확인하려는 이유가 혹시 무엇일까요?

코드를 간단히 하고 위해 le를 계속 덮어쓰고 있어요. 여러개의 컬럼인 경우 반복문이 하나 더 필요합니다.
인코딩 할때 저장해뒀다가 다시 불러오는 코드 필요합니다.

import pandas as pd
from sklearn.preprocessing import LabelEncoder

# 예제 데이터프레임
data = {
    'Animal': ['cat', 'dog', 'mouse', 'dog', 'cat', 'mouse', 'rabbit'],
    'Color': ['red', 'blue', 'green', 'blue', 'red', 'green', 'yellow']
}
df = pd.DataFrame(data)

# 컬럼별 라벨 인코딩 및 매핑 정보 저장
label_encoders = {}
mapping_info = {}

for col in df.columns:
    label_encoder = LabelEncoder()
    df[col] = label_encoder.fit_transform(df[col])
    mapping_info[col] = dict(zip(label_encoder.classes_, range(len(label_encoder.classes_))))
    label_encoders[col] = label_encoder

for col, mapping in mapping_info.items():
    print(f"\n{col} 컬럼 매핑:")
    for original_label, encoded_value in mapping.items():
        print(f"'{original_label}' -> {encoded_value}")

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

ai 가 잘 설명했네요!

만약에

특정 숫자로 변경하고 싶다면 맵핑할 수도 있어요

import pandas as pd

# 예제 데이터프레임
data = {
    'target': ['A', 'B', 'A', 'C', 'B', 'C']
}
df = pd.DataFrame(data)

# 타겟값 매핑 규칙
mapping = {
    'A': 0,
    'B': 1,
    'C': 2
}

# 타겟값 맵핑
df['mapped_target'] = df['target'].map(mapping)

print(df)

0

안녕하세요, 인프런 AI 인턴입니다. kccjjang님께서 레이블 인코딩 후 매핑 결과를 확인하는 방법에 대해 질문해 주셨습니다. 일반적으로 특정 데이터가 어떤 숫자로 변환되었는지 확인하고자 할 때, LabelEncoder 객체의 classes_ 속성을 이용하여 알 수 있습니다.

LabelEncoder로 인코딩한 데이터를 확인하는 방법을 간단히 설명드리겠습니다.

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
le.fit(train[col])  # 인코딩을 위한 학습

# 매핑 값을 확인
mapping = dict(zip(le.classes_, le.transform(le.classes_)))
print(mapping)

이 코드에서 le.classes_는 고유한 클래스(라벨)의 배열을 제공하고, le.transform(le.classes_)는 해당 클래스가 인코딩된 숫자를 제공합니다. 이러한 방법을 통해 어떤 라벨이 어떤 숫자로 매핑되었는지 쉽게 확인할 수 있습니다.

유사한 질문에 대한 답변을 포함한 추가 정보는 아래 링크를 참고하세요:

  1. Label Encoding 결과를 확인하는 방법
  2. 라벨 인코딩 및 오류 해결 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kccjjang님의 프로필 이미지
kccjjang

작성한 질문수

질문하기