/sklearn

bits of sklearn ported to Go #golang

Primary LanguageGoMIT LicenseMIT

sklearn

Partial port of scikit-learn to go

Build Status Code Coverage Go Report Card GoDoc

Examples

cluster

DBSCAN KMeans

datasets

LoadIris LoadBreastCancer LoadDiabetes LoadBoston LoadExamScore LoadMicroChipTest LoadMnist LoadMnistWeights MakeRegression MakeBlobs

interpolate

CubicSpline Interp1d Interp2d

linear_model

LinearRegression BayesianRidge MultiTaskElasticNet MultiTaskLasso ElasticNet Lasso LassoPath LogisticRegression Ridge

metrics

AccuracyScore ConfusionMatrix PrecisionScore RecallScore F1Score FBetaScore PrecisionRecallFScoreSupport ROCCurve AUC ROCAUCScore PrecisionRecallCurve AveragePrecisionScore R2Score

model_selection

KFold CrossValidate

neighbors

KNeighborsClassifier MinkowskiDistance EuclideanDistance KDTree NearestCentroid KNeighborsRegressor NearestNeighbors NearestNeighbors.KNeighborsGraph NearestNeighbors.Tree

neural_network

MLPClassifier MLPRegressor

pipeline

Pipeline

preprocessing

MinMaxScaler StandardScaler RobustScaler AddDummyFeature OneHotEncoder Shuffler MaxAbsScaler Binarizer Normalizer Scale KernelCenterer FunctionTransformer Imputer LabelBinarizer MultiLabelBinarizer LabelEncoder PCA

svm

SVC SVR

This is

  • a personal project to get a deeper understanding of how all of this magic works

  • a recent work still in progress, subject to refactoring, so interfaces may change, especially args to NewXXX

  • linted with gofmt, golint, go vet revive

  • unit tested but coverage should reach 90%

  • underdocumented but scikit-learn doc is your friend

Many thanks to gonum and scikit-learn authors and contributors

PRs are welcome