강의

멘토링

커뮤니티

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

지은님의 프로필 이미지
지은

작성한 질문수

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

데이터 전처리2 (인코딩, 스케일링)

concat

작성

·

25

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

아래처럼 concat으로 한 이후에는 model_selection시에

train_oh와 test_oh가 더 나오진 않나요??

X_tr, X_val, y_tr, y_val = train_test_split(train_oh, target, ,,) 이 되지는 않는지요??

 

 

print(train.shape, test.shape)

data = pd.concat([train, test], axis=0)

data_oh = pd.get_dummies(data)

train_oh = data_oh.iloc[:len(train)].copy()

test_oh = data_oh.iloc[len(train):].copy()

print(train_oh.shape, test_oh.shape)

답변 2

0

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

질문을 정확히 이해를 못하겠어요 ㅠ
더 나오진 않나요??가 어떤 의미일까요?

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

train_oh, test_oh 명칭이 저 코드 다음에 계속 등장하지 않는지요..? 작업형 2를 한가지 방법으로 풀이하기 연습하고 있는데, concat으로 묶어서 다시 나눌 경우

concat 이후에는 train, test는 더이상 등장하지 않고 train_oh, test_oh로 등장하게 되는지요..

이해가 잘 안되면 다시 또 적어보겠습니다 ㅠㅠ

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

이해했습니다:)

원핫 인코딩 알려줄땐 train_oh 사용하고

왜 작업형 2를 한가지 방법에서는 사용하지 않냐? 인거죠?

 

train과 test, train_oh과 test_oh는 변수명일 뿐입니다.

원핫인코딩 후 train에 덮어쓰기를 할 수도있고

train_oh이라는 변수명에 새롭게 저장할 수도 있어요 🙂


제가 인코딩을 설명할 때는 원핫, 라벨을 다 설명해야 해서 train에 덮어쓰지 않고

새로운 변수를 사용했어요

 

실제 작업형2 코드에서는 다음과 같이 동일한 변수에 덮어쓰면 됩니다.
train = pd.get_dummies(train)

test = pd.get_dummies(test)

 

또는

data = pd.concat([train, test], axis=0)

data = pd.get_dummies(data)

train = data.iloc[:len(train)].copy()

test = data.iloc[len(train):].copy()

0

안녕하세요, 인프런 AI 인턴입니다. 지은님께서 질문하신 concat과 model_selection 관련하여 답변드리겠습니다.

지은님이 작성하신 코드 흐름은 데이터 전처리 과정 중 하나인 원핫 인코딩과 데이터 분할에 대한 부분을 잘 이해하고 계십니다. 이제 이 과정이 전체적인 머신러닝 파이프라인에서 어떻게 적용되는지 설명드리겠습니다.

  1. 데이터 병합 및 원핫 인코딩:

    • traintest 데이터를 pd.concat을 활용하여 결합합니다. 이 결합 과정은 주로 데이터 전처리 및 인코딩 과정에서 컬럼 수를 동일하게 맞추기 위해서 사용됩니다.
    • pd.get_dummies를 사용하여 범주형 변수를 원핫 인코딩 처리를 진행합니다. 이 과정은 데이터 세트 전체에 동일하게 적용되어야 합니다.
  2. 데이터 분할:

    • 결합된 데이터 data_ohtraintest로 분할합니다. 여기서 train_oh는 원래 train 데이터에 해당하는 부분만, test_ohtest에 해당하는 부분만 가져오도록 합니다. iloc을 사용하여 올바른 인덱싱이 필요합니다.
  3. 모델 훈련 및 검증:

    • train_test_split을 사용하여 train_ohtarget 데이터를 훈련 세트와 검증 세트로 나눕니다. 이때 train_oh에는 완전히 인코딩이 끝난 데이터만 포함되며, 해당 데이터로 훈련 및 평가가 진행됩니다.
    • X_tr, X_val, y_tr, y_valtrain_test_split으로 나누어진 결과이며, X_try_tr를 사용해 모델을 훈련시키고, X_valy_val로 모델을 검증합니다.

이와 관련하여 유사한 사례 및 논의된 해결 방법들이 아래의 게시물에 있을 수 있으니, 확인해보시면 더욱 도움이 될 것입니다:

위 링크들은 데이터 병합, 원핫 인코딩, 모델 학습과 예측의 전반적인 과정을 다루고 있으며, 문제 해결을 위해 참고하시기 좋습니다.

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

지은님의 프로필 이미지
지은

작성한 질문수

질문하기