본문 바로가기
교육, 대외활동, 봉사/BIG리더 AI 아카데미 2기

[데이터 청년 캠퍼스] 경남대학교 빅리더 AI 아카데미 - Day 11

by g0n1 2020. 7. 17.
728x90

오전 - 자연어처리(NLP)

용어

  • DTM: 문서 행렬 (Documnet Term Matrirx)
  • tf: 현재 문서에 출현한 단어의 빈도(횟수) (Term Frequency)
  • idf :  역문서 빈도, 전제 문서의 수를 해당 단어가 나오는 문서수로 나눈 것(Inverse Document Frequency)
  • td-idf : 단어빈도 * 역문서 빈도

문서행렬은 문서에 나타나는 어휘를 모아 one-hot 인코딩으로 표현한 벡터다. 

모든 어휘들이 columns가 되는데 columns에서 저빈도 어휘들은 빼고 고빈도 어휘들로 채운다.

고빈도 어휘들 중에서도 불용어(을/를, 은/는 ....)는 제외한다.

이때 빈도는 tf나 tf-idf가 될 수 있다. 

 

tf가 단순히 출현 횟수만을 카운트한다.

if-idf는 특정 문서들에만 나오는 어휘들에 대한 IDF값은 높게 주고, 모든 문서에서 나오는 단어들의 IDF값은 적게 준다.

즉, TF-IDF는 불용어의 가능성을 감안한 빈도다.

 

# 데이터를 학습용과 테스트 용으로 나눠준다
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x_data, y_data, stratify=True, shuffle=True...)


# train_data_text의 columns을 만들어주고, 그 columns에 맞게 data를 벡터화 시켜준다.
# vect객체는 한번 만든거로 y한테도 써야한다. y도 새로운 vect 객체를 만들면 안 된다.
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(min_df=5).fit(train_data_text)
X_train = vect.transform(train_data_text)

# 
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression

lr = LogisticRegression(solver='liblinear") # 모델 생성
lr.fit(X_train, y_train)                    # 모델 훈련

x는 대문자로 쓰고 y는 소문자로 쓰는 이유는, x가 2차원데이터라는 것을 표현하기 위함이라네요. 몰랐습니다.

 

from collections import Counter
# feature와 각 feature의 개수를 묶어 딕셔너리로 반환한다

 

 

그 뒤에 딥러닝도 했는데 뭔말인지 모르겠네요^^

과외받고 싶습니다...

 

오후 - 머신러닝(ML)

# 모델 성능평가 관련 모듈
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
from sklearn.metrics import roc_auc_score
from sklearn.metrics import mean_squared_error


# model_selection
from sklearn.model_selection import train_test_split # 테스트 데이터 셋 분리
from sklearn.model_selection import KFold            # Kfold
from sklearn.model_selection import StratifiedKFold  # Stratified Kfold
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import cross_validate  
from sklearn.model_selection import GridSearchCV


# 의사결정나무
from sklearn.tree import DecisionTreeClassifier

# iris 데이터셋
from sklaern.datasets import iris

그냥 오늘 나왔던 것들만 다 썼습니다.

얼른 자고 일찍 일어나서 따로 강의들어야 합니다 ㅎㅎ

빨리 일어나면 좋겠네요.

바위^^

728x90

댓글