• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

RandomForest와 성능 Score

20.04.04 18:28 작성 조회수 668

1

1. RandomForest와 성능 Score

RandomForest와 그 아래 성능 Score에 대한 개념 설명 좀 부탁 드립니다.

랜덤포레스트는 여러 개의 디시젼트리를 돌려서 데이터를 학습시키고 각각의 디시젼 트리는 총 데이터 중에 각각 다른 부분을 가지고 학습을 하여 성능 점수가 산출되며 cross_val_score 함수로 그 평균을 구하여 최종 score를 산출하는 것으로 이해하고 있습니다. 이게 맞나요? 그리고 최종 score가 모델의 최종 성능을 의미한는 건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

1. 랜덤포레스트는 간단히 설명을 드리면 디시전트리를 여러개 만들어서 그 중에 좋은 성능을 내는 트리를 투표로 골라서 사용하거나 평균을 내서 사용하게 됩니다.

또 트리를 만들 때 여러개의 트리를 만들게 되면 하나의 트리를 사용할때보다 훨씬 좋은 성능을 내게 됩니다.

아래 랜덤포레스트 분류기를 보시면 n_estimators 가 트리의 수를 의미하는데 트리가 많으면 많을 수록 좋은 성능을 냅니다. 

하지만 트리가 너무 많다면 학습을 하는데 너무 오래 걸리고 피처의 크기에 따라 만들수 있는 트리의 수가 한정적이기 때문에 적당한 값을 넣어주는게 좋을 거에요.

forest = RandomForestClassifier(

    n_estimators = 100, n_jobs = -1, random_state=2018)

forest

소스코드에도 링크가 있지만 랜덤포레스트의 전체적인 내용은 아래 문서를 한번 읽어봐 주시고 궁금하신 점이 있다면 또 질문해 주세요. 저한테 알림이 올 수 있게 꼭 새로운 질문으로 올려주시길 부탁드려요!

[랜덤 포레스트 - 위키백과, 우리 모두의 백과사전](https://ko.wikipedia.org/wiki/%EB%9E%9C%EB%8D%A4_%ED%8F%AC%EB%A0%88%EC%8A%A4%ED%8A%B8)

2. 스코어를 구하는 것은 긍정과 부정으로 예측을 하는데 어떤건 맞게 예측하고 어떤건 틀리게 예측을 하게 됩니다. 여기에서 얼마나 맞고 틀리는지를 계산하는게 스코어를 계산해 보는 부분이에요.

캐글에 제출해 보기 전에 만든 모델의 성능이 어느정도 나오는지를 측정해 본다고 보시면 돼요.

하지만 캐글에 제출한 점수와는 같은 점수가 나오지 않아요. 왜냐하면 이 노트북은 train 세트로 점수를 내고 캐글은 test세트로 점수를 내기 때문이에요.

마치 우리가 모의고사 점수와 실전시험의 점수가 다른 것처럼 점수가 다르게 나오지만 모의고사 성적이 잘 나오면 실전에서도 좋은 점수가 나올 확률이 높겠죠.

몇개를 맞고 틀렸는지를 측정하는 방법을 accuracy 라고 하는데 맞고 틀렸다로 단순하게 계산을 하면 이 문제가 영화평점 예측이 아니라 스팸메일 여부 예측이라고 할 때 중요한 메일을 스팸으로 처리해 버리면 문제가 될 수 있겠죠. 그래서 이렇게 잘못 예측한 값이 있다면 패널티를 좀 더 주어 계산하는 방법이 있는데 그 중 하나가 roc_auc 에요.

여기에서는 roc_auc를 사용하는데 1에 가까울수록 점수가 높게 측정이 되요.

1이면 만점이고 오차가 클수록 1에서 점수가 멀어지게 되는데 roc_auc의 구체적인 공식은 아래를 참고해 보세요.

[분류: ROC 및 AUC  |  머신러닝 단기집중과정  |  Google Developers](https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc?hl=ko)

3. 그리고 사이킷런(파이썬 머신러닝 라이브러리)에 대한 전체적인 설명을 한 제 유튜브 영상이 있습니다. 사이킷런을 좀 더 이해하시는데 도움이 될까 해서 링크합니다. 3개의 영상이고 전체 시간이 40분 정도이니 가볍게 들어보셔도 괜찮을거 같아요.

[머신러닝(기계학습) 이해하기 - YouTube](https://www.youtube.com/playlist?list=PLaTc2c6yEwmq-3bSiCeaBJhE5Km5TKFhh)

4. 그리고 수강평에 남겨주신 내용 잘 봤습니다. 학습에 어려움이 많으셨던것 같아요. 모르는 내용을 찾아보는 과정에서 스트레스를 많이 받으셨다니 저도 보고 마음이 무거워졌어요. 남겨주신 피드백은 강의 개선에 잘 참고하도록 하겠습니다. 또 별점이나 수강평은 수정이 가능합니다. 좋은 평점과 수강평은 질문에 대한 답변과 컨텐츠 개선에 큰 원동력이 되니 좀 더 학습해 보시고 업데이트 해주시면 감사하겠습니다.