해결된 질문
작성
·
37
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 데이터에서 아예 사라지므로, 이후 처리에서 해당 컬럼이 잘못 참조될 가능성이 줄어듭니다. 그러나 컬럼을 계속 유지하면, 데이터 처리에 실수로 해당 컬럼이 포함될 위험이 있습니다.코드 이해 및 유지보수성:
코드를 작성할 때 위의 지점을 고려하시면 좀 더 견고하고 유지보수하기 쉬운 코드를 운영할 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.