带加权 AUC 的网格搜索
grid search with weighted AUC
所以我正在使用样本权重函数,我不想使用默认的 sklearn 评分函数来衡量性能。
它好像说 Here 我可以传递 GridSearchCV
字符串 'roc_auc' 它应该为我计算 auc 但它计算的 auc 是加权 auc 还是只是香草拍卖?
感谢书呆子狙击手。
我制作了一个二进制分类数据集来测试这个问题。
x y weight
0 0 1
1 1 1
<repeated 25 times>
0 1 0
1 0 0
<repeated 25 times>
使用python:
X = np.array([[0], [1]] * 25 + [[0], [1]] * 25)
y = np.array([ 0 , 1 ] * 25 + [ 1 , 0 ] * 25)
w = np.array([ 1 , 1 ] * 25 + [ 0 , 0 ] * 25)
在这个数据集中,我们可以看到,如果样本权重存在,模型将产生非常好的拟合并且具有非常低的对数损失。如果没有权重,损失会非常大。
然后我们可以build useGridSearchCV
看权重有没有用
clf = LogisticRegression(solver='newton-cg', C=100)
gs = GridSearchCV(clf, {},
fit_params={"sample_weight": w},
scoring="log_loss", cv=KFold(y.shape[0],10, shuffle=True))
gs.fit(X,y)
gs.grid_scores_
[mean: -2.68562, std: 0.68038, params: {}]
我们可以看到损失相当高,这表明没有使用权重。
我给 scikit-learn 写了一个补丁来解决这个问题。请考虑它是实验性的。 https://github.com/scikit-learn/scikit-learn/compare/master...dmaust:master
应用补丁后,我们可以启用 score_sample_weight
,重复之前的测试,并可以看到我们期望从考虑的权重中得到的对数损失。
gs.score_sample_weight=True
gs.fit(X,y)
gs.grid_scores_
[mean: -0.00486, std: 0.00016, params: {}]
所以我正在使用样本权重函数,我不想使用默认的 sklearn 评分函数来衡量性能。
它好像说 Here 我可以传递 GridSearchCV
字符串 'roc_auc' 它应该为我计算 auc 但它计算的 auc 是加权 auc 还是只是香草拍卖?
感谢书呆子狙击手。
我制作了一个二进制分类数据集来测试这个问题。
x y weight
0 0 1
1 1 1
<repeated 25 times>
0 1 0
1 0 0
<repeated 25 times>
使用python:
X = np.array([[0], [1]] * 25 + [[0], [1]] * 25)
y = np.array([ 0 , 1 ] * 25 + [ 1 , 0 ] * 25)
w = np.array([ 1 , 1 ] * 25 + [ 0 , 0 ] * 25)
在这个数据集中,我们可以看到,如果样本权重存在,模型将产生非常好的拟合并且具有非常低的对数损失。如果没有权重,损失会非常大。
然后我们可以build useGridSearchCV
看权重有没有用
clf = LogisticRegression(solver='newton-cg', C=100)
gs = GridSearchCV(clf, {},
fit_params={"sample_weight": w},
scoring="log_loss", cv=KFold(y.shape[0],10, shuffle=True))
gs.fit(X,y)
gs.grid_scores_
[mean: -2.68562, std: 0.68038, params: {}]
我们可以看到损失相当高,这表明没有使用权重。
我给 scikit-learn 写了一个补丁来解决这个问题。请考虑它是实验性的。 https://github.com/scikit-learn/scikit-learn/compare/master...dmaust:master
应用补丁后,我们可以启用 score_sample_weight
,重复之前的测试,并可以看到我们期望从考虑的权重中得到的对数损失。
gs.score_sample_weight=True
gs.fit(X,y)
gs.grid_scores_
[mean: -0.00486, std: 0.00016, params: {}]