인프런 커뮤니티 질문&답변
target 지정하는 방법
해결된 질문
작성
·
40
0
pop 이용하지않고 제가 쓴 것처럼 저런 코드로 target 지정하면 추후에 어디에 문제가 발생할까요?
import pandas as pd
train=pd.read_csv("train.csv")
test=pd.read_csv("test.csv")
#분류문제이고 랜덤으로 할것이다.
#전처리 필요없음 (결측치없음)
#basic 수치형데이터만 활용
train.info()
target=train['Segmentation']
train=train[['Age','Work_Experience','Family_Size']]
test=test[['Age','Work_Experience','Family_Size']]
from sklearn.ensemble import RandomForestClassifier
model=RandomForestClassifier()
model.fit(train,target)
pred=model.predict(test)
pred답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 이선희님이 작성한 코드에서는 target 컬럼을 직접 할당하여 사용하고 있습니다. train.pop('Segmentation')을 사용하지 않고 target = train['Segmentation']로 타겟을 설정한 경우, 추후 문제가 발생할 수 있는 주요 부분은 다음과 같습니다:
문제 발생 가능 영역:
- 메모리 사용 증가: - train.pop('Segmentation')은 해당 컬럼을 기존 데이터 프레임에서 제외하므로 메모리 사용량이 줄어듭니다. 반면에- train['Segmentation']으로 컬럼을 그대로 두면 메모리를 조금 더 사용하게 됩니다. 이는 데이터가 크거나 시스템 자원이 제한적인 경우에 문제가 될 수 있습니다.
 
 
- 데이터 일관성 문제: - pop을 사용하면 Segmentation 컬럼이 train 데이터에서 아예 사라지므로, 이후 처리에서 해당 컬럼이 잘못 참조될 가능성이 줄어듭니다. 그러나 컬럼을 계속 유지하면, 데이터 처리에 실수로 해당 컬럼이 포함될 위험이 있습니다.
 
 
- 코드 이해 및 유지보수성: - 데이터셋에서 타겟과 입력 컬럼들을 명확히 분리하는 습관은 코드의 명확성과 유지보수성을 향상시킵니다. 데이터가 어떤 용도로 사용되는지 명확하게 하여 버그 발생 가능성을 줄여줍니다.
 
 
- 데이터셋에서 타겟과 입력 컬럼들을 명확히 분리하는 습관은 코드의 명확성과 유지보수성을 향상시킵니다. 데이터가 어떤 용도로 사용되는지 명확하게 하여 버그 발생 가능성을 줄여줍니다.
추가적인 도움이 될 수 있는 게시물:
- 기출4회 작업형 2 오류(샘플수) - 모델 학습 과정에서 변수 선택 오류에 대한 논의.
 
- 작업형2 모의문제1 에서 오류가 발생하는데 원인을 모르겠습니다 - 변수가 일치하지 않아서 발생한 예시에 대한 설명.
 
코드를 작성할 때 위의 지점을 고려하시면 좀 더 견고하고 유지보수하기 쉬운 코드를 운영할 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






