MCPcopy Create free account
hub / github.com/PointCloudLibrary/pcl / solve_c_svc

Function solve_c_svc

ml/src/svm.cpp:1640–1689  ·  view source on GitHub ↗

construct and solve various formulations

Source from the content-addressed store, hash-verified

1638// construct and solve various formulations
1639//
1640static void
1641solve_c_svc(const svm_problem* prob,
1642 const svm_parameter* param,
1643 double* alpha,
1644 Solver::SolutionInfo* si,
1645 double Cp,
1646 double Cn)
1647{
1648 int l = prob->l;
1649 double* minus_ones = new double[l];
1650 schar* y = new schar[l];
1651
1652 for (int i = 0; i < l; i++) {
1653 alpha[i] = 0;
1654 minus_ones[i] = -1;
1655
1656 if (prob->y[i] > 0)
1657 y[i] = +1;
1658 else
1659 y[i] = -1;
1660 }
1661
1662 Solver s;
1663
1664 s.Solve(l,
1665 SVC_Q(*prob, *param, y),
1666 minus_ones,
1667 y,
1668 alpha,
1669 Cp,
1670 Cn,
1671 param->eps,
1672 si,
1673 param->shrinking);
1674
1675 double sum_alpha = 0;
1676
1677 for (int i = 0; i < l; i++)
1678 sum_alpha += alpha[i];
1679
1680 if (Cp == Cn)
1681 info("nu = %f\n", sum_alpha / (Cp * prob->l));
1682
1683 for (int i = 0; i < l; i++)
1684 alpha[i] *= y[i];
1685
1686 delete[] minus_ones;
1687
1688 delete[] y;
1689}
1690
1691static void
1692solve_nu_svc(const svm_problem* prob,

Callers 1

svm_train_oneFunction · 0.85

Calls 3

SVC_QClass · 0.85
infoFunction · 0.85
SolveMethod · 0.45

Tested by

no test coverage detected