데이터 분석 2-15 2주차 끝 & 숙제 설명

addison·2022년 5월 8일
0

데이터 분석

목록 보기
17/48

📄 네이버 쇼핑 리뷰 데이터를 이용해 각각 긍정/부정 리뷰의 워드 클라우드를 만들어보고, 긍정/부정을 분류할 수 있는 모델을 만들어보세요.

▶ [코드스니펫] 네이버 쇼핑 리뷰 데이터

2-2. 훈련 데이터 / 테스트 데이터 나누기

강의에서는 훈련 데이터 / 테스트 데이터가 이미 나누어져 있는 데이터를 사용했었습니다.

그럴 경우 그냥 각각 불러와서 사용하면 됐었지만, 지금 숙제에서는 데이터가 하나의 데이터프레임에 담겨있기 때문에, 이를 직접 훈련 데이터 / 테스트 데이터로 나눠줘야 합니다.

그럴 때 사용할 수 있는 것이 train_test_split이라는 함수입니다.

아래처럼 왼쪽에는 x_train, x_test, y_train, y_test 라고 적어주시고, (꼭 4개 다 적어야합니다!)

오른쪽에는 train_test_split(예측에 사용할 데이터: 여기서는 리뷰 (A), 예측할 데이터: 여기서는 긍정/부정 여부 (B), test_size = 원하는 테스트 데이터 셋의 크기) 이렇게 3가지를 명시해주면 됩니다.

그러면 왼쪽에 명시한 변수들인

  • x_train (훈련에 사용할 리뷰 데이터)

  • x_test (테스트에 사용할 리뷰 데이터)

  • y_train (훈련에 사용할 긍정/부정 여부)

  • y_test (테스트에 사용할 긍정/부정 여부)

    각각에 자동으로 데이터들이 담기게 됩니다!

(데이터들이 담길 때는 test_size 에 명시한 비율대로 훈련 / 테스트 데이터가 나눠서 담겨지게 됩니다. 0.3 이라고 명시하면, 지금 있는 전체 데이터 중에 70% 는 훈련 데이터에 담기고, 30% 는 테스트 데이터에 담기게 됩니다.)

아래는 숙제 데이터를 훈련 데이터 / 테스트 데이터로 나누는 예시 코드입니다.

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(df['reviews'], df['label'], test_size = 0.3)

2-3. 리뷰(A)에 대한 벡터화

아래는 훈련용 데이터인 x_train 을 벡터화하는 과정입니다!

# dtm 을 만들고,
dtmvector = CountVectorizer()
x_train_dtm = dtmvector.fit_transform(x_train)

# dtm 을 이용해서 tfidf 벡터를 생성
tfidf_transformer = TfidfTransformer()
tfidfv = tfidf_transformer.fit_transform(x_train_dtm)
  1. 모델을 생성하고 학습시키기
# 로지스틱 회귀를 활용한 모델 학습 예시
lr = LogisticRegression(C=10000, penalty='l2')
lr.fit(tfidfv, y_train)
  1. 테스트 데이터를 활용해서 정확도 확인하기
x_test_dtm = dtmvector.transform(x_test) #테스트 데이터를 DTM으로 변환
tfidfv_test = tfidf_transformer.transform(x_test_dtm) #DTM을 TF-IDF 행렬로 변환

predicted = lr.predict(tfidfv_test) #테스트 데이터에 대한 예측
print("정확도:", accuracy_score(y_test, predicted)) #예측값과 실제값 비교

최종적으로 워드 클라우드 이미지와 소스 코드를 제출해주시면 됩니다! 🙂

0개의 댓글