mirror of
https://github.com/sjwhitworth/golearn.git
synced 2025-04-26 13:49:14 +08:00
We don't need to manually handle error anymore.
This commit is contained in:
parent
804cd82cfc
commit
985ccc9d19
@ -20,9 +20,10 @@ func (self *Euclidean) InnerProduct(vectorX *mat64.Dense, vectorY *mat64.Dense)
|
||||
|
||||
// We may need to create Metrics / Vector interface for this
|
||||
func (self *Euclidean) Distance(vectorX *mat64.Dense, vectorY *mat64.Dense) float64 {
|
||||
vectorX.Sub(vectorX, vectorY)
|
||||
subVector := mat64.NewDense(0, 0, nil)
|
||||
subVector.Sub(vectorX, vectorY)
|
||||
|
||||
result := self.InnerProduct(vectorX, vectorX)
|
||||
result := self.InnerProduct(subVector, subVector)
|
||||
|
||||
return math.Sqrt(result)
|
||||
}
|
||||
|
@ -23,11 +23,7 @@ func TestEuclidean(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("When calculating distance", func() {
|
||||
result, err := euclidean.Distance(vectorX, vectorY)
|
||||
|
||||
Convey("The err should be nil", func() {
|
||||
So(err, ShouldBeNil)
|
||||
})
|
||||
result := euclidean.Distance(vectorX, vectorY)
|
||||
|
||||
Convey("The result should be 3", func() {
|
||||
So(result, ShouldEqual, 3)
|
||||
|
@ -14,15 +14,11 @@ func NewRBFKernel(gamma float64) *RBFKernel {
|
||||
return &RBFKernel{gamma: gamma}
|
||||
}
|
||||
|
||||
func (self *RBFKernel) InnerProduct(vectorX *mat64.Dense, vectorY *mat64.Dense) (float64, error) {
|
||||
func (self *RBFKernel) InnerProduct(vectorX *mat64.Dense, vectorY *mat64.Dense) float64 {
|
||||
euclidean := NewEuclidean()
|
||||
distance, err := euclidean.Distance(vectorX, vectorY)
|
||||
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
distance := euclidean.Distance(vectorX, vectorY)
|
||||
|
||||
result := math.Exp(self.gamma * math.Pow(distance, 2))
|
||||
|
||||
return result, nil
|
||||
return result
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user