해결된 질문
작성
·
22
0
강의 에서 예측진행시 선형회귀 랏소 릿지의 경우
model= 하고 뒤에 해당 모델을 작성했는데
18분 22초 랜덤포레스트의 경우 regressor =RandomForestRegressor()로 정의해 놓고
밑에 학습은 model.fit으로 하고 pred도 model.fit으로 했는데 그럼 위에 있는 라쏘를 가지고 모델링을 한게 아닌가 궁금합니다.
※요약 1: 랜덤포레스트에는 모델로 안하고 왜 regressor = 으로해서 진행했는가,
요약2: model.fit으로 진행했는데, import를 랜덤포레스트로 했음에도 , 랜덤포레스트가 아닌 위에 model을 정의한 라쏘로 학습이 된것 아닌가
이렇게 궁금합니다!!
답변 2
0
시험이 끝난 뒤라 답변이 늦었네요!
regressor =RandomForestRegressor()로 정의했다면
regressor로 하는 것이 맞습니다. 제가 복사해서 쓰다 오류가 있었네요
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 인승님.
질문 해주신 내용은 머신러닝 모델을 다룰 때 변수명과 코드 작성 방식에 관련된 문제입니다. 질문하신 핵심은 왜 특정 변수명을 사용하였고, 실제로 어떤 모델이 활용되었는가에 대한 부분입니다.
변수명 일관성 문제: regressor = RandomForestRegressor()
로 정의한 후, 이후 코드에서 model.fit
을 사용한 것은 코드의 변수가 일관되게 사용되지 않았음을 나타냅니다. 일반적으로, RandomForestRegressor()
와 같은 모델을 생성할 때는 그 변수명을 지속적으로 사용하는 것이 좋습니다. 예를 들어, rf_model
로 변수를 정의한 후 rf_model.fit()
과 같은 방식으로 일관되게 사용하는 것이 명확합니다.
실제로 사용된 모델: model
이라는 변수명은 다른 곳에서 이미 선언된 라쏘 같은 다른 모델을 나타내고 있었을 가능성이 있습니다. 따라서 RandomForestRegressor
를 사용하고자 했다면 변수명을 혼동했을 가능성이 큽니다. 코드 중에서 regressor
를 model
로 다시 지정하지 않는다면, model.fit
은 이전에 정의한 라쏘 모델의 fit
메서드를 호출하게 됩니다.
이를 해결하기 위해 변수명을 명확히 구분하는 것이 필요합니다. rf_model
, lasso_model
등으로 명시하면 각 모델에 접근하는 부분에서 혼동이 줄어듭니다.
유사한 질문과 답변이 이미 커뮤니티에 올라와 있습니다. 아래 링크에서 추가적인 설명을 참고하실 수 있습니다:
- 랜덤포레스트와 xgb: 이 포스트는 랜덤포레스트와 다른 모델을 혼용할 때 발생할 수 있는 문제에 대해 설명합니다.
- 섹션5 작업형2 모의문제2 질문 있습니다.: 유사한 상황에서의 코드 작성 방법에 대한 질문과 답변이 담겨있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.