【问题标题】:Calculating precision, recall, and F-measure for Logistic Regression classifier计算逻辑回归分类器的精度、召回率和 F 度量
【发布时间】:2019-11-27 00:58:24
【问题描述】:

我有一个标记且干净的数据集用于情绪分析,我使用逻辑回归进行分类。这是我的代码。

    import pandas as pd
    from sklearn.model_selection import train_test_split
    from sklearn.feature_extraction.text import CountVectorizer
    from sklearn.linear_model import LogisticRegression

    xl = pd.ExcelFile('d:/data.xlsx')
    df3 = xl.parse("Sheet1")

    cl_data, sent = df3['Clean-Reviews'].fillna(' '), df3['Sentiment']
    sent_train, sent_test, y_train, y_test = train_test_split(cl_data, sent, 
    test_size=0.25, random_state=1000)

    vectorizer = CountVectorizer()
    vectorizer.fit(sent_train)

    X_train = vectorizer.transform(sent_train)
    X_test  = vectorizer.transform(sent_test)


   classifier = LogisticRegression()
   classifier.fit(X_train, y_train)

当我尝试计算精度、召回率和 F-measure 时:

from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score, classification_report, confusion_matrix


print(f1_score(X_test, y_test, average="macro"))
print(precision_score(X_test, y_test, average="macro"))
print(recall_score(X_test, y_test, average="macro"))

我收到一个错误:

TypeError: len() of unsized object

谁能告诉这里有什么问题?提前致谢

【问题讨论】:

    标签: python-3.x sentiment-analysis precision-recall


    【解决方案1】:

    准确性是在预测值和真实值之间测量的,并且在您的代码中 x_test 不是预测值。应该是

    y_pred =  classifier.predict(x_test)
    print(f1_score(y_test,y_pred, average="macro"))
    

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 2019-12-14
      • 2012-11-26
      • 1970-01-01
      • 2020-06-22
      • 2016-02-14
      • 2020-02-23
      • 1970-01-01
      • 2014-11-20
      相关资源
      最近更新 更多