我有一个二分类问题,拥有一个大小可变的通用 Y 向量,如下所示:
y = [1, 0, 1, 1, 0, 1 .. ]
我想生成一个语法 Y 向量(大小相同),但具有不同的准确率,如下所示:
y_1 = [ ... ] 50% 准确率y_2 = [ ... ] 60% 准确率y_3 = [ ... ] 70% 准确率y_4 = [ ... ] 任意 % 准确率
有没有一种高效的方法来做到这一点?
而不是每次都手动编辑向量?
回答:
你可以这样做:
from sklearn import metricsdef generateAccVectors(y_truth, percentage): y = list(y_truth) for i in range(len(y)): if metrics.accuracy_score(y_truth, y)<= percentage: break if(y[i] ==1): y[i]= 0 else: y[i] =1 return y
当然,如果标签数量不能被百分比整除,这种方法不会生成精确准确率的向量。
示例:
from sklearn import metricsy = [1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1 ] y_1= generateAccVectors(y, 0.85)print(metrics.accuracy_score(y, y_1))#output: 0.8333333333333334