new AUC code
This commit is contained in:
parent
87a9c22795
commit
81414c0e5b
@ -256,6 +256,7 @@ namespace xgboost{
|
|||||||
ModelParam(void){
|
ModelParam(void){
|
||||||
base_score = 0.5f;
|
base_score = 0.5f;
|
||||||
loss_type = 0;
|
loss_type = 0;
|
||||||
|
num_feature = 0;
|
||||||
memset(reserved, 0, sizeof(reserved));
|
memset(reserved, 0, sizeof(reserved));
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@ -27,6 +27,8 @@ namespace xgboost{
|
|||||||
const DMatrix::Info &info ) const = 0;
|
const DMatrix::Info &info ) const = 0;
|
||||||
/*! \return name of metric */
|
/*! \return name of metric */
|
||||||
virtual const char *Name(void) const = 0;
|
virtual const char *Name(void) const = 0;
|
||||||
|
/*! \brief virtual destructor */
|
||||||
|
virtual ~IEvaluator(void){}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*! \brief RMSE */
|
/*! \brief RMSE */
|
||||||
@ -104,8 +106,8 @@ namespace xgboost{
|
|||||||
std::vector<unsigned> tgptr(2,0); tgptr[1] = preds.size();
|
std::vector<unsigned> tgptr(2,0); tgptr[1] = preds.size();
|
||||||
const std::vector<unsigned> &gptr = info.group_ptr.size() == 0 ? tgptr : info.group_ptr;
|
const std::vector<unsigned> &gptr = info.group_ptr.size() == 0 ? tgptr : info.group_ptr;
|
||||||
utils::Assert( gptr.back() == preds.size(), "EvalAuc: group structure must match number of prediction" );
|
utils::Assert( gptr.back() == preds.size(), "EvalAuc: group structure must match number of prediction" );
|
||||||
const unsigned ngroup = static_cast<unsigned>( gptr.size() );
|
const unsigned ngroup = static_cast<unsigned>( gptr.size() - 1 );
|
||||||
|
|
||||||
double sum_auc = 0.0f;
|
double sum_auc = 0.0f;
|
||||||
#pragma omp parallel reduction(+:sum_auc)
|
#pragma omp parallel reduction(+:sum_auc)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -25,8 +25,9 @@ namespace xgboost{
|
|||||||
const unsigned ndata = static_cast<unsigned>(preds.size());
|
const unsigned ndata = static_cast<unsigned>(preds.size());
|
||||||
#pragma omp parallel for schedule( static )
|
#pragma omp parallel for schedule( static )
|
||||||
for (unsigned j = 0; j < ndata; ++j){
|
for (unsigned j = 0; j < ndata; ++j){
|
||||||
grad[j] = loss.FirstOrderGradient(preds[j], info.labels[j]) * info.GetWeight(j);
|
float p = loss.PredTransform(preds[j]);
|
||||||
hess[j] = loss.SecondOrderGradient(preds[j], info.labels[j]) * info.GetWeight(j);
|
grad[j] = loss.FirstOrderGradient(p, info.labels[j]) * info.GetWeight(j);
|
||||||
|
hess[j] = loss.SecondOrderGradient(p, info.labels[j]) * info.GetWeight(j);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
virtual const char* DefaultEvalMetric(void) {
|
virtual const char* DefaultEvalMetric(void) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user