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

ha-219님의 프로필 이미지

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

RandomForest 'Classifier', 'Regressor' 차이

해결된 질문

24.06.13 08:05 작성

·

143

0

질문이 사실 두 개 있어요.

  1. 제목처럼 RandomForestClassifier, RandomForestRegressor 를 작업형2 에서 구분하여 사용하는 기준은 뭔가요?? 타겟이 수치형, object 형에 따라서도 아닌거 같아요..

  2. 6회 기출유형 작업형2 문제풀이에서

     

# 최종 제출 파일

rf.fit(train, target)

pred = rf.predict(test)

submit = pd.DataFrame({'pred': pred})

submit.to_csv("result.csv", index=False)

이렇게 적었는데,

rf.fit(train, target)

이 아니라 rf.fit(X_tr, y_tr) 아닌가요??

 

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 13. 11:17

회귀와 분류 구문하는 방법은 여러가지가 있어요

  1. 문제를 보고 구분할 수 있어요.

     

    1. 0과 1, 스팸과 스팸아님 등 이진 분류

    2. 3개 이상의 여러가지 카테고리가 있는 다중 분류

    3. 가격, 수량 등 회귀

  2. 평가지표를 보고 구분할 수 있어요

    1. 이부분은 평가지표영상을 보고 분류와 회귀 평가지표 구분하기!

  3. 타겟을 보고 대략 구분할 수 있어요
    단, 단순히 자료형을 보고 구분하는 것이 아니라
    만약 타겟으로 0,1,2,3 이 있을 때 숫자라고 회귀는 아니에요~


    4종류밖에 없다면 분류입니다. 정확히는 다중분류

     

    분류는 2와 3사이에 값은 없어요. 명확히 구분된다면 분류로..


    회귀는 2와 3사이에 무수히 많은 값이 있을 수 있어요~ 2.1, 2.2 등

ha-219님의 프로필 이미지
ha-219
질문자

2024. 06. 14. 17:15

분류와 회귀는 어떻게 구분해야 할 지 감이 왔어요!

근데, 두 번째 질문에 대한 답변을 안해주셔서ㅠㅠ '6회 기출유형 작업형2 문제풀이' 질문에 대한 답변도 부탁드려요!

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 14. 17:33

6회는 전체 데이터를 학습시켰어요

rf.fit(train, target)

 

검증때문에 데이터를 분리한 것인데

검증을 크로스밸리데이션으로 하고

전체데이터를 학습했어요!

ha-219님의 프로필 이미지
ha-219
질문자

2024. 06. 14. 18:16

그럼, 검증을 크로스밸리데이션으로 했을 때는 전체 데이터를 다시 학습해야 해요?

왜냐면 그냥 데이터분할을 해서 학습했을 때는 rf.fit(X_tr, y_tr) 그대로 사용하고 pred 써서요.

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 14. 20:10

네, N번에 걸쳐 검증을 했을 뿐이지

학습과 예측을 진행한 것은 아니기에 최종적으로 train데이터 학습과 예측이 필요해요!

 

정리하면

크로스밸리데이션이 지금 시점에서 학습할 필요는 없어요!

기존에 하던데로 rf.fit(X_tr, y_tr) 으로 준비해 주세요

 

작업형2에서는 여유있게 학습하는 분들을 위해 다양한 방법을 알려드리고 있습니다.

ha-219님의 프로필 이미지
ha-219
질문자

2024. 06. 14. 23:51

앗, 그렇군요. 도움 됐어요!

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 13. 08:11

안녕하세요, 인프런 AI 인턴입니다.

ha-219님의 질문에 대해 분석과 비슷한 주제의 이전 질문에 대한 답변을 찾아보았습니다.

  1. RandomForestClassifier와 RandomForestRegressor 구분 기준: 이들의 기본 차이는 예측을 수행하는 타입에 있습니다. RandomForestClassifier는 분류(Classification) 문제에 쓰이며, 이는 타겟 변수가 카테고리형 데이터(예: 객체 분류, 예/아니오 문제)일 때 사용됩니다. 반면, RandomForestRegressor는 회귀(Regression) 문제에 사용되며, 타겟 변수가 연속형 수치 데이터(예: 주택 가격, 온도 등)일 때 사용됩니다. 질문자님이 언급한 타겟이 수치형, 오브젝트형과 같은 구분도 이에 해당됩니다. 자세한 설명은 작업형 2유형의 전반적인 풀이에 대해 질문드립니다.에서 찾을 수 있습니다. 그곳에서는 타겟 변수가 연속형 수치 데이터인지, 아니면 범주형 데이터인지에 따라 회귀와 분류를 구분하는 방법에 대해 설명하고 있습니다.

  2. 작업형 2 문제 풀이에서 rf.fit(train, target) 사용: 모델 학습 시 rf.fit(X_tr, y_tr)을 사용해야 하는지에 대한 질문과 관련해서, 일반적으로 RandomForest 모델을 학습시키기 위해서는 train set을 X_tr(훈련 데이터의 특성)와 y_tr(훈련 데이터의 타겟)으로 분리하여 학습시켜야 합니다. rf.fit(train, target)은 보통 데이터 전체를 다루는 맥락에서 해당 포맷으로 쓰이는 경우가 대부분이나, 질문의 맥락에서 보면 타겟 변수가 분리된 후의 학습 데이터와 타겟 데이터를 나타내는 것으로 보입니다. 특정 문제 상황이나 코드의 전체적인 맥락에 따라 다를 수 있어서, 정확한 답변은 작업형2 시험자에서 제출할 때 질문 참조하여 이러한 상황에서는 실제로 X_tr, y_tr를 사용하는 것이 일반적입니다.

질문에 대한 답변의 정확도는 문제의 세부 사항과 전체 맥락에 따라 달라질 수 있습니다. 제공된 예시와 설명이 일반적인 가이드라인을 제공하지만, 실제 적용 시에는 문제의 세부 조건이나 데이터의 특성을 주의 깊게 고려해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ha-219님의 프로필 이미지

작성한 질문수

질문하기