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

jinhwan.yu님의 프로필 이미지
jinhwan.yu

작성한 질문수

[핵집] 2024 빅데이터 분석기사(실기)_작업형 1·2·3유형

기출복원문제 풀이2

기출복원문제풀이2 중 보험가입여부 예측문제 풀이 질문

작성

·

157

0

강사님..

기출복원 풀이2 중 보험가입여부 예측 문제 풀이에서요.. 마지막 모델 fit에 X_train을 입력하는 것은 좀 이상한데요... X_train의 num_cols 데이터들은 scaling을 하지 않은 값들이어서.. 굳이 전체 X_train로 학습하려면 X_tra와 X_val을 pd.concat으로 합친 후 입력해야 하지 않을까요?

확인 부탁드려요..

강사님의 예측결과와 제가 계산한 예측결과의 차이가 심해서요.. 예를 들면,

강사님 예측 / 저의 계산

ID 1569 0.03312 / 0.2714

ID 1344 0.02612 / 0.9889

ID 1429 0.03312 / 0.1047

...

너무 차이가 심해서요.. 이것도 확인 부탁드려요~~~

수고하시고요.

 

 

답변 2

0

소확성님의 프로필 이미지
소확성
지식공유자

안녕하세요. 소확성입니다!
강사님께 질문 답변 받았습니다.

말씀대로 아래와 같이 코드를 수정 후 실행하시면 되며, 내용은 아래와 같습니다.

변경 전

scaler = MinMaxScaler()

scaler.fit(X_tr[num_cols])

X_tr[num_cols] = scaler.transform(X_tr[num_cols])

X_val[num_cols] = scaler.transform(X_val[num_cols])

X_test[num_cols] = scaler.transform(X_test[num_cols])


-> 변경 후

scaler = MinMaxScaler()

scaler.fit(X_tr[num_cols])

X_tr[num_cols] = scaler.transform(X_tr[num_cols])

X_val[num_cols] = scaler.transform(X_val[num_cols])

X_train[num_cols] = scaler.transform(X_train[num_cols])

X_test[num_cols] = scaler.transform(X_test[num_cols])

 

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.
jinhwan님, 강의 중 보험가입여부 예측 문제와 관련하여 질문해주셨군요.

말씀하신 것처럼, 모델을 학습할 때 사용하는 트레이닝 데이터는 반드시 동일한 전처리 과정을 거쳐야 합니다. 즉, 만약 X_train의 numerical columns에 대해 스케일링을 한 상태라면, X_val 데이터에도 동일한 스케일링을 적용 후 모델에 fit을 해야 합니다. 따라서, X_train과 X_val을 합친 후 스케일링을 하는 것이 올바른 접근입니다.

또한, 예측 결과에 큰 차이가 있는 부분은 여러 가지 요인 때문일 수 있습니다. 데이터 전처리 과정에서의 차이, 모델 파라미터 설정, 랜덤 시드 값 설정 등 다양한 변수가 결과에 영향을 줄 수 있어서, 코드를 정확히 확인해볼 필요가 있습니다.

강의의 예시와 여러분의 계산 결과가 상이할 때는 강의 내용을 다시 한번 꼼꼼히 확인하시고, 혼돈이 올만한 부분을 체크해보시기를 추천드립니다. 필요한 경우 강의 Q&A 섹션이나 수강 전 문의 게시판을 통해 직접 강사님께 질문을 남겨보시는 것도 좋습니다. 해당 링크를 참조해주세요.

수강 전 문의 게시판 링크: https://www.inflearn.com/faq

혼란을 겪고 계신 점, 먼저 안타까움을 표하며 도움이 될 수 있는 방향으로 차근차근 점검해보시길 바랍니다. 추가적인 질문이 있으시거나 문제를 해결하는 데 다른 도움이 필요하시다면, 인프런의 문의하기를 통해 지원을 받으실 수 있습니다.

감사합니다.

jinhwan.yu님의 프로필 이미지
jinhwan.yu

작성한 질문수

질문하기