• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

X_train['review'] 에 대해서 질문드립니다.

21.05.12 11:28 작성 조회수 146

0

해당 사항에 대한 질문이 있었지만 해결되지 않는 부분이 있어서 질문드립니다.

X_train 뒤의 ['review']를 지우고 실행시켰을 경우

ValueError: Found input variables with inconsistent numbers of samples: [1, 17500]

라는 에러가 발생하여 어떠한 것이 문제인지 알고싶습니다.

답변 2

·

답변을 작성해보세요.

0

음, 특별히 'review' 컬럼을 지우실 이유가 있나요?

CountVectorizer는 텍스트형과 같은 문자열에 작용합니다. 그러니가 텍스트 문자열 1개 feature에만 적용됩니다. 여러개의 feature들에 적용할 수 없습니다.

0

어떻게 변경을 하셨는지, 전체 코드를 올려 주십시요.  몇 라인 또는 몇 cell 또는 제가 참조할 수 있도록 구체적으로 어떻게 변경하였는지 말씀해 주시면 됩니다.

김남욱님의 프로필

김남욱

질문자

2021.05.14

from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, roc_auc_score

# 스톱 워드는 English, filtering, ngram은 (1,2)로 설정해 CountVectorization수행. 
# LogisticRegression의 C는 10으로 설정. 
pipeline = Pipeline([
    ('cnt_vect', CountVectorizer(stop_words='english', ngram_range=(1,2) )),
    ('lr_clf', LogisticRegression(C=10))])

# Pipeline 객체를 이용하여 fit(), predict()로 학습/예측 수행. predict_proba()는 roc_auc때문에 수행.  
pipeline.fit(X_train['review'], y_train)
pred = pipeline.predict(X_test['review'])
pred_probs = pipeline.predict_proba(X_test['review'])[:,1]

print('예측 정확도는 {0:.4f}, ROC-AUC는 {1:.4f}'.format(accuracy_score(y_test ,pred),
                                        roc_auc_score(y_test, pred_probs)))
해당 코드에서 X_train과 X_test 뒤의 ['review']를 지우고 실행시켰습니다.