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

Merge 3a8c4c1afd3aecfd01f51ef832497399478236e2 into 74ae077eafb245fa3bdca0288854b6d51f97fe60

This commit is contained in:
Guilherme Felipe Reis 2023-03-03 19:55:54 +00:00 committed by GitHub
commit 563bbf3463
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 293 additions and 0 deletions

3
doc/pt_BR/API-Warts.md Normal file
View File

@ -0,0 +1,3 @@
* Por que o`NewFloatAttribute` recebe o nome do Atributo, mas o `NewCategoricalAttribute` não?
* Por que o `AddAttribute` retorna um `AttributeSpec`, mas não um erro?

View File

@ -0,0 +1,20 @@
```go
// Create a new, empty DenseInstances
newInst := base.NewDenseInstances()
// Create some Attributes
attrs := make([]base.Attribute, 2)
attrs[0] = base.NewFloatAttribute("Arbitrary Float Quantity")
attrs[1] = new(base.CategoricalAttribute)
attrs[1].SetName("Class")
// Add the attributes
newSpecs := make([]base.AttributeSpec, len(attrs))
for i, a := range attrs {
newSpecs[i] = newInst.AddAttribute(a)
}
```
**Trecho de código: Adicionando dois novos atributos a um `UpdatableDataGrid` em branco**
* Os atributos só podem ser adicionados a `UpdatableDataGrids` vazios (ou seja, antes de chamar `Extend` para alocar memória)..

