인프런 커뮤니티 질문&답변
2유형 탬플릿 질문
작성
·
22
0
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
model = rf.fit(X_tr, y_tr)
pred_proba = model.precit_proba(X_val)
from sklearn.metrics import roc_auc_score
ra = roc_auc_score(y_val, pred)
pred_test = model.predict_proba(test)
result = pd.DateFrame({'pred':pred})
result.to_csv('result.csv', index=False)
안녕하세요 2유형 공부 중 질문드립니다.
위 코드와 같이 test를 예측할때 fit 된 변수 'model'을 그대로 가져와서 model.predict_proba(test) 해도 되나요? 영상에서는 rf 변수를 사용해서 rf.predict_proba(test)로 한걸로 보여서요.
두개가 같은건가요..?
감사합니다
답변 2
0
급히 수정하려고 들어가보니 제가 이렇게 작성한 코드를 못찾겠는데
혹시 질문이 제가 그런게 아니라 아래와 같이 해도 되는 것을 묻는 것일까요?
model = rf.fit(X_tr, y_tr)이렇게 작성해도 문제는 없습니다 🙂
model = 으로 대입 받아서 같은 모델을 의미합니다.
혹시 작업형3 방식과 헷갈린건 아닌가 싶어요
rf에는 학습된 결과가 들어 갑니다.
작업형 2는 아래 코드가 맞고
rf = RandomForestRegressor(random_state=0)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val) 작업형 3은 다음과 같이 fit()할 때 대입을 받아요
model = logit(formula, data=df).fit()
그런데 작업형2에서 아래와 같이 작성해도 문제는 없습니다.
model과 rf 둘다 학습된 모델입니다.
model = rf.fit(X_tr, y_tr)
0
안녕하세요, 인프런 AI 인턴입니다.
지니님, 질문해 주신 코드에서 model 변수를 사용하여 model.predict_proba(test)를 그대로 사용해도 되는지 궁금하시군요. 코드의 맥락을 제대로 이해하는 것이 중요한데, 이 부분에 대해 설명드리겠습니다.
모델 객체: 먼저,
RandomForestClassifier를rf라는 변수로 객체화한 뒤,fit메소드를 사용하여model변수를 초기화시키는 과정을 진행하고 있습니다. 여기서model은 실제로 학습된RandomForestClassifier객체를 의미합니다.예측 메소드:
model.predict_proba(test)와rf.predict_proba(test)모두 동일한 목적을 가집니다. 실제로rf도 알고리즘 객체를 동일하게 공유하므로 최종적으로 모델이 가진 구조나 파라미터는 같습니다.fit메소드를 통해 모델을 학습시키고 나서 이rf또는model변수 중 하나를 사용하여 예측을 진행할 수 있습니다. 두 변수는 같은 객체를 참조하고 있기 때문에 결과적으로 차이가 없습니다.
다만, 코드 관리 차원에서 일관된 변수명을 사용하는 것이 좋습니다. 예를 들어, 학습된 모델을 model로 저장했다면 이후에도 model을 사용하여 예측을 진행하는 것이 좋습니다.
아래 유사한 질문 글들도 도움이 될 수 있습니다:
- 랜덤포레스트 돌리는 과정에서 질문있습니다: 모델 객체 및 활용 방법에 대한 자세한 설명을 다루고 있습니다.
- 기출2회 제2유형: 데이터 예측 시 변수 사용에 대한 설명을 제공합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






해당강의 20:08쯤 보면
rf = RandomForestRegressor(random_state=0)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val) 이렇게 작성되어 있는데,
predict에 사용된 rf는 적합된 rf.fit(X_tr, y_tr)이 아니라 RandomForestRegressor 함수만 불러온 변수가 아닌가해서요~!?