정말로 감성을 잘 예측했을까요?

Python으로 배우는 Sentiment Analysis

Violeta Misheva

Data Scientist

훈련/테스트 분할

전체 관측치를 훈련 세트와 테스트 세트로 나눈 그림. 훈련 세트가 더 큰 블록

  • 훈련 세트: 모델 학습에 사용(전체의 70–80%)
  • 테스트 세트: 모델 성능 평가에 사용
Python으로 배우는 Sentiment Analysis

Python에서의 훈련/테스트 분할

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123, stratify=y)
  • X : 특성
  • y : 레이블
  • test_size: 테스트에 사용할 비율
  • random_state: 분할을 재현하는 시드
  • stratify: 제공한 값의 클래스 비율을 샘플에 동일하게 유지
Python으로 배우는 Sentiment Analysis

훈련/테스트 분할로 로지스틱 회귀

log_reg = LogisticRegression().fit(X_train, y_train)
print('Accuracy on training data: ', log_reg.score(X_train, y_train))
0.76
print('Accuracy on testing data: ', log_reg.score(X_test, y_test))
0.73
Python으로 배우는 Sentiment Analysis

훈련/테스트 분할의 정확도 점수

from sklearn.metrics import accuracy_score
log_reg = LogisticRegression().fit(X_train, y_train)
y_predicted = log_reg.predict(X_test)
print('Accuracy score on test data: ', accuracy_score(y_test, y_predicted))
0.73
Python으로 배우는 Sentiment Analysis

혼동 행렬

이진 분류 문제의 혼동 행렬 예시

Python으로 배우는 Sentiment Analysis

Python에서의 혼동 행렬

from sklearn.metrics import confusion_matrix
log_reg = LogisticRegression().fit(X_train, y_train)
y_predicted = log_reg.predict(X_test)
print(confusion_matrix(y_test, y_predicted)/len(y_test))
[[0.3788 0.1224]
 [0.1352 0.3636]]
Python으로 배우는 Sentiment Analysis

연습해 봅시다!

Python으로 배우는 Sentiment Analysis

Preparing Video For Download...