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

Function svm_train_one

ml/src/svm.cpp:1910–1967  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1908};
1909
1910static decision_function
1911svm_train_one(const svm_problem* prob, const svm_parameter* param, double Cp, double Cn)
1912{
1913 double* alpha = Malloc(double, prob->l);
1914 Solver::SolutionInfo si;
1915
1916 switch (param->svm_type) {
1917
1918 case C_SVC:
1919 solve_c_svc(prob, param, alpha, &si, Cp, Cn);
1920 break;
1921
1922 case NU_SVC:
1923 solve_nu_svc(prob, param, alpha, &si);
1924 break;
1925
1926 case ONE_CLASS:
1927 solve_one_class(prob, param, alpha, &si);
1928 break;
1929
1930 case EPSILON_SVR:
1931 solve_epsilon_svr(prob, param, alpha, &si);
1932 break;
1933
1934 case NU_SVR:
1935 solve_nu_svr(prob, param, alpha, &si);
1936 break;
1937 }
1938
1939 info("obj = %f, rho = %f\n", si.obj, si.rho);
1940
1941 // output SVs
1942
1943 int nSV = 0;
1944 int nBSV = 0;
1945
1946 for (int i = 0; i < prob->l; i++) {
1947 if (std::abs(alpha[i]) > 0) {
1948 ++nSV;
1949
1950 if (prob->y[i] > 0) {
1951 if (std::abs(alpha[i]) >= si.upper_bound_p)
1952 ++nBSV;
1953 }
1954 else {
1955 if (std::abs(alpha[i]) >= si.upper_bound_n)
1956 ++nBSV;
1957 }
1958 }
1959 }
1960
1961 info("nSV = %d, nBSV = %d\n", nSV, nBSV);
1962
1963 decision_function f;
1964 f.alpha = alpha;
1965 f.rho = si.rho;
1966 return f;
1967}

Callers 1

svm_trainFunction · 0.85

Calls 7

solve_c_svcFunction · 0.85
solve_nu_svcFunction · 0.85
solve_one_classFunction · 0.85
solve_epsilon_svrFunction · 0.85
solve_nu_svrFunction · 0.85
infoFunction · 0.85
absFunction · 0.85

Tested by

no test coverage detected