Skip to content

Commit

Permalink
Modified argmax() method of
Browse files Browse the repository at this point in the history
    * MultilabelModel
    * HashedMultilabelModel
to give correct value of ret->score
  • Loading branch information
pandaabinash committed Jun 20, 2014
1 parent 44f064b commit ebabc2b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 13 deletions.
8 changes: 2 additions & 6 deletions src/shogun/structure/HashedMultilabelModel.cpp
Expand Up @@ -270,11 +270,6 @@ CResultSet * CHashedMultilabelModel::argmax(SGVector<float64_t> w,
m_seeds[c]);
score = phi.dense_dot(1.0, w.vector, w.vlen, 0);

if (training)
{
score += delta_loss(y_truth[c], 1);
}

if (score > 0)
{
y_pred_dense[c] = 1;
Expand Down Expand Up @@ -304,7 +299,8 @@ CResultSet * CHashedMultilabelModel::argmax(SGVector<float64_t> w,
ret->delta = CStructuredModel::delta_loss(feat_idx, y_pred_label);
ret->psi_truth_sparse = CStructuredModel::get_sparse_joint_feature_vector(
feat_idx, feat_idx);
ret->score -= ret->psi_truth_sparse.dense_dot(1, w.vector, w.vlen, 0);
ret->score += (ret->delta - ret->psi_truth_sparse.dense_dot(1, w.vector,
w.vlen, 0));
}

return ret;
Expand Down
9 changes: 2 additions & 7 deletions src/shogun/structure/MultilabelModel.cpp
Expand Up @@ -184,11 +184,6 @@ CResultSet * CMultilabelModel::argmax(SGVector<float64_t> w, int32_t feat_idx,
{
score = dot_feats->dense_dot(feat_idx, w.vector + c * feats_dim, feats_dim);

if (training)
{
score += delta_loss(y_truth[c], 1);
}

if (score > 0)
{
y_pred_dense[c] = 1;
Expand All @@ -215,8 +210,8 @@ CResultSet * CMultilabelModel::argmax(SGVector<float64_t> w, int32_t feat_idx,
ret->delta = CStructuredModel::delta_loss(feat_idx, y_pred);
ret->psi_truth = CStructuredModel::get_joint_feature_vector(
feat_idx, feat_idx);
ret->score -= SGVector<float64_t>::dot(w.vector, ret->psi_truth.vector,
dim);
ret->score += (ret->delta - SGVector<float64_t>::dot(w.vector,
ret->psi_truth.vector, dim));
}

return ret;
Expand Down

0 comments on commit ebabc2b

Please sign in to comment.