Numpy-Neuron / nn /main.go
Jensen-holm's picture
added trainTestSplit() function
554811e
raw
history blame
1.06 kB
package nn
import (
"fmt"
"strings"
"github.com/go-gota/gota/dataframe"
"github.com/gofiber/fiber/v2"
)
type NN struct {
CSVData string `json:"csv_data"`
Features []string `json:"features"`
Target string `json:"target"`
Epochs int `json:"epochs"`
HiddenSize int `json:"hidden_size"`
LearningRate float64 `json:"learning_rate"`
ActivationFunc string `json:"activation"`
TestSize float64 `json:"test_size"`
Df *dataframe.DataFrame
XTrain dataframe.DataFrame
YTrain dataframe.DataFrame
XTest dataframe.DataFrame
YTest dataframe.DataFrame
}
func NewNN(c *fiber.Ctx) (*NN, error) {
newNN := new(NN)
err := c.BodyParser(newNN)
if err != nil {
return nil, fmt.Errorf("invalid JSON data: %v", err)
}
df := dataframe.ReadCSV(strings.NewReader(newNN.CSVData))
newNN.Df = &df
return newNN, nil
}
func (nn *NN) Train() {
// train test split the data
// iterate n times where n = nn.Epochs
// use backprop algorithm on each iteration
// to fit the model to the data
}