1
我有一个包含二元分类问题的不平衡数据集。我构建了随机森林分类器并使用了10次k折交叉验证褶皱。如何计算K折叠交叉验证的不平衡数据集的精度,召回率和f1得分以及python中的10倍
kfold = model_selection.KFold(n_splits=10, random_state=42)
model=RandomForestClassifier(n_estimators=50)
我被录取结果
print("Accuracy: %.3f%% (%.3f%%)") % (results.mean()*100.0, results.std()*100.0)
Accuracy: 70.900% (10.345%)
我已经计算我的预测的平均值和标准偏差得到了10倍
results = model_selection.cross_val_score(model,features,labels, cv=kfold)
print results
[ 0.60666667 0.60333333 0.52333333 0.73 0.75333333 0.72 0.7
0.73 0.83666667 0.88666667]
我算精度的结果如下
predictions = cross_val_predict(model, features,labels ,cv=10)
由于这是一个不平衡的数据集,我想计算每次折叠的精度,召回率和f1分数并对结果取平均值。 如何计算python中的值?
如何计算每次折叠的训练和测试错误? – Jayashree
cross_val_score仅计算验证数据上的度量值。但是你可以制作两个自定义迭代器。第一个迭代器将产生你训练对象的位置索引,而不是验证位置索引产生相同的列车对象你的特征DataFrame的位置索引。第二个迭代器将产生与第一个迭代器相同的对象位置索引,但val位置索引不会产生您的要素DataFrame的剩余对象位置索引。 –
在使用自定义第一个cv的cross_val_score之后,您将在火车集上获得指标值,并在使用自定义第二个cv的cross_val_score之后获得验证集上的指标值。 –