View 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
})
}
```

41
doc/pt_BR/Home.md Normal file
View File

@ -0,0 +1,41 @@
GoLearn
=======
<img src="http://talks.golang.org/2013/advconc/gopherhat.jpg" width=125><br>
Este é a Wiki do GoLearn (bem-vindo!). GoLearn é uma biblioteca de aprendizado de máquina escrita para GoLang e em GoLang. [Confira-nos no Github](https://github.com/sjwhitworth/golearn).
[Instalação](Installation) |
[Carregando dados](Instances) [Aviso: desatualizado] |
[Filtro](Filtering) |
Classificação ([KNN](KNN) | [Trees](Trees) | [liblinear](liblinear)) | [Regressão](Regression)
## Guia prático
* [Usando arquivos CSV](Parsing-CSV-files)
* [Dividindo os dados em conjuntos de treinamento e teste](TrainTestSplit) (não escrito)
## Trechos de código e exemplos
* [Classificando dados](Instances)
* [Lendo arquivos CSV](Parsing-CSV-files)
* [Agrupamento de histograma](Filtering)
* [Agrupamento Chi-Merge](Filtering)
* [Definindo a precisão de um `FloatAttribute`](FloatAttribute-precision)
* [Adicionando um atributo](Adding-Attributes)
* [Recuperando valores de atributos](Attribute-Specifications)
* [Implementando um `DataGrid` personalizado](Custom-DataGrids)
## Futuro
[Contribuindo](Contributing)
### Lista de desejos
* Expectation maximisation
* Estruturas de árvores guiadas nativas
* Suporte para processamento de séries temporais
* Suporte para `DenseInstances` com backup de disco
* Redes neurais SoftMax
* Primitivos de aprendizado profundo (redes neurais recursivas)
* Redes neurais recorrentes
* Manipulação de imagem
* Atributos relacionais e de ponteiro
* Suporte para espaços binários esparsos
* Suporte para inserção e exclusão arbitrárias de atributos

46
doc/pt_BR/Installation.md Normal file
View File

@ -0,0 +1,46 @@
GoLearn é uma biblioteca em Go que é relativamente padrão, exceto por algumas dependências C opcionais. Para instalá-lo,
[você precisará instalar o Go 1.4 ou posterior primeiro](https://yip.su/2F1Vm4).
## Instalação
### Dependências do sistema
* Você precisará ter um compilador compatível instalado (para verificar, execute g++ no seu terminal.)
* GoLearn usa [Gonum's BLAS wrapper](https://github.com/gonum/blas), que requer que o OpenBLAS ou similar esteja instalado. Siga estas [instruções de instalação](https://github.com/gonum/blas#installation), que são específicas do sistema operacional e podem exigir que você instale uma biblioteca C.
### Instalando as dependências internas do GoLearn
Após instalar o Go e as dependências do sistema, digite:
```bash
go get -t -u -v github.com/sjwhitworth/golearn
```
### Completando a instalação
Execute o seguinte comando para completar a instalação.
```bash
cd $GOPATH/src/github.com/sjwhitworth/golearn
go get -t -u -v ./...
```
### Problemas comuns
No Linux e no Mac OS X, você pode verificar se o Go está instalado corretamente por meio do seu terminal. [Tente compilar o programa de exemplo](https://yip.su/2F1Vm4) para verificar se sua instalação está funcionando corretamente.
**Seu diretório `go` deve existir em seu diretório home e ser gravável.**
Se não existir, digite `cd && mkdir go` para criá-lo.
**Suas variáveis `GOPATH` e `PATH` devem estar configuradas corretamente.**
* Para verificar, digite `echo $GOROOT` e `echo $GOPATH`.
* Sua variável `$GOPATH` deve incluir seu `$GOROOT`, mais um diretório `bin/`. Por exemplo, se `$GOROOT` estiver configurado para `/home/sen/go`, `$GOPATH` deve ser configurado para `/home/sen/go/bin`.
* Para garantir que essas variáveis estejam configuradas corretamente, adicione `export GOROOT=$HOME/go` e `export PATH=$PATH:$GOROOT/bin` ao seu arquivo de configuração Bash.
## Status de suporte
<table>
<tr>
<td>Sistemas operacionais</td><td>Mac OS X 10.8 <br /> Ubuntu 14.04 <br /> OpenSUSE 13.1</td></tr>
<tr><td>Versão do Go</td><td>1.2</td></tr>
<tr><td>Versão do GoLearn</td><td>Atual</td></tr>
<tr><td>Status do suporte</td><td>Atual</td>
<tr><td>Próxima revisão</td><td>Na atualização da versão</td></tr>
</table>
### Mac OS X 10.8
* A confirmação do funcionamento da instalação do BLAS através do HomeBrew ainda não foi realizada.

108
doc/pt_BR/Installationv2.md Normal file
View File

@ -0,0 +1,108 @@
GoLearn é uma biblioteca Go que é relativamente padrão, exceto por algumas dependências opcionais em C. Para instalá-la, você precisará [instalar o Go 1.2 ou posterior primeiro](http://golang.org/doc/install).
## Instalação
### Dependências do sistema
GoLearn usa [Gonum's BLAS wrapper](https://github.com/gonum/blas), que requer que o OpenBLAS ou similar esteja instalado.
#### Instalando o Gonum's BLAS wrapper
##### Instalando o OpenBLAS no Ubuntu
```bash
sudo apt-get install libopenblas-dev
```
##### Instalando o OpenSUSE 13.1
```bash
sudo zypper in blas-devel cblas-devel
```
#### Completando a instalação do Gonum's BLAS wrapper
Depois de instalar o Gonum's BLAS wrapper, digite os seguintes comandos
```bash
go get github.com/gonum/blas
cd $GOPATH/src/github.com/gonum/blas
go install ./...
```
No Ubuntu 14.04, modifique `$GOPATH/src/github.com/gonum/blas/cblas/blas.go` e modifique a linha que começa com `#cgo linux LDFLAGS:` para `#cgo linux LDFLAGS: -L/usr/lib -lopenblas`. /usr/lib deve ser o caminho para a biblioteca. Se não for, use `dpkg -L libopenblas-dev` para encontrar o caminho.
No OpenSUSE 13.1, modifique `$GOPATH/src/github.com/gonum/blas/cblas/blas.go` e modifique a linha que começa com `#cgo linux LDFLAGS:` para `#cgo linux LDFLAGS: -lblas -lcblas`.
### Instalando o liblinear no OpenSUSE 13.1 (64 bits)
1. Visite [o site do liblinear](http://www.csie.ntu.edu.tw/~cjlin/liblinear/) e baixe a versão 1.94. ([Link para baixar o zip](http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/liblinear.cgi?+http://www.csie.ntu.edu.tw/~cjlin/liblinear+zip))
2. Extraia o arquivo, edite o arquivo para digitar `make lib`, para então construir a biblioteca.
3. Copie `liblinear.so.1` para `/usr/lib64`
4. Copie `linear.h` para `/usr/include`
5. Crie um link simbólico para `liblinear.so.1` em `/usr/lib64` usando `ln -s /usr/lib64/liblinear.so.1 /usr/lib64/liblinear.so`
6. Execute `ldconfig -v | grep linear` para verificar se a biblioteca está instalada.
### Instalando o liblinear no Ubuntu 14.04 (64 bits)
```bash
cd /tmp
wget http://www.csie.ntu.edu.tw/~cjlin/liblinear/oldfiles/liblinear-1.94.tar.gz
tar xf liblinear-1.94.tar.gz
cd liblinear-1.94
make lib
sudo install -vm644 linear.h /usr/include
sudo install -vm755 liblinear.so.1 /usr/lib
sudo ln -sfv liblinear.so.1 /usr/lib/liblinear.so
```
### Instalando as dependências internas do GoLearn
Depois de instalar a linguagem Go e as dependências do sistema, digite:
```bash
go get -t -u -v github.com/sjwhitworth/golearn
cd $GOPATH/src/github.com/sjwhitworth/golearn/ext
go run make.go
```
Em seguida, você precisará adicionar `$GOPATH/src/github.com/sjwhitworth/golearn/ext/lib` a uma variável apropriada.
#### Bash (Linux)
Adicione ao seu arquivo `~/.bashrc`:
```bash
export LD_LIBRARY_PATH=$GOPATH/src/github.com/sjwhitworth/golearn/ext/lib:$LD_LIBRARY_PATH
```
Certifique-se de executar `source ~/.bashrc` ou reiniciar o shell antes de continuar.
#### Bash (Mac OS X)
Adicione ao seu arquivo `~/.bashrc`:
```bash
export DYLD_LIBRARY_PATH=$GOPATH/src/github.com/sjwhitworth/golearn/ext/lib:$DYLD_LIBRARY_PATH
```
Certifique-se de executar `source ~/.bashrc` ou reiniciar o shell antes de continuar.
### Completando a instalação
Execute o seguinte para completar a instalação
```bash
cd $GOPATH/src/github.com/sjwhitworth/golearn
go get ./...
```
## Problemas comuns
No Linux e no Mac OS X, você pode verificar se o Go está instalado corretamente por meio do terminal. [Tente compilar o programa de exemplo](http://golang.org/doc/install) para verificar se sua instalação está funcionando corretamente.
**Seu diretório `go` deve existir em seu diretório principal e ser gravável.**
Se não estiver, digite `cd && mkdir go` para criá-lo.
**Suas variáveis `GOPATH` e `PATH` devem estar configuradas corretamente.**
* Para verificar, digite `echo $GOROOT` e `echo $GOPATH`.
* Sua variável `$GOPATH` deve incluir seu `$GOROOT`, mais um diretório `bin/`. Por exemplo, se `$GOROOT` estiver definido como `/home/sen/go`, `$GOPATH` deve ser definido como `/home/sen/go/bin`
* Para garantir que essas variáveis estejam configuradas corretamente, adicione `export GOROOT=$HOME/go` e `export PATH=$PATH:$GOROOT/bin` ao seu arquivo de configuração do Bash.
## Support status
<table>
<tr>
<td>Sistemas operacionais</td><td>Mac OS X 10.8 <br /> Ubuntu 14.04 <br /> OpenSUSE 13.1</td></tr>
<tr><td>Versão do Go</td><td>1.2</td></tr>
<tr><td>Versão do GoLearn</td><td>Atual</td></tr>
<tr><td>Status do suporte</td><td>Atual</td>
<tr><td>Próxima revisão</td><td>Na atualização da versão</td></tr>
</table>
### Mac OS X 10.8
* A confirmação do funcionamento da instalação do BLAS através do HomeBrew ainda não foi realizada.