-
텍스트 분류 실습 - 뉴스그룹 분류(2)Python Machine Learning/텍스트 분석 2020. 12. 23. 21:26
[ TF - IDF 기반 벡터화 ]
COUNT 기반 벡터화보다 높은 예측 정확도 제공. = 많은 문서와 많은 텍스트를 가지는 문서에서는 count 벡터화보다는 TF - IDF 벡터화가 좋은 예측 결과가 도출.
[ 스톱워드, ngram_range, max_df를 변경한 TF - IDF 기반 벡터화 ]
stop_ward를 'none'에서 'english', ngram_range는 (1,1)에서 (1,2), max_df=300으로 변경 [ 사이킷런 파이프라인 ]
- 파이프라인의 사용은 데이터의 전처리와 머신러닝 학습 과정을 통일된 API 기반에서 처리가능해 직관적인 ML모델 생성가능하다. 또한 대용량 데이터의 피처 벡터화 결과를 별도 데이터로 저장하지 않고 스트림 기반에서 머신러닝 알고리즘의 데이터로 입력할 수 있기 때문에 수행 시간을 절약할 수 있다.
다음은 파이프라인을 이용해 TF - IDF 와 로지스틱 회귀 객체를 연결하여 벡터화를 수행하는 방식이다.
[ GridSearchCV를 이용해 로지스틱 회귀의 하이퍼 파라미터 최적화 및 파이프라인 생성]
로지스틱 회귀의 하이퍼 파라미터 최적화 수행 -> 로지스틱 회귀의 C가 10일 때 가장 좋은 예측 정확도 0.704 TD - IDF 와 로지스틱 회귀를 연결하는 파이프라인 생성 [ 사이킷런 파이프라인 사용 및 GridSearchCV와 결합 ]
다음 예제는 GridSearCV에 파이프라인을 입력하면서 TfidfVectorizer의 파라미터와 로지스틱 회귀의 하이퍼 파라미터를 함께 최적화하는 예제.
파이프라인 + GridSearchCV 기반으로 하이퍼 파라미터 튜닝을 적용해 27개의 파라미터 경우의 수 X 3개의 CV로 81번의 학습과 검증 수행. ->GridSearchCV에 파이프라인을 입력할 경우 param_grid의 입력값은 딕셔너리 형태의 key, value값을 가짐. 이 때 key값은 개별 객체 명과 파라미터명/하이퍼 파라미터명을 결합한 형태로 key값으로 할당( 파이프라인을 구성하는 피처 벡터화 객체의 파라미터와 Estimator 객체의 하이퍼 파라미터를 각각 구별할 수 있어야하기 때문 )
-> 파이프라인 + GridSearchCV는 파라미터에 따라 튜닝 시간이 달라질 수 있음을 유의해야함
'Python Machine Learning > 텍스트 분석' 카테고리의 다른 글
감성분석 - IMDB 영화평( 비지도 학습기반 분석 ) (0) 2021.01.16 감성 분석 - IMDB 영화평 (0) 2020.12.24 텍스트 분류 실습 - 뉴스그룹 분류 (0) 2020.11.27 Bag of Words - BOW (0) 2020.11.14 텍스트 사전 준비 작업( 텍스트 전처리 ) - 텍스트 정규화 (0) 2020.11.14