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

lovelove567님의 프로필 이미지

작성한 질문수

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

기출(작업형2) 한 가지 방법으로 풀기 🆕 updated 2024.6

데이터 분리하기 질문

해결된 질문

24.06.20 20:53 작성

·

112

0

from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train.drop('output', axis=1), train['output'],
                                            test_size=0.15, random_state=2022)

작업형 예시 문제 풀떄는 drop을 통해서, 데이터 삭제하고, 분리했는데,, 

여기서는 왜 바로 train이라고 넣나요??,,

그리고 test_id = test.pop으로 데이터 넣어줬는데,,

왜 안넣어요??,,,,,

답변 2

0

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

2024. 06. 20. 21:40

한 가지 방법으로 풀이는 매우 간단한 통일된 방법을 취하고 있습니다. id는 별도로 제거하지 않고 학습에 사용하고 있어요

 

pop()은

  1. = 대입

  2. drop()

두 기능을 합쳤어요

따라서

t = train.pop('target) 이라면

  1. t변수에 대입

  2. 그리고나서 target컬럼을 삭제 합니다.

    타겟값을 보존하기 위함이에요

train에는 target이 없으므로 온전히 train으로 넣을 수 있어요

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 20. 20:56

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

lovelove567님의 질문은 train_test_split을 사용하여 데이터 분리 과정에서 왜 바로 train을 사용했는지, 그리고 왜 test_id = test.pop으로 데이터를 분리하지 않았는지에 대한 부분으로 이해됩니다.

다행히 이와 유사한 질문에 대해 답변된 내용을 찾을 수 있습니다.

  • “5회 작업형2” 질문에서 강샛별님도 비슷한 궁금증을 표현했는데, 이 경우 데이터를 분리하기 전에 train 데이터 테이블에서 타겟 변수가 이미 분리되어 y_train 같은 형태로 따로 관리되기 때문에 train.drop을 사용하지 않았다는 점이 설명되었습니다. 또한, test_id = test.pop('id')와 같은 구문을 사용하지 않은 부분은 문제 또는 데이터의 요구 사항에 따라 달라질 수 있으며, 고유 식별자(id) 컬럼 관리 방식에 대한 것입니다.

이러한 처리 방식은 주어진 데이터의 구조와 해결하고자 하는 문제의 유형에 따라 달라질 수 있습니다. 보통, 독립 변수 집합에서 타겟 변수를 분리하는 과정으로, train_test_split을 사용하기 전에 명확한 X(독립 변수)와 y(종속 변수)를 정의해야 합니다. 특정 컬럼(id 등)을 데이터 분석에서 제외하는 경우, 해당 컬럼이 분석에 있어서 의미 없는 정보(예: 고유 식별자)일 때 이를 제거하거나 따로 저장하는 작업을 합니다.

질문 내용과 유사한 상황에서, 강사님의 답변은 질문자가 train_test_split을 사용하여 데이터를 올바르게 분리하는 방법에 대한 이해를 돕기 위한 것이었습니다. 이를 통해, train 데이터에서 타겟 변수를 분리하는 방법(.drop 또는 .pop)과 분리 이유에 대해 좀 더 깊이 이해할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

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