해결된 질문
작성
·
164
·
수정됨
0
검증데이터를 분리할때
X_tr, X_val 은 (909, 12) (161,12) 로 열이 12인데 y_tr, y_val 은 왜 열값이 안나오는지 궁금합니다.
X_train 변수와 y_train 변수에 대한 정의를 잘 모르겠습니다. 제가 이해한것은 아래와 같은데 이것이 맞나요?
X_train : 학습용 데이터
X_test : ??
y_train : X_train을 통해 학습한 모델로 예측할 데이터
y_test(우리가 pred에 저장할값) : X_test를 통해 학습한 모델로(X_train을 통해 학습해 만든 모델과는 다름) 예측한 데이터
추가로 X_test 가 하는 역할이 헷갈립니다. X_train을 학습한 후 학습모델로 예측을 하는 예측의 결과를 X_test에 담는것인지, 아니면 X_train을 학습했던것처럼 똑같이 X_test라는 검증용 데이터를 한번 더 학습하는것인지 잘 모르겠습니다.
답변 2
0
와우! 정확히 보셨어요! 거기에 만약 1이 적히면 데이터프레임이 됩니다. 모델 학습시 타겟이 데이터프레임으로 들어가면 워닝이나 에러가 발생할 수 있어요. 시리즈라서 열값이 나오지 않습니다.
X_test는 예측할 데이터입니다. X_train과 같지만 학습에 사용되는 것이 아니라 예측할 새로운 데이터라고 생각하면 됩니다.
X_train (학습용)
운동량, 칼로리 섭취량 데이터
X_test (어라 새로운 데이터네, 내가 학습시킨 모델로 X_test데이터의 비만여부를 판별해 주겠어!!!)
운동량, 칼로리 섭취량 데이터
y_train (학습용)
비만 또는 정상 데이터
y_test
비만 또는 정상을 예측해야 함
3.
그런데 내가 예측한 y_test가 성능이 좋은지 확인할 방법이 없네
비만이 아닌데 비만으로 판별하면 기분 나쁠꺼 아냐~
검증해야겠어!!
X_train와 y_train데이터의 일부를 떼서 검증용(X_val, y_val)으로 만들고
X_val이 새로운 데이터처럼 모델에 넣어 예측을 해보는거야
예측한 결과 값을
떼 놓은y_val과 비교를 해보는거지
성능이 괜찮네!!
그럼 이 모델은 괜찮다고 판단
최종적으로 문제에서 묻는 건 모델이 아니라
test데이터의 예측값이니 예측값을 제출해야 한다는것 잊지않기!!
0
안녕하세요, 인프런 AI 인턴입니다.
질문자님의 문제에 대해 비슷한 내용을 다룬 기존 답변들을 검토한 결과, 질문자님의 상황과 잘 연관될 수 있는 몇 가지 답변을 찾았습니다. 다음 내용들을 통해 귀하가 질문하신 세 가지 주제에 대해 더 명확한 이해를 얻으실 수 있기를 바랍니다.
검증데이터를 분리할 때 X_tr
, X_val
의 열이 나오는 방법 및 y_tr
, y_val
이 열 값이 출력되지 않는 이유:
[train_test_split의 이해와 사용법](https://www.inflearn.com/questions/1067502)
에서, train_test_split
함수 사용 방법이 상세히 설명되어 있습니다. y_tr
와 y_val
이 열 값을 가지지 않는 이유는, 이 변수들이 일반적으로 예측 대상(종속 변수)을 나타내기 때문입니다. 종속 변수는 보통 예측해야 할 단일 값들의 모임이기 때문에 열 값이 따로 출력되지 않습니다. 대신, 이 변수들의 길이(데이터의 개수)는 출력될 수 있습니다.X_train
, X_test
, y_train
, y_test
변수의 정의:
[y_tr 과 y_train 의 차이점](https://www.inflearn.com/questions/1053067)
에 잘 기술되어 있습니다. X_train
은 학습을 위한 데이터(독립 변수), y_train
은 해당 데이터의 예측 대상(종속 변수)입니다. X_test
는 실제 모델이 얼마나 잘 작동하는지 평가하기 위해 사용되는 데이터 세트로, 모델이 이전에 본 적 없는 데이터입니다. 이후, 모델을 통해 X_test
의 결과를 예측하여 y_test
를 얻게 됩니다(여기서는 pred
로 표현될 수 있음).X_test
의 역할:
X_test
)에 대한 역할은 [데이터 분리할 때](https://www.inflearn.com/questions/1066862)
내용에 좀 더 설명되어 있습니다. X_test
는 학습 과정에서 본 적 없는 새로운 데이터 세트로, 학습된 모델의 일반화 능력을 테스트하는 데 사용됩니다. 즉, X_train
으로 모델을 학습시키고, 학습된 모델을 이용하여 X_test
데이터의 결과(y_test
또는 pred
)를 예측합니다. 이는 X_test
데이터를 새로 학습하는 것이 아니라, 이미 학습된 모델을 사용하여 예측을 수행하는 것을 의미합니다.이 내용들을 통해 질문자님의 각 질문에 대해 조금 더 명확한 해답을 얻으셨기를 바랍니다. 데이터 분리 및 모델 학습 과정에 대한 근본적인 이해는 머신러닝 모델을 구축하는 데 매우 중요합니다. 질문에 대한 대답 외에도 실제 예제 코드를 통해 개념을 확인할 수 있으니 참고하시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.