mirror of
https://github.com/sjwhitworth/golearn.git
synced 2025-04-26 13:49:14 +08:00
feature: Attribute Specifications
This commit is contained in:
parent
9ffe55fd47
commit
3a8c4c1afd
75
doc/pt_BR/Attribute-Specifications.md
Normal file
75
doc/pt_BR/Attribute-Specifications.md
Normal file
@ -0,0 +1,75 @@
|
||||
Attribute specifications (`AttributeSpec`) descrevem a localização de armazenamento dos dados digitados por um dado `Attribute`, e permitem que os atributos sejam reordenados e filtrados sem gerar comportamentos inesperados.
|
||||
|
||||
**Trecho de código: resolvendo a especificação de um atributo individual**
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/sjwhitworth/golearn/base"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
// Read the CSV file
|
||||
data, err := base.ParseCSVToInstances("iris_headers.csv", true)
|
||||
// Error check
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("Couldn't load CSV file (error %s)", err))
|
||||
}
|
||||
|
||||
// Resolve an Attribute
|
||||
as, err := data.GetAttribute(base.NewFloatAttribute("Sepal length"))
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("Couldn't resolve AttributeSpec (error %s)", err))
|
||||
}
|
||||
|
||||
// Print first column
|
||||
asArr := []base.AttributeSpec{as}
|
||||
data.MapOverRows(asArr, func(row [][]byte, i int) (bool, error) {
|
||||
fmt.Println(base.UnpackBytesToFloat(row[0]))
|
||||
return true, nil
|
||||
})
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
Por conveniência, `base` também fornece [`ResolveAttributes`](https://godoc.org/github.com/sjwhitworth/golearn/base#ResolveAttributes), que retorna partes de `AttributeSpecs` para os atributos especificados.
|
||||
|
||||
**Trecho de código: resolvendo as especificações de todos os non-class atributos**
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/sjwhitworth/golearn/base"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
// Read the CSV file
|
||||
data, err := base.ParseCSVToInstances("iris_headers.csv", true)
|
||||
// Error check
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("Couldn't load CSV file (error %s)", err))
|
||||
}
|
||||
|
||||
// Resolve all non-class Attributes
|
||||
asArr := base.ResolveAttributes(data, base.NonClassAttributes(data))
|
||||
// (ResolveAllAttributes gets AttributeSpecs for every attribute)
|
||||
|
||||
// Print non-class data
|
||||
data.MapOverRows(asArr, func(row [][]byte, i int) (bool, error) {
|
||||
for _, b := range row {
|
||||
fmt.Print(base.UnpackBytesToFloat(b), " ")
|
||||
}
|
||||
fmt.Println()
|
||||
return true, nil
|
||||
})
|
||||
|
||||
}
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user