1
0
mirror of https://github.com/sjwhitworth/golearn.git synced 2025-04-26 13:49:14 +08:00

find a bug of srcRowNo and fixed

This commit is contained in:
FrozenKP 2017-04-17 14:13:01 +08:00
parent ac0a2e1fc2
commit 041b0b2590

View File

@ -76,10 +76,6 @@ func (t *Tree) buildHandle(data []int, featureIndex int) *node {
sort.Sort(tmp)
middle := len(data) / 2
n.srcRowNo = data[middle]
n.value = make([]float64, len(t.data[data[middle]]))
copy(n.value, t.data[data[middle]])
divPoint := middle
for i := middle + 1; i < len(data); i++ {
if t.data[data[i]][featureIndex] == t.data[data[middle]][featureIndex] {
@ -89,6 +85,10 @@ func (t *Tree) buildHandle(data []int, featureIndex int) *node {
}
}
n.srcRowNo = data[divPoint]
n.value = make([]float64, len(t.data[data[divPoint]]))
copy(n.value, t.data[data[divPoint]])
if divPoint == 1 {
n.left = &node{feature: -1}
n.left.value = make([]float64, len(t.data[data[0]]))
@ -102,13 +102,12 @@ func (t *Tree) buildHandle(data []int, featureIndex int) *node {
n.right = &node{feature: -1}
n.right.value = make([]float64, len(t.data[data[divPoint+1]]))
copy(n.right.value, t.data[data[divPoint+1]])
n.left.srcRowNo = data[divPoint+1]
n.right.srcRowNo = data[divPoint+1]
} else if divPoint != (len(data) - 1) {
n.right = t.buildHandle(data[divPoint+1:], (featureIndex+1)%len(t.data[data[0]]))
} else {
n.right = &node{feature: -2}
}
return n
}