nit*_*254 2 machine-learning python-2.7 scikit-learn
我经常使用scikit-learn,我想了解一些关于SGD"class_ weight"参数的见解.
我能够弄清楚直到函数调用
plain_sgd(coef, intercept, est.loss_function,
penalty_type, alpha, C, est.l1_ratio,
dataset, n_iter, int(est.fit_intercept),
int(est.verbose), int(est.shuffle), est.random_state,
pos_weight, neg_weight,
learning_rate_type, est.eta0,
est.power_t, est.t_, intercept_decay)
Run Code Online (Sandbox Code Playgroud)
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/stochastic_gradient.py
在此之后它转到sgd_fast并且我对cpython不是很好.你能否对这些问题表现出一些敏锐的态度.
class_weight 确实可以帮助提高在不平衡数据上训练的分类模型的ROC AUC或f1分数.
您可以尝试class_weight="auto"选择与班级频率成反比的权重.你也可以尝试传递你自己的权重有一个python字典,类标签作为键,权重作为值.
可以通过交叉验证的网格搜索来调整权重.
在内部,这是通过sample_weight从class_weight(取决于每个样本的类标签)得出来完成的.然后使用样本权重来缩放单个样本对用于训练具有随机梯度下降的线性分类模型的损失函数的贡献.
通过penalty和alpha超参数独立控制特征惩罚.sample_weight/ class_weight对它没有影响.
| 归档时间: |
|
| 查看次数: |
1610 次 |
| 最近记录: |