Carpe diem

NLP 관련 석사 과정 재학 중 (2022.03 ~ )

Python 93

인스타그램 크롤링 (해시태그, 계정 ID)

교수님이 크롤링 관련 일을 주셔서, 기록용으로 업로드 ~ 0. 해시 태그 이용 input: 해시 태그 + 크롤링 게시글 개수 output: 게시글의 내용, 해시태그, 장소, 좋아요 수 1. 계정 ID 이용 input: 인스타 계정 아이디 output1: 계정 아이디, 게시글 수, 팔로워 수 output2: 계정 아이디, 최근 9개 게시글의 좋아요 수, 댓글 수, 본문, 해시태그, 장소 tqdm 라이브러리를 사용해 게시글 크롤링이 잘 진행되고 있는지도 확인해 보았다. 또한 댓글 수를 계산하기 위해, 댓글 창 부분의 '+' 버튼을 계속 누르도록 설정해주는 부분도 추가해 주었다. 아 그리고 크롤링할 때는 copy to xpath 기능을 활용함 ! * 크롤링한 데이터는 공부 용도로만 사용하였음

Python/crawling 2022.04.29

DNN(Deep Neural Networks) 성능 개선

[개요] Deep Neural Networks의 성능을 개선하는 방법에 대해 알아본다. [내용 정리] 1. 최적화 (Optimization) 0) 정의 -> Train data에서 최고의 성능을 얻으려고 모델 파라미터들을 조정하는 과정 1) 일반화 (Generalization) · 훈련된 모델이 처음 보는 데이터에 대해 잘 추론할 수 있는 상태 · 학습을 통해 일반화된 특징들을 잘 찾은 상태 2) 과대적합 (Overfitting) · 검증 결과 Train set에 대한 성능은 좋은데 validation dataset에 대한 성능은 안 좋은 상태로, 학습을 과하게 한 상태를 말함 · 학습이 과하게 되어 쓸데 없는 패턴을 모두 외워버려, 오히려 처음 본 데이터에 대한 예측 성능이 떨어진다. · 보통 Trai..

AI 2021.12.06

앙상블 Voting

[개요] Hard Voting, Soft Voting이 무엇인지 알아보고, 이들을 활용하는 예제를 다뤄본다. [내용 정리] 1. Voting 0) 정의 -> 서로 다른 종류의 알고리즘들을 결합하여 다수결 방식으로 최종 결과 출력한다. 1) Hard Voting -> 다수의 추정기가 예측한 값들 중 많은 것을 선택한다. 2) Soft Voting · 서로 다른 종류의 알고리즘들을 결합하여 다수결 방식으로 최종 결과 출력 · 다수의 추정기에서 각 레이블 별 예측한 확률들의 평균을 내서 높은 레이블값을 결과값으로 선택 · Hard Voting보다 Soft Voting의 성능이 더 좋다. 3) voting 함수 sklearn.ensemble.VotingClassifier · estimators: 앙상블할 모델들..

AI/Machine Learning 2021.12.01

그리드서치와 랜덤서치

[개요] 그리드서치와 랜덤서치가 무엇인지 알아보고, 어떻게 활용하는지 살펴본다. [내용 정리] 1. 그리드서치 0) 정의 -> 모델의 성능을 가장 높게 하는 최적의 하이퍼파라미터를 찾는 방법으로, 하이퍼파라미터 후보들을 하나씩 입력해 모델의 성능이 가장 좋게 만드는 값을 찾는다. 1) 함수 sklearn.model_selection.GridSearchCV -> 시도해볼 하이퍼파라미터들을 지정하면 모든 조합에 대해 교차검증 후 제일 좋은 성능을 내는 하이퍼파라미터 조합을 찾아준다. · fit(X, y): 학습 · predict(X): 분류-추론한 class, 회귀-추론한 값 · predict_proba(X): 분류문제에서 class별 확률을 반환 · cv_results_: 파라미터 조합별 평가 결과를 Di..

AI/Machine Learning 2021.11.29

불균형 클래스 분류 다루기

[개요] 데이터 불균형이 무엇인지 알아보고, 이를 해결할 수 있는 방법들 중 Cost-sensitive Learning 기법과 SMOTE 기법에 대해 다룬다. [내용 정리] 1. 데이터 불균형 0) 정의 -> 어떤 데이터에서 각 클래스 (주로 범주형 변수)가 가지고 있는 데이터의 양에 차이가 큰 경우를 말한다. 예시) 이번 포스팅에서 다룰 대출 문제 예측 데이터셋에도 데이터 불균형이 있다. 불균형 데이터에 대해 아무런 처리도 하지 않고 예측을 수행하면, 다음과 같은 결과가 발생한다. 1번 클래스 데이터 (소수)를 0번 클래스 데이터 (다수)로 예측하는 경우가 상당히 많으며, 이에 데이터 불균형 문제를 해결해보려고 한다. 1) 해결 방법 · 언더 샘플링 -> 불균형한 데이터 셋에서 높은 비율을 차지하던 클..

AI/Machine Learning 2021.11.28

과적합과 일반화

[개요] 과적합에 대해서 알아보고, 이러한 상황에서 하이퍼파라미터 튜닝을 통해 일반화하는 방법에 대해 알아본다. [내용 정리] 1. 과적합과 일반화 1) 과대적합 (overfitting) · 모델이 훈련 데이터에 대한 예측 성능은 너무 좋지만 일반성이 떨어져 새로운 데이터 (테스트 데이터)에 대해선 성능이 좋지 않은 것 · 모델이 훈련 데이터 세트의 특징에 너무 맞춰서 학습되었기 때문에 일반화 되지 않아 발생 * 과대적합은 학습 데이터 양에 비해 모델이 너무 복잡한 경우 발생하며, 이를 해결하기 위해 데이터의 양을 늘리거나 모델을 좀 더 단순하게 만드는 방법을 사용한다. (모든 모델은 모델의 복잡도를 변경할 수 있는 규제와 관련된 하이퍼파라미터를 제공) 2) 과소적합 (underfitting) · 모델이..

AI/Machine Learning 2021.11.26

수치형 데이터 전처리

[개요] 키와 몸무게 등 수치형 데이터들을 전처리 해야 하는 이유와, 수행하는 방법에 대해 알아본다. [내용 정리] 1. Feature Scaling (정규화) 0) 정의 · 각 피처가 가지는 값들의 숫자 범위 (척도, Scale)이 다를 경우 이 값의 범위를 일정한 범위로 맞추는 작업 · 트리 계열을 제외한 대부분의 머신러닝 알고리즘들이 Feature간의 서로 다른 척도에 영향을 받음 · Scaling (정규화)은 train set으로 fitting하며, test set이나 예측할 새로운 데이터는 train set으로 fitting 한 것으로 변환 * 같은 100이라는 숫자 데이터도 키가 100cm인 것과 무게가 100g인 것은 큰 차이가 있다. 이에 이러한 범위를 일정하게 맞춘다. 1) 함수 · fi..

AI/Machine Learning 2021.11.25