Day 27
머신러닝 : 분류 (결정트리) , 앙상블 (랜덤포레스트)
분류 : 결정트리
결정트리 알고리즘의 이해 : 정보이득 최대화 → 불순도 : 엔트로피, 지니계수, 분류오차
결정트리 시각화 : Graphviz
결정트리 과적합 문제
앙상블
앙상블의 개념 : 여러 알고리즘을 섞어서 더 좋은 알고리즘을 만드는 것 → 단순히 성능 뿐만 아니라 과적합 문제도 해결
앙상블 종류 : 보팅, 배깅, 부스팅
보팅(voting)
일반적으로 서로 다른 알고리즘의 여러 개의 분류기를 모아서 서로 투표하고 최종 예측 결과를 정함
- 하드 보팅 : 다수의 분류 알고리즘이 다수결로 최종 결과 정함
- 소프트 보팅 : 다수의 분류 알고리즘이 클래스 별로 확률을 평균하여 결정 → 주로 많이 쓰임
- scikit-learn : VotingClassifier 클래스 이용
로지스틱회귀와 KNN 앙상블 예제 실습
배깅(boosting) : 랜덤 포레스트
같은 알고리즘들을 여러 개 섞지만 데이터 샘플을 다르게 넣어서 학습을 다르게 한 뒤 보팅 방식을 취함
- 부트스트래핑 : 여러 개의 데이터 세트를 서로 중복되게 뽑아서 분리하는 방식
- 램덤포레스트는 여러 개의 결정 트리를 연결하는 방식 : 여러 번 결정 트리 그려본뒤 보팅함
- 모델의 성능을 늘리고 과적합을 문제를 해결한다
- 하이퍼 파라미터는 보통 단 하나만 신경쓴다 → 만들 트리 갯수 : n_estimators
- n_estimators = 25 → 25개 트리 만들어라 : 일반적으로 많을수록 좋지만 꼭 성능이 향상되는 것은 아님
랜덤 포레스트 실습
메인 강사님 면담
1. 수학 & 통계학 : 장기적으로나 대학원이 목표면 투자를 많이 하지만 단기적으로는 효용성이 떨어짐
- 하이퍼 파라미터 튜닝, 전처리, 머신러닝과 딥러닝 알고리즘의 활용이 더 중요
- 하루에 시간을 정해서 정해진 과목을 정기적으로 공부해 나가는 것으로.
2. Kaggle, Dacon에서 성과내기 : 알고리즘의 작동원리에 대한 심도 깊은 이해까지는 불필요
- 고점자의 코드, 공유된 자료, pandas 등의 공부를 더 깊게 하는 것이 좋음 → 데이콘 경진대회 1등 솔루션
3. 개인 프로젝트를 위한 데이터셋 구하기 : kaggle, dacon, open api, 공모전 등에서 최대한 찾아야 함
- kaggle PUBG 배그 우승자 예측 등
4. A/B test, cohort, funnel 등의 마케팅 방법은 깊이 공부할 대상이 아님, 도메인별로 활용이 다르기 떄문에 적용이 중요
5. BI tool 중 tableau는 내용이 방대하고 익히기 어려우므로 쉽게 추천하지는 않음
6. mysql은 수업 진행할 예정 : sqld와 adsp 정도는 따는 것을 추천함
7. 취업 전략
- generalist 보다 specialist가 훨씬 좋은 전략 : 산업 군 선정 및 6개월 정도의 꾸준한 공부 / 유망 or 관심 분야
- 분석에 대한 나만의 철학 같은 것이 더 중요하다. 지금은 기초 실력을 쌓아도 충분하다.
- 코딩이나 분석기술, 머신러닝 지식보다 domain 지식, 현직자와의 커넥션 등이 어쩌면 더 중요함 → 발품팔기
유튜브 자료
https://www.youtube.com/watch?v=aF03asAmQbY
이제는 머신러닝, 딥러닝 방식의 적용 뿐만 아니라 얼마나 효율적으로 할 것인가!?