【发布时间】:2015-02-06 01:22:05
【问题描述】:
我正在使用 scikit 对垃圾邮件/火腿数据执行逻辑回归。 X_train 是我的训练数据,y_train 是标签('spam' 或 'ham'),我用这种方式训练了我的 LogisticRegression:
classifier = LogisticRegression()
classifier.fit(X_train, y_train)
如果我想获得 10 倍交叉验证的准确度,我只写:
accuracy = cross_val_score(classifier, X_train, y_train, cv=10)
我认为可以通过简单地添加一个参数来计算精度和召回率:
precision = cross_val_score(classifier, X_train, y_train, cv=10, scoring='precision')
recall = cross_val_score(classifier, X_train, y_train, cv=10, scoring='recall')
但它会导致ValueError:
ValueError: pos_label=1 is not a valid label: array(['ham', 'spam'], dtype='|S4')
它与数据有关(我应该对标签进行二值化吗?)还是它们改变了cross_val_score 函数?
提前谢谢你!
【问题讨论】:
标签: python machine-learning scikit-learn precision logistic-regression