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

duddl님의 프로필 이미지
duddl

작성한 질문수

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

피처 엔지니어링

피처엔지니어링-n/c_train데이터로 분리 후 다시 컬럼 나열해주는 이유?

해결된 질문

작성

·

290

0

안녕하세요. 피처엔지니어링 10:33~ 이후 질문입니다!

  1. 수치형/범주형데이터를 먼저 나누고 print(c_train.head())등을 해보았을 때 범주형컬럼이 있는 걸 알 수 있는데,

    라벨 인코딩/원핫인코딩 전에

    cols=['~,~,~']으로 범주형컬럼을 재설정해주는 이유가 궁금합니다~~! (수치형은 id 컬럼을 빼기위해라고 이해했습니다)

 

  1. 라벨인코딩에서

    from sklearn.preprocessing import LabelEncoder

    le=LabelEncoder()

    cols=['~~~']

    for col in cols:

    le=LabelEncoder() 로 <-이 부분을 두번 적어주는 이유가 무엇일까요?

 

  1. train,test 데이터의 카테고리가 다르면 두 개를 합친 다음->인코딩->분리해야한다고 하셨는데 두개가 다른건 .unique()등으로 눈으로 직접 확인해야 하는건가요..?

     

  2. 같은 부분에서 iloc는 찾을값 -1 로 [ ] 안에 적는다고 알고 있는데 (ex.kaggle t1-23번에서 10번째 값을 찾을 때 iloc[9]로 찾음)

    line=int(X_train.shape[0]

    X_train=all.iloc[line: ~~] 로 적으면 test의 첫번째행이 포함되는게 아닌지 궁금합니다!!

     

답변 1

0

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

  1. 컬럼만 선택하는 방식으로 사용해도 됩니다. 데이터를 나눈이유는 깔끔하게 보여주기 위함과 범주형데이터 중에서도 타겟 값등이 포함될 여지가 있어서입니다.

  2. 중복 사용되었다면 제가 실수 한 것 같네요 두번 있을 이유가 없습니다.

  3. 원핫인코딩 시 크기가 달라지거나 라벨인코딩시 에러가 난다면 의심해볼 수 있을 것 같아요!!

  4. Iloc에서 시작 인덱스는 포함이고 끝 인덱스는 제외입니다. 끝 인덱시 앞까지만 뽑아낼 수 있어요

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

감사합니다!!!

duddl님의 프로필 이미지
duddl

작성한 질문수

질문하기