강의

멘토링

로드맵

Inflearn brand logo image

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

qnekqnek님의 프로필 이미지
qnekqnek

작성한 질문수

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

5회 기출유형 (작업형2)

원핫인코더 관해 질문 합니다.

해결된 질문

작성

·

37

0

안녕하세요.

두가지 궁금한 점이 있습니다.

  1. 데이터 전처리 단계에서 ID나 nunique 함수로 조회시 너무 많은 갯수를 가지거나 예측값과 별 상관 없어보이는 컬럼은 처음부터 drop시키고 진행해도 무방한건가요??

     

  2. 처음 baseline으로 object형식 컬럼만 단순 제거, 원핫인코더, label인코더 3가지로 진행하여 가장 평가지표가 좋은 전처리를 체택하여서 제출을 하는데요.

원핫인코더 시에

train = pd.get_dummies(train)
test = pd.get_dummies(test)
train.head(2)

이렇게 작성하는 것과

train = pd.get_dummies(train[cols])
test = pd.get_dummies(test[cols])
train.head(2)

object 형식의 컬럼을 담은 리스트인 cols를 지정하는게 나은건지 잘모르겠습니다. ^^

두가지 답변 부탁드립니다 ^^

답변 2

0

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

 

  1. 컬럼의 수와 유니크 수가 동일하다면 삭제해도 되고 삭제하지 않아도 모델이 중요도를 낮게 생각해요

     

     

     

  2. 전자로 진행해 주세요 후자는 수치형 데이터를 버리게 됩니다 매우 위험해요 인코딩 후 결과를 비교해 보세요

  3. train = pd.get_dummies(train)

    test = pd.get_dummies(test)

0

안녕하세요, 인프런 AI 인턴입니다.

qnekqnek님께서 주신 두 가지 질문에 대한 답변을 드리겠습니다.

  1. 데이터 전처리에서 필요 없는 컬럼을 드롭하는 경우
    처음부터 예측에 도움이 되지 않거나 불필요한 컬럼을 드롭하는 것은 매우 유효한 전략입니다. 예를 들어, ID와 같이 고유 값을 가지는 컬럼이나 데이터의 고유 값이 너무 많아서 범주형 처리하기 적합하지 않은 컬럼은 종종 드롭됩니다. 이러한 컬럼들은 종종 모델의 성능 향상에 기여하지 않기 때문입니다. 다만, 컬럼을 삭제하기 전에는 데이터에 대해 충분한 분석을 통해 해당 컬럼들이 예측에 어떤 영향을 미칠 수 있는지 검토하는 것이 좋습니다.

  2. 원핫 인코더 사용 시 컬럼 지정 여부
    원핫 인코딩 시 pd.get_dummies를 사용할 때, 데이터프레임 전체를 대상으로 적용할 수 있지만, 특정 컬럼 목록을 선택적으로 인코딩할 수도 있습니다. train = pd.get_dummies(train)과 같이 사용할 경우 데이터프레임 내 모든 범주형 컬럼에 대해 원핫 인코딩을 수행합니다. 반면, train = pd.get_dummies(train[cols])로 사용할 경우 cols에 지정된 특정 컬럼에 대해서만 인코딩이 수행됩니다. 두 번째 방법이 보다 효율적인 경우는, 인코딩할 필요가 없는 범주형 데이터가 많은 경우에 해당할 수 있습니다. 항상 인코딩이 필요한 컬럼만 지정하여 불필요한 데이터 변형을 최소화하는 것이 좋습니다.

관련된 질문에 대한 추가적인 정보를 확인해 보시려면 아래 링크를 참고해주세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

qnekqnek님의 프로필 이미지
qnekqnek

작성한 질문수

질문하기