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:
commit
563bbf3463
3
doc/pt_BR/API-Warts.md
Normal file
3
doc/pt_BR/API-Warts.md
Normal 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?
|
||||
|
20
doc/pt_BR/Adding-Attributes.md
Normal file
20
doc/pt_BR/Adding-Attributes.md
Normal 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)..
|
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
|
||||
})
|
||||
|
||||
}
|
||||
```
|
41
doc/pt_BR/Home.md
Normal file
41
doc/pt_BR/Home.md
Normal 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
46
doc/pt_BR/Installation.md
Normal 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
108
doc/pt_BR/Installationv2.md
Normal 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.
|
Loading…
x
Reference in New Issue
Block a user