func LoadDataFromCSV(filepath string) ([][]float64, []float64, error) {
	_, err := os.Stat(filepath)
	if err != nil {
		return nil, nil, err
	}
	file, err := os.Open(filepath)
	if err != nil {
		return nil, nil, err
	}
	defer file.Close()
	reader := csv.NewReader(file)
	x := [][]float64{}
	y := []float64{}
	record, err := reader.Read()
	if err != nil {
		return nil, nil, err
	}
	for err != io.EOF {
		var row []float64
		for i, val := range record {
			float, err := strconv.ParseFloat(val, 64)
			if err != nil {
				return nil, nil, err
			}
			if i < len(record)-1 {
				row = append(row, float)
			} else {
				y = append(y, float)
			}
		}
		x = append(x, row)
		record, err = reader.Read()
	}
	if len(x) == 0 || len(x[0]) == 0 || len(y) == 0 {
		return nil, nil, fmt.Errorf("ERROR: Training set has no valid examples (either for x or y or both)")
	}
	return x, y, nil
}
LoadDataFromCSV takes in a path to a CSV file and
loads that data into a Golang 2D array of 'X' values
and a Golang 1D array of 'Y', or expected result,
values.

Errors are returned if there are any problems

Expected Data Format:
- There should be no header/text lines.
- The 'Y' (expected value) line should be the last
column of the CSV.

Example CSV file with 2 input parameters:
>>>>>>> BEGIN FILE
1.06,2.30,17
17.62,12.06,18.92
11.623,1.1,15.093
12.01,6,15.032
...
>>>>>>> END FILE
package base
import (
	"encoding/csv"
	"fmt"
	"io"
	"os"
	"strconv"
)