머신러닝 15

scikit learn, GridSearchCV

데이터의 정제를 완료하면 모델을 통해 데이터를 학습하고 타겟 값을 예측한다. 머신러닝에 있어서 모델의 성능을 높이기 위해서 가장 중요한 작업은 데이터를 모델에 맞게 정제하는 과정이라고 생각한다. 그 다음으로는 모델의 파라미터 값을 조정하여 성능을 높이는 방법이 있다. 모델에 따라 수 많은 파라미터들이 존재하기 때문에, 사람이 모든 값을 하나씩 바꿔가며 실험하는 것은 많은 노력과 인력을 필요로 한다. 사이킷 런에서는 모델의 파라미터를 설정할 때, 사람이 일정 값을 설정해주면 모델이 그 조합들을 자동적으로 조합하여 실험을 실행시키는 메서드를 제공하는데 그것이 바로 GridSearchCV 이다. greedy 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 ..

데이터분석 2023.08.18

Model 평가 및 지표들

정성적인 지표 R2 Score - Regression Model 의 정성적인 적합도 판단 - R2는 평균적으로 예측한 것에 비해 분산을 얼마나 축소시켰는지에 대한 판단 - 보통은 Correlation의 제곱으로 표현한다. - 정성적인 판단이 필요한 이유는 통상적인 Model의 예측력을 판단하기 위함이다 - 0 ~ 1 사이의 값을 갖고 1에 가까울 수록 좋은 모델이다. -R2 Score = SSE / SST = 1 - SSR / SST -SST : 총 편차 / SSR : 회귀식과 평균으로 예측한 것의 차이 -보통 0.25 이상일 경우 유의미하다고 판단한다.( 평균 예측한것 대비, 분산을 25% 이상 줄여준 것 ) 정량적인 지표 Mean Absolute Error : MAE - 평균 절대 오차 - 실제 값과..

NLP 2023.07.31

[머신러닝교과서] 1독 기념 사진촬영

후기 작년에 진행했던 멀티캠퍼스 부트캠프에서 교재로 제공받았던 머신러닝 서적.., 부트캠프 진행할 때는 책을 들춰볼 여유 조차 없어서 쟁여두고 있다가 부트캠프가 끝나고 6개월이 지나고 나서야 들춰보게 된 책이다. 대충 800페이지에 달하는 엄청난 두께의 책이라 1독 하는데 얼마나 걸린건지 모르겠다..3개월인가..? 이렇게 많이 걸린것은 나의 게으름 때문에 아닌가 생각한다. 책을 정독하면서 부트캠프 때, 스치듯 들었던 개념들을 다시 한번 익힐 수 있었다. 하지만 그냥..본 수준 이랄까..? 그때는 모든게 새로웠고 모든게 무슨 말인지 몰랐다면, 지금은 익숙한데 무슨 말인지 모르겠다는 느낌이랄까....? 언젠간 이해가 되고 사용하게 되는 날이 오겠지 하며 시작한 정독이지만...하 넘너 어려운 것.. 다음부터는..

[머신러닝교과서] GAN 모델 구현하기(2)

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com GAN 모델 훈련하기 손실 함수를 위해 BinaryCrossentropy 클래스 객체를 만들어 앞서 처리한 배치에 대해 생성자와 판별자의 손실을 계산한다. 이를..

[머신러닝교과서] GAN 모델 구현하기(1)

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 생성적 적대 신경망(Generative Adversarial Network, GAN)의 주요한 목적은 훈련 데이터셋과 동일한 분포를 가진 새로운 데이터를 합성하..

[머신러닝교과서] RNN을 사용한 영화 리뷰 감성 분석(2)

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 문장 인코딩을 위한 임베딩 층 이전 데이터 준비 단계에서 동일한 길이의 시퀀스를 생성했다. 이 시퀀스의 원소는 교유한 단어의 인덱스에 해당하는 정수이다. 이런 ..

10.4 RANSAC을 사용하여 안정된 회귀 모델 훈련, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 선형 회귀 모델은 이상치(outlier)에 크게 영향을 받을 수 있다. 이상치를 제거하려면 항상 해당 분야의 지식만 아니라 데이터 과학자로서 식견도 필요하다. ..

6.2 k-겹 교차 검증을 사용한 모델 성능 평가

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 모델이 너무 간단하면 과소적합(높은 편향)이 문제가 되고 너무 복잡하면 훈련 데이터에 과대 적합(높은 분산)이 될 수 있다. 적절한 편향-분산 트레이드오프를 찾..

5.차원 축소를 사용한 데이터 압축, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 5.1 주성분 분석을 통한 비지도 차원 축소 특성 선택 vs 특성 추출 - 원본 특성을 유지한다면 특성 선택 - 새로운 특성 공간으로 데이터를 변환하거나 투영한다면 특성 추출 특성 추출은 대부분의 관련 있는 정보를 유지하면서 데이터를 압축하는 방법이다. 이는 저장 공간을 절약하거나 학습 알고리즘의 계산 효율성을 향상시키고 차원의 저주(curse of dimensionality) 문제를 감소시켜 예측 성능을 향상시키기도 한다. 5.1.1 주성분 분석의 주요 단계 PCA : 비지도 선형 변환 기법 PCA를 많이 사용하는 애플리케이션에는 탐색적 데이터 분석과 주식 거래 시장의 잡음 제거, 생물정보학 분야에서 게놈(genome) 데이터나 유전자 발현(ge..

4.6 랜덤 포레스트의 특성 중요도 사용, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 4.6 랜덤 포레스트의 특성 중요도 사용 랜덤 포레스트를 사용하면 앙상블에 참여한 모든 결정 트리에서 계산한 평균적인 불순도 감소로 특성 중요도를 측정할 수 있다. 편리하게도 사이킷런의 랜덤 포레스트의 구현은 특성 중요도 값을 이미 수집하고 있다. RandomForestClassifier 모델을 훈련한 후 feature_importances_ 속성에서 확인할 수 있다. 다음 코드에서 Wine 데이터셋에서 500개의 트리를 가진 랜덤 포레스트를 훈련하고 각각 중요도에 따라 13개의 특성에 순위를 매긴다. * 트리 기반 모델은 표준화나 정규화를 할 필요가 없다. from sklearn.ensemble import RandomForestClassifie..