mirror of
https://github.com/sjwhitworth/golearn.git
synced 2025-04-25 13:48:49 +08:00
Merge pull request #98 from Sentimentron/dense-staging
New DenseInstances conversion function
This commit is contained in:
commit
353cd38e7c
@ -44,6 +44,40 @@ func NewDenseInstances() *DenseInstances {
|
||||
}
|
||||
}
|
||||
|
||||
// NewDenseCopy generates a new DenseInstances set
|
||||
// from an existing FixedDataGrid.
|
||||
func NewDenseCopy(of FixedDataGrid) *DenseInstances {
|
||||
|
||||
ret := NewDenseInstances() // Create the skeleton
|
||||
// Attribute creation
|
||||
attrs := of.AllAttributes()
|
||||
specs1 := make([]AttributeSpec, len(attrs))
|
||||
specs2 := make([]AttributeSpec, len(attrs))
|
||||
for i, a := range attrs {
|
||||
// Retrieve old AttributeSpec
|
||||
s, err := of.GetAttribute(a)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
specs1[i] = s
|
||||
// Add and store new AttributeSpec
|
||||
specs2[i] = ret.AddAttribute(a)
|
||||
}
|
||||
// Allocate memory
|
||||
_, rows := of.Size()
|
||||
ret.Extend(rows)
|
||||
|
||||
// Copy each row from the old one to the new
|
||||
of.MapOverRows(specs1, func(v [][]byte, r int) (bool, error) {
|
||||
for i, c := range v {
|
||||
ret.Set(specs2[i], r, c)
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
//
|
||||
// AttributeGroup functions
|
||||
//
|
||||
|
@ -114,6 +114,15 @@ func TestInstancesViewAttrs(t *testing.T) {
|
||||
So(ok3, ShouldEqual, true)
|
||||
So(ok4, ShouldEqual, true)
|
||||
})
|
||||
Convey("The InstancesView should match one prepared earlier...", func() {
|
||||
instRef, err := ParseCSVToInstances("../examples/datasets/iris_headers_subset.csv", true)
|
||||
So(err, ShouldBeNil)
|
||||
So(InstancesAreEqual(instRef, instView), ShouldBeTrue)
|
||||
Convey("And a DenseInstances conversion should too...", func() {
|
||||
instView2 := NewDenseCopy(instRef)
|
||||
So(InstancesAreEqual(instRef, instView2), ShouldBeTrue)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
151
examples/datasets/iris_headers_subset.csv
Normal file
151
examples/datasets/iris_headers_subset.csv
Normal file
@ -0,0 +1,151 @@
|
||||
Sepal width,Petal length, Petal width, Species
|
||||
3.5,1.4,0.2,Iris-setosa
|
||||
3,1.4,0.2,Iris-setosa
|
||||
3.2,1.3,0.2,Iris-setosa
|
||||
3.1,1.5,0.2,Iris-setosa
|
||||
3.6,1.4,0.2,Iris-setosa
|
||||
3.9,1.7,0.4,Iris-setosa
|
||||
3.4,1.4,0.3,Iris-setosa
|
||||
3.4,1.5,0.2,Iris-setosa
|
||||
2.9,1.4,0.2,Iris-setosa
|
||||
3.1,1.5,0.1,Iris-setosa
|
||||
3.7,1.5,0.2,Iris-setosa
|
||||
3.4,1.6,0.2,Iris-setosa
|
||||
3,1.4,0.1,Iris-setosa
|
||||
3,1.1,0.1,Iris-setosa
|
||||
4,1.2,0.2,Iris-setosa
|
||||
4.4,1.5,0.4,Iris-setosa
|
||||
3.9,1.3,0.4,Iris-setosa
|
||||
3.5,1.4,0.3,Iris-setosa
|
||||
3.8,1.7,0.3,Iris-setosa
|
||||
3.8,1.5,0.3,Iris-setosa
|
||||
3.4,1.7,0.2,Iris-setosa
|
||||
3.7,1.5,0.4,Iris-setosa
|
||||
3.6,1,0.2,Iris-setosa
|
||||
3.3,1.7,0.5,Iris-setosa
|
||||
3.4,1.9,0.2,Iris-setosa
|
||||
3,1.6,0.2,Iris-setosa
|
||||
3.4,1.6,0.4,Iris-setosa
|
||||
3.5,1.5,0.2,Iris-setosa
|
||||
3.4,1.4,0.2,Iris-setosa
|
||||
3.2,1.6,0.2,Iris-setosa
|
||||
3.1,1.6,0.2,Iris-setosa
|
||||
3.4,1.5,0.4,Iris-setosa
|
||||
4.1,1.5,0.1,Iris-setosa
|
||||
4.2,1.4,0.2,Iris-setosa
|
||||
3.1,1.5,0.1,Iris-setosa
|
||||
3.2,1.2,0.2,Iris-setosa
|
||||
3.5,1.3,0.2,Iris-setosa
|
||||
3.1,1.5,0.1,Iris-setosa
|
||||
3,1.3,0.2,Iris-setosa
|
||||
3.4,1.5,0.2,Iris-setosa
|
||||
3.5,1.3,0.3,Iris-setosa
|
||||
2.3,1.3,0.3,Iris-setosa
|
||||
3.2,1.3,0.2,Iris-setosa
|
||||
3.5,1.6,0.6,Iris-setosa
|
||||
3.8,1.9,0.4,Iris-setosa
|
||||
3,1.4,0.3,Iris-setosa
|
||||
3.8,1.6,0.2,Iris-setosa
|
||||
3.2,1.4,0.2,Iris-setosa
|
||||
3.7,1.5,0.2,Iris-setosa
|
||||
3.3,1.4,0.2,Iris-setosa
|
||||
3.2,4.7,1.4,Iris-versicolor
|
||||
3.2,4.5,1.5,Iris-versicolor
|
||||
3.1,4.9,1.5,Iris-versicolor
|
||||
2.3,4,1.3,Iris-versicolor
|
||||
2.8,4.6,1.5,Iris-versicolor
|
||||
2.8,4.5,1.3,Iris-versicolor
|
||||
3.3,4.7,1.6,Iris-versicolor
|
||||
2.4,3.3,1,Iris-versicolor
|
||||
2.9,4.6,1.3,Iris-versicolor
|
||||
2.7,3.9,1.4,Iris-versicolor
|
||||
2,3.5,1,Iris-versicolor
|
||||
3,4.2,1.5,Iris-versicolor
|
||||
2.2,4,1,Iris-versicolor
|
||||
2.9,4.7,1.4,Iris-versicolor
|
||||
2.9,3.6,1.3,Iris-versicolor
|
||||
3.1,4.4,1.4,Iris-versicolor
|
||||
3,4.5,1.5,Iris-versicolor
|
||||
2.7,4.1,1,Iris-versicolor
|
||||
2.2,4.5,1.5,Iris-versicolor
|
||||
2.5,3.9,1.1,Iris-versicolor
|
||||
3.2,4.8,1.8,Iris-versicolor
|
||||
2.8,4,1.3,Iris-versicolor
|
||||
2.5,4.9,1.5,Iris-versicolor
|
||||
2.8,4.7,1.2,Iris-versicolor
|
||||
2.9,4.3,1.3,Iris-versicolor
|
||||
3,4.4,1.4,Iris-versicolor
|
||||
2.8,4.8,1.4,Iris-versicolor
|
||||
3,5,1.7,Iris-versicolor
|
||||
2.9,4.5,1.5,Iris-versicolor
|
||||
2.6,3.5,1,Iris-versicolor
|
||||
2.4,3.8,1.1,Iris-versicolor
|
||||
2.4,3.7,1,Iris-versicolor
|
||||
2.7,3.9,1.2,Iris-versicolor
|
||||
2.7,5.1,1.6,Iris-versicolor
|
||||
3,4.5,1.5,Iris-versicolor
|
||||
3.4,4.5,1.6,Iris-versicolor
|
||||
3.1,4.7,1.5,Iris-versicolor
|
||||
2.3,4.4,1.3,Iris-versicolor
|
||||
3,4.1,1.3,Iris-versicolor
|
||||
2.5,4,1.3,Iris-versicolor
|
||||
2.6,4.4,1.2,Iris-versicolor
|
||||
3,4.6,1.4,Iris-versicolor
|
||||
2.6,4,1.2,Iris-versicolor
|
||||
2.3,3.3,1,Iris-versicolor
|
||||
2.7,4.2,1.3,Iris-versicolor
|
||||
3,4.2,1.2,Iris-versicolor
|
||||
2.9,4.2,1.3,Iris-versicolor
|
||||
2.9,4.3,1.3,Iris-versicolor
|
||||
2.5,3,1.1,Iris-versicolor
|
||||
2.8,4.1,1.3,Iris-versicolor
|
||||
3.3,6,2.5,Iris-virginica
|
||||
2.7,5.1,1.9,Iris-virginica
|
||||
3,5.9,2.1,Iris-virginica
|
||||
2.9,5.6,1.8,Iris-virginica
|
||||
3,5.8,2.2,Iris-virginica
|
||||
3,6.6,2.1,Iris-virginica
|
||||
2.5,4.5,1.7,Iris-virginica
|
||||
2.9,6.3,1.8,Iris-virginica
|
||||
2.5,5.8,1.8,Iris-virginica
|
||||
3.6,6.1,2.5,Iris-virginica
|
||||
3.2,5.1,2,Iris-virginica
|
||||
2.7,5.3,1.9,Iris-virginica
|
||||
3,5.5,2.1,Iris-virginica
|
||||
2.5,5,2,Iris-virginica
|
||||
2.8,5.1,2.4,Iris-virginica
|
||||
3.2,5.3,2.3,Iris-virginica
|
||||
3,5.5,1.8,Iris-virginica
|
||||
3.8,6.7,2.2,Iris-virginica
|
||||
2.6,6.9,2.3,Iris-virginica
|
||||
2.2,5,1.5,Iris-virginica
|
||||
3.2,5.7,2.3,Iris-virginica
|
||||
2.8,4.9,2,Iris-virginica
|
||||
2.8,6.7,2,Iris-virginica
|
||||
2.7,4.9,1.8,Iris-virginica
|
||||
3.3,5.7,2.1,Iris-virginica
|
||||
3.2,6,1.8,Iris-virginica
|
||||
2.8,4.8,1.8,Iris-virginica
|
||||
3,4.9,1.8,Iris-virginica
|
||||
2.8,5.6,2.1,Iris-virginica
|
||||
3,5.8,1.6,Iris-virginica
|
||||
2.8,6.1,1.9,Iris-virginica
|
||||
3.8,6.4,2,Iris-virginica
|
||||
2.8,5.6,2.2,Iris-virginica
|
||||
2.8,5.1,1.5,Iris-virginica
|
||||
2.6,5.6,1.4,Iris-virginica
|
||||
3,6.1,2.3,Iris-virginica
|
||||
3.4,5.6,2.4,Iris-virginica
|
||||
3.1,5.5,1.8,Iris-virginica
|
||||
3,4.8,1.8,Iris-virginica
|
||||
3.1,5.4,2.1,Iris-virginica
|
||||
3.1,5.6,2.4,Iris-virginica
|
||||
3.1,5.1,2.3,Iris-virginica
|
||||
2.7,5.1,1.9,Iris-virginica
|
||||
3.2,5.9,2.3,Iris-virginica
|
||||
3.3,5.7,2.5,Iris-virginica
|
||||
3,5.2,2.3,Iris-virginica
|
||||
2.5,5,1.9,Iris-virginica
|
||||
3,5.2,2,Iris-virginica
|
||||
3.4,5.4,2.3,Iris-virginica
|
||||
3,5.1,1.8,Iris-virginica
|
|
Loading…
x
Reference in New Issue
Block a user