MCPcopy Create free account
hub / github.com/datastream/libsvm / SVM_binary_svc_probability

Method SVM_binary_svc_probability

svm.go:1707–1786  ·  view source on GitHub ↗
(prob *SVM_Problem, param *SVM_Parameter, Cp, Cn float64, probAB []float64)

Source from the content-addressed store, hash-verified

1705}
1706
1707func (this *SVM) SVM_binary_svc_probability(prob *SVM_Problem, param *SVM_Parameter, Cp, Cn float64, probAB []float64) {
1708 var i int
1709 nr_fold := 5
1710 perm := make([]int, prob.l)
1711 dec_values := make([]float64, prob.l)
1712
1713 // random shuffle
1714 for i = 0; i < prob.l; i++ {
1715 perm[i] = i
1716 }
1717 for i = 0; i < prob.l; i++ {
1718 j := i + int(rand.Int31n(int32(prob.l-i)))
1719 //do {int _=perm[i]; perm[i]=perm[j]; perm[j]=_;} while(false);
1720 perm[i], perm[j] = perm[j], perm[i]
1721 }
1722 for i = 0; i < nr_fold; i++ {
1723 begin := i * prob.l / nr_fold
1724 end := (i + 1) * prob.l / nr_fold
1725 var j, k int
1726 subprob := new(SVM_Problem)
1727
1728 subprob.l = prob.l - (end - begin)
1729 subprob.x = make([][]SVM_Node, subprob.l)
1730 subprob.y = make([]float64, subprob.l)
1731
1732 k = 0
1733 for j = 0; j < begin; j++ {
1734 subprob.x[k] = prob.x[perm[j]]
1735 subprob.y[k] = prob.y[perm[j]]
1736 k++
1737 }
1738 for j = end; j < prob.l; j++ {
1739 subprob.x[k] = prob.x[perm[j]]
1740 subprob.y[k] = prob.y[perm[j]]
1741 k++
1742 }
1743 p_count := 0
1744 n_count := 0
1745 for j = 0; j < k; j++ {
1746 if subprob.y[j] > 0 {
1747 p_count++
1748 } else {
1749 n_count++
1750 }
1751 }
1752 if p_count == 0 && n_count == 0 {
1753 for j = begin; j < end; j++ {
1754 dec_values[perm[j]] = 0
1755 }
1756 } else if p_count > 0 && n_count == 0 {
1757 for j = begin; j < end; j++ {
1758 dec_values[perm[j]] = 1
1759 }
1760 } else if p_count == 0 && n_count > 0 {
1761 for j = begin; j < end; j++ {
1762 dec_values[perm[j]] = -1
1763 }
1764 } else {

Callers 1

SVM_trainMethod · 0.95

Calls 4

SVM_trainMethod · 0.95
SVM_predict_valuesMethod · 0.95
sigmoid_trainMethod · 0.95
CloneMethod · 0.80

Tested by

no test coverage detected