Python/Machine Learning 9

[Python ML]텍스트 마이닝 시각화(Text Mining_konlpy, word cloud)

* 텍스트 마이닝 Text Mining : 비/반정형 텍스트 데이터에서 자연어 처리(Natural Language Processing) 기술에 기반하여 유용한 정보를 추출, 가공하는 것을 목적으로 하는 기술 1. konlpy설치 2. 데이터 불러오기 - 문서 수집(Crawling): 뉴스 스크랩한 내용을 txt파일로 구글 드라이브에 업로드해서 불러옴 3. konlpy를 통해 한글 형태소 분석 - okt.pos(): 기사 안의 모든 단어의 품사를 붙여주는 함수 - n_adj 리스트에 명사(Noun), 형용사(Adjective) 단어만 추가시킴 4. stop words 설정 - 위에서 나온 단어들 중 의미가 없는 단어들 n_adj 리스트에서 제거 5. 단어별 빈도수 출력 6. 빈도수 시각화(Word Clou..

[Python ML]서포트 벡터 머신(SVM)_SVC/SVR, 나이브 베이즈(Naive Bayes)_GaussianNB/BayesianRidge

* 서포트 벡터 머신(SVM; Support Vector Machine) - '초평면을 활용한 분류모형' - 데이터를 선형으로 분리하는 최적의 선형 결정 경계를 찾는 알고리즘. 알고리즘의 목표는 클래스가 다른 데이터들을 '가장 큰 마진(margin)'으로 분리해내는 선 또는 면(=초평면)을 찾아내는 것 - 마진(margin): 두 데이터 군과 결정 경계가 떨어져있는 정도 - 대부분의 데이터는 이상적으로 분리되어 있지 않음. 많은경우 이상치(outlier)들이 관측됨. - 이런 경우 데이터를 선형적으로 완벽하게 분리하는 것은 불가능함. 이를 해결하기 위해 약간의 오류를 허용하는 파라미터 = 'C' (cost) - 낮은 C값: 데이터샘플이 다른 클래스에 놓이는 것을 많이 허용 (일반적인 결정경계 찾아냄) ➡..

[Python ML]K-최근접이웃(K-NN), 의사결정나무(Decision Tree)

* K-최근접 이웃(K-NN; K-Nearest Neighbor) - 가장 근접하게 있는 데이터 종류에 따라서 해당 데이터의 종류를 정해주는 알고리즘 (유유상종) - 판별하고 싶은 데이터와 인접한 k개의 데이터를 찾아, 해당 데이터의 라벨이 다수인 범주로 데이터를 분류하는 방식 - k는 '홀수'로 하는것이 좋음. 짝수일 경우 동점 상황이 만들어져 분류할 수 없는 경우가 발생할 수 있기 때문 * K-NN 코딩하기 1) KNeighbors Classifier(분류형) - 순서: 데이터 분할 - 데이터 표준화 - 데이터 밸런싱 - 모델 생성 - 모델 적용 - 결과값 도출 - X는 이산형 변수만 가지고 있기 때문에, StandardScaler()만 적용 - 오버샘플링 SMOTE 적용 - knn 분류모델 생성: ..

[Python ML]분류모델평가_오분류표, ROC커브 & 로지스틱 회귀분석(Logistic, Multinomial Logistic Regression Analysis)

* 분류모델 평가 1) 오분류표 - Accuracy(정확도) = TP + TN / TP + FN + FP + TN => 분자가 모두 T - Error Rate(오분류율) = FP + FN / TP + FN + FP + TN (1 – Accuracy) => 분자가 모두 F - Sensitivity(민감도) & Recall(재현율) = TP / P => 두개의 식이 같음 - Specificity(특이도) = TN / N => sensitivity의 반대편 - Precision(정밀도) = TP / TP + FP => 모두 P에 관한 것 - F1 score = 2 * precision * recall / precision + recall => 더하기가 아래로(분모로) 간다라고 생각 *accuracy, F1 s..

[Python ML]규제기법(Regularization)_릿지(Ridge), 라쏘(Lasso), 엘라스틱 넷(Elastic-Net)

* 규제(Regularization)란? : 우리 말로 정규화라고도 불린다. 독립변수의 수가 지나치게 많거나 변수간 다중공산성이 크다고 여겨질 때, 회귀 모델의 적합 성능을 향상시키기 위해 변수 선택이나 차원 축소 등의 방법을 사용할 수 있는데, 여기서 한 가지 더 선택할 수 있는 옵션이 바로 규제(Regularization)방법이다. 이 방법은 회귀계수를 구할 때, 회귀 계수의 크기에 제약을 두어 설명력이 낮은 독립변수에 대한 가중치를 줄인다. (설명 출처: https://velog.io/@cleansky/%EC%9D%B8%EC%82%AC%EC%9D%B4%EB%93%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%8C%80%ED%91%9C%EC%A0%81%EC%9D%B8-..

[Python ML]선형 회귀분석(Linear Regression Analysis)

* 선형 회귀 분석 - 종속변수 Y와 한 개 이상의 독립변수 X와의 선형 상관관계를 모델링하는 회귀분석기법 - 가정: 선형성, 등분산성, 독립성, 비상관성, 정상성(정규성) - 독립변수의 갯수에 따라 1개일 경우 '단순 선형 회귀', 2개 이상일 경우 '다중 선형 회귀'로 나누어짐 (1) 단순 선형 회귀 (2) 다중 선형 회귀 - 회귀 모델 주요 평가지표 1) MSE(평균 제곱 오차) : 실제 값과 예측 값의 차이를 제곱해 평균한 것 : from sklearn.metrics import mean_squared_error 2) MAE(평균 절대 오차) : 실제 값과 예측 값의 차이를 절댓값으로 변환해 평균한 것 : from sklearn.metrics import mean_absolute_error 3) ..

[Python ML]변수 선택(일변량 통계기반/모형기반), 데이터 밸런싱(언더 샘플링/오버 샘플링(SMOTE))

* 변수 선택(특성 선택) Variable Selection - 새로운 특성을 추가할 때 혹은 고차원 데이터 셋을 사용할 때 가장 유용한 특성만 선택하고 나머지는 무시하여 특성의 수를 줄이는 방법 - 다중공산성 혹은 과적합이 발생하는 것을 방지하기 위한 방법 - 종류 1) 일변량 통계기반 선택 : 특정 일변량 통계량을 기반으로 특성 선택 : from sklearn.feature_selection from SelectKbest 2) 모형 기반 선택 : 지도 학습 머신러닝 모델을 사용하여 특성의 중요도를 평가해서 가장 중요한 특성만 선택 : from sklearn.feature_selection import SelectFromModel 3) 반복적 변수 선택 : (1) 특성을 하나도 선택하지 않은 상태로 시..

[Python ML]교차검증(Cross Validation)_k-fold/층화k-fold, 그리드 서치(Grid Search)

*빅데이터 분석 - 훈련 데이터(Train data): 모델을 학습시키는데 들어가는 데이터 - 검증 데이터(Test data): 학습된 모델의 성능을 평가하기 위한 데이터. 모델의 일반화를 판단하는데 사용 (*검증 데이터는 절대로 훈련 데이터를 포함해서는 안됨!) - Train data : Test data = 8 : 2 (or 7 : 3) -과적합(Overfitting) : 모델이 너무 복잡하여 훈련 데이터(Train)에는 적합하지만 일반화하기 힘든 상황 -부적합(Underfitting) : 모델이 너무 단순하여 훈련 데이터에서의 성능이 좋지 않아 일반화하기 힘든 상황 * 기계학습(Machine Learning) - ‘학습’? : 데이터로부터 모형을 만들어 나가는 것 1) 지도학습: 인덱스가 있는 것을..

728x90
반응형