python/파이썬 머신러닝 완벽가이드
[NLP] pipeline을 활용한 직관적인 코드짜기!
2022.05.02 - [python/파이썬 머신러닝 완벽가이드] - [python] NLP 피처백터화 / 희소행렬 [python] NLP 피처백터화 / 희소행렬 2022.04.30 - [python/파이썬 머신러닝 완벽가이드] - [python] NLP 기초, 텍스트 전처리의 모든 것 [python] NLP 기초, 텍스트 전처리의 모든 것 텍스트 분석은 단어마다 쪼개는게 상당히 어렵고, 내 나름대로 coding-potato.tistory.com ** 본 포스팅은 앞선 글과 이어집니다! sklearn의 pipeline 클래스를 활용하면 피처 백터화와 ML알고리즘 학습/예측을 위한 코드 작성을 한 번에 진행할 수 있다. 이는 수행시간을 절약해주어 더욱 효과적인 코드를 작성하도록 도와준다!! Pipeline..
[NLP] 피처백터화 / 희소행렬
2022.04.30 - [python/파이썬 머신러닝 완벽가이드] - [python] NLP 기초, 텍스트 전처리의 모든 것 [python] NLP 기초, 텍스트 전처리의 모든 것 텍스트 분석은 단어마다 쪼개는게 상당히 어렵고, 내 나름대로 진입장벽이 꽤 높다고 생각해서 쉽게 도전하지 못했던 분야였다. 이번에 데이콘 NLP대회에 경험삼아 참가해서 여러 코드도 참고해 coding-potato.tistory.com 앞서는 NLP의 전반적인 설명과 텍스트 클렌징, 토큰화, 스톱워드 제거, Stemming/Lemmatization 에 대하여 개괄적으로 살펴보았다. 이번은 전처리된 텍스트를 어떤 방식으로 피처화를 진행하는지 살펴본다. 또한 단어를 피처화하게 되면 0값을 갖는 단어들이 무수히 많이 발생하게 되는데 ..
[NLP] NLP 기초, 텍스트 전처리의 모든 것
텍스트 분석은 단어마다 쪼개는게 상당히 어렵고, 내 나름대로 진입장벽이 꽤 높다고 생각해서 쉽게 도전하지 못했던 분야였다. 이번에 데이콘 NLP대회에 경험삼아 참가해서 여러 코드도 참고해서 따라해보고 적용해봐야겠다는 생각에 기초부터 다지자!! 결심했다. [파이썬 머신러닝 완벽가이드]에서 나오는 텍스트분석은 어떤 프로세스로 분석을 전개해가야 하는지 틀을 잡을 수 있게 도와주었다. 텍스트 분석 수행 프로세스 1) 텍스트 사전 준비작업 ( 텍스트 전처리 ) : 텍스트를 피처로 만들기 전, 미리 클렌징, 대/소문자 변경, 특수문자 삭제, 단어토큰화 작업, 스탑워드 제거, 어근추출 등의 텍스트 정규화를 진행 2) 피처 백터화/추출 : 사전 준비작업으로 가공된 텍스트에서 피처를 추출하고, 이에 백터값 할당 => B..
[python] SMOTE를 활용한 오버샘플링
이번에는 SMOTE를 활용한 오버샘플링을 적용해보겠습니다. 일반적으로 언더샘플링보다 오버샘플링이 예측 성능상 더 유리한 경우가 많아 주로 사용됩니다. ## 오버샘플링? 이상 데이터와 같이 적은 데이터 세트를 증식하여 학습을 위한 충분한 데이터를 확보하는 방법으로, 동일한 데이터의 단순 증식은 과적합을 유발할 수 있기 때문에 의미가 없으므로 원본 데이터의 피처값들을 아주 약간씩 변형하여 증식 여기서 주의할 점은 SMOTE를 적용할 때는 반드시 학습 데이터 세트만 오버샘플링을 해야합니다!!! 검증 데이터 세트 혹은 테스트 데이터 세트를 오버샘플링 하는 경우 결국 원본 데이터가 아닌 데이터 세트에서 검증되기 때문에 올바른 검증이 되지 않습니다. 캐글의 Credit Card Fraud Detection 데이터를..
[python] LGBMClassifier 단번에 성능 높이기
Light GBM은 XGBoost보다 개선된 성능과 빠른 수행률을 보여주어 많은 대회의 상위 랭커들이 활용하는 모델이라고 할 수 있습니다! 저는 LGBMClaasifier 모델을 활용할 때 특히 주의해야 할 부분을 짚어보려고 하는데요, LGBMClassifier hyper parameter 중 'boost_from_averge' 설정입니다. Light GBM이 버전업 됨에 따라 boost_from_average 파라미터의 디폴트 값이 False에서 True로 변경되었습니다. 레이블 값이 극도로 불균형한 분포인 데이터의 경우 boost_from_average = True 값은 재현율과 roc_auc_score를 매우 저하시킵니다! Light GBM 2.1.0이상 버전이거나, 불균형한 데이터 세트에서 예측 ..
[python] 교차검증을 간단하게 cross_val_score()
sklearn은 kfold 교차검증을 보다 편리하게 수행할 수 있는 API를 제공합니다. 바로 cross_val_score() 인데요! 기존에 폴드 세트를 지정하고, for 루프에서 반복으로 학습 및 테스트 데이터의 인덱스를 추출하고, 반복적으로 학습과 예측을 수행하는 일련의 과정을 한번에 수행해주는 API입니다. 특히 classifier 학습을 진행하는 경우 자동으로 stratified KFold 방식을 진행해주기 때문에 더할나위 없이 편하다고 할 수 있겠네요! cross_val_score() 사용법 cross_val_score(estimator, X, y, scoring=평가지표, cv=교차 검증 폴드 수) 까지가 주요 파라미터라고 할 수 있습니다. * 여기서 estimator가 classifier ..