Skip to content

Commit

Permalink
Fixed tree guided multitask logistic regression
Browse files Browse the repository at this point in the history
  • Loading branch information
lisitsyn committed Jul 1, 2012
1 parent 82caba4 commit 7765f01
Showing 1 changed file with 2 additions and 22 deletions.
24 changes: 2 additions & 22 deletions src/shogun/lib/slep/slep_tree_mt_lr.cpp
Expand Up @@ -30,7 +30,6 @@ slep_result_t slep_tree_mt_lr(
double funcp = 0.0, func = 0.0;

int n_tasks = options.n_tasks;
//SG_SPRINT("N tasks = %d \n", n_tasks);

int iter = 1;
bool done = false;
Expand Down Expand Up @@ -81,7 +80,7 @@ slep_result_t slep_tree_mt_lr(
else
lambda_max = findLambdaMax_mt(ATb, n_feats, n_tasks, options.ind_t, options.n_nodes);

lambda_max /= n_feats*n_tasks;
lambda_max /= n_vecs*n_tasks;

lambda = z*lambda_max;
}
Expand Down Expand Up @@ -144,7 +143,6 @@ slep_result_t slep_tree_mt_lr(
while (!done && iter <= options.max_iter)
{
beta = (alphap-1.0)/alpha;
//SG_SPRINT("beta = %f \n", beta);

for (i=0; i<n_feats*n_tasks; i++)
s[i] = w[i] + beta*wwp[i];
Expand All @@ -154,8 +152,6 @@ slep_result_t slep_tree_mt_lr(
for (i=0; i<n_vecs; i++)
As[i] = Aw[i] + beta*(Aw[i]-Awp[i]);

//SG_SPRINT("As = %f\n",SGVector<float64_t>::dot(As,As,n_vecs));

double fun_s = 0.0;
for (i=0; i<n_tasks*n_feats; i++)
g[i] = 0.0;
Expand All @@ -181,10 +177,6 @@ slep_result_t slep_tree_mt_lr(
}
fun_s /= n_vecs;

//SG_SPRINT("fun_s = %f\n", fun_s);

//SG_SPRINT("g = %f\n", SGVector<float64_t>::dot(g,g,n_feats*n_tasks));

for (i=0; i<n_feats*n_tasks; i++)
wp[i] = w[i];

Expand All @@ -195,7 +187,7 @@ slep_result_t slep_tree_mt_lr(
Awp[i] = Aw[i];

int inner_iter = 1;
while (inner_iter < 100)
while (inner_iter < 1000)
{
// v = s - g / L
for (i=0; i<n_feats*n_tasks; i++)
Expand All @@ -210,12 +202,6 @@ slep_result_t slep_tree_mt_lr(
else
altra_mt(w.matrix, v, n_feats, n_tasks, options.ind_t, options.n_nodes, lambda/L);

//SG_SPRINT("params [%d,%d,%f,%f]\n", n_feats, n_tasks, lambda/L, options.q);

//w.display_matrix();
//SG_SPRINT("w = %f \n", SGVector<float64_t>::dot(w.matrix,w.matrix,n_feats*n_tasks));

// v = x - s
for (i=0; i<n_feats*n_tasks; i++)
v[i] = w[i] - s[i];

Expand All @@ -235,9 +221,6 @@ slep_result_t slep_tree_mt_lr(
}
fun_x /= n_vecs;

//SG_SPRINT("Aw = %f\n", SGVector<float64_t>::dot(Aw,Aw,n_vecs));
//c.display_vector();

double r_sum = SGVector<float64_t>::dot(v,v,n_feats*n_tasks);
double l_sum = fun_x - fun_s - SGVector<float64_t>::dot(v,g,n_feats*n_tasks);

Expand All @@ -248,8 +231,6 @@ slep_result_t slep_tree_mt_lr(
}
r_sum /= 2.0;

//SG_SPRINT("sums = [%f, %f, %f]\n", r_sum, l_sum, fun_x);

if (r_sum <= 1e-20)
{
gradient_break = true;
Expand Down Expand Up @@ -290,7 +271,6 @@ slep_result_t slep_tree_mt_lr(

funcp = func;
func = fun_x + lambda*regularizer;
//SG_SPRINT("Obj = %f + %f * %f = %f \n",fun_x, lambda, regularizer, func);

if (gradient_break)
break;
Expand Down

0 comments on commit 7765f01

Please sign in to comment.