본문 바로가기

728x90
반응형

machine learning

(11)
[기계학습/ML]12. 앙상블 학습 - 랜덤 포레스트, 엑스트라 트리, 그레이디언트 부스팅 박 팀장이 Pupbani를 불렀다. "이사님이 베스트 머신러닝 알고리즘을 보고 하라 하시네요.." "랜덤 포레스트를 사용해봐!!" Pupbani는 박 팀장이 말한 랜덤 포레스트를 한번 해보기로 했다. 정형 데이터(Structured data) 쉽게 말해 어떤 구조로 되어 있다는 뜻 csv, 데이터베이스, 엑셀에 저장하기 좋다. 앙상블 학습(Ensemble Learning) 정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘이다. 랜덤 포레스트, 엑스트라 트리, 그레이디언트 부스팅 등 비정형 데이터(Unstructured data) 정형 데이터와 반대되는 데이터 책의 글, 텍스트 데이터, 디지털카메라로 찍은 사진, 핸드폰으로 듣는 디지털 음악 등 신경망 알고리즘에 사용한다. 랜덤 포레스트(Rando..
[기계학습/ML]11. 검증 세트 - 교차 검증, 그리드 서치 Pupbani와 신팀장의 보고를 받은 이사님은 다음과 같은 질문을 던졌다. max_depth를 3말고 다른 값으로 하면 성능이 달라지나요?" "네" 라고 Pupbani가 대답했다. "이런저런 값으로 모델을 많이 만들어서 테스트 세트로 평가하면 결국 테스트 세트에 잘 맞는 모델이 만들어지는게 아닌가요?" Pupbani는 그 말을 듣고 기존에 했던 작업들을 돌아봤다. 훈련 세트에서 모델을 훈련하고 테스트 세트에서 모델을 평가했다. 이렇게 평가된 점수를 보고 일반화 성능을 가늠했다. 그런데 이렇게 테스트 세트를 자꾸 사용해서 성능을 확인하다보면 결국 모델을 테스트 세트에 맞추게 되는 셈입니다. 올바른 모델 개발을 위해 테스트 세트는 모델을 만들고 나서 마지막에 딱 한 번만 사용하는 것이 좋다. 그렇다면 어떻게..
[기계학습/ML]10. 트리알고리즘 - 결정트리 '물꼬기'에서 근무하던 Pupbani는 같은 계열사인 '와인판다'로 파견을 가게 되었다. 와인판다에서는 신제품으로 캔와인을 만들어서 팔기로 했는데 너무 급하게 만들다보니 레드, 화이트 와인 표시가 누락되었습니다. 신팀장은 Pupbani를 불러 다음과 같이 말했습니다. "캔에 인쇄된 알코올 도수, 당도, pH 값으로 와인 종류를 구별하는 머신러닝 프로그램을 만들어주세요." "품질 확인용으로 뜯은 캔들도 있기 때문에 데이터는 충분할겁니다." Pupbani는 로지스틱 회귀 모델을 적용해보기로 했다. 데이터 준비 pandas 라이브러리를 통해 데이터를 불러왔다. 데이터가 누락된 값이 있는지 확인해보자 - info() 메서드 데이터 열에 대한 간단한 통계를 알아보자 - describe() 메서드 mean : 평균..
[기계학습/ML]9. 확률적 경사 하강법 - 손실 함수, 에포크 마켓 "물꼬기"는 럭키백 이벤트를 오픈하고 매출이 껑충 뛰었다. 이제 각지에서 수산물을 공급하겠다고 합니다. 영업팀은 이제 Pupbani에게 7개의 생선 중에서 일부를 무작위로 제공해 머신러닝 모델을 학습할 수 있도록 하고 있다. 하지만 수산물을 제공하는 기관이 많아 샘플을 골라내는 일이 너무 힘들다. 어느 생선이 먼저 올지도, 모든 생선이 도착할 때까지 기다릴 수도 없다. 어떻게 해야할까...? 점진적인 학습 기존의 훈련 데이터에 새로운 데이터를 추가하여 모델을 새로 훈련한다면? 시간이 지남에 따라 데이터의 크기가 엄청 늘어나서 모델 훈련을 위한 서버를 늘려야하기 때문에 사용할 수 없다. 이전 데이터를 버리고 훈련 데이터 크기를 일정하게 유지한다면? 데이터 셋의 크기가 늘어나지는 않지만 데이터를 버릴 ..
[기계학습/ML]8. 회귀 알고리즘(3) - 로지스틱 회귀 이제 Pupbani는 회귀 문제를 다룰 수 있고 특성값을 전처리하거나 특성을 조합해 새로운 특성을 만들 수 있게 되었다. 어느날 마케팅 팀에서 Pupbani에게 다음과 같은 요청을 했다. "7개의 생선이 랜덤하게 들어 있는 럭키백 이벤트를 진행할 것인데 이 럭키백에 있는 생선들이 나올 확률을 구해주세요!" "생선의 무게 ,길이, 높이, 두께, 대각선 길이 데이터도 같이 드릴게요!" Pupbani는 새로운 과제에 대해 생각에 잠겼다. 갑자기 번뜩이는 아이디어가 떠올랐다. K-최근접 이웃은 주변 이웃을 찾아주니까 이웃의 클래스 비율을 확률이라고 출력하면 되지 않을까? 사각형이 나올 확률 30% 원이 나올 확률 20% 삼각형이 나올 확룰 50% 사이킷런의 K-최근접 이웃 분류기로 하면 될 것 같다. 데이터 준..

728x90
반응형