lr

package module
v0.0.0-...-330db7d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2026 License: MIT Imports: 9 Imported by: 0

README

Библиотека с реализованным основным функционалом для обучения логистической регрессии, l2 нормализации, robust скейлинга, подсчета метрик типа F1.

Описание

Библиотека была написана для реализации минимального функционала для обучения модели и последующего ее использования, говоря конкретно, мнне нужна была быстрая и легковесная модель, которая бы не требовала api запросов и различных дополнительных задержек, нежелательных даже в оффлайн части поисковика, которая могла бы классифицировать html документы с наименьшими перспективами индексации, нежелательные для нахождения в базе и поискового ранжирования.

Источники

https://www.kaggle.com/datasets/abstractbox/13k-html-scores?select=htmld_scored.csv - Датасет был мной собран с помощью моего предыдущего проекта https://github.com/box1bs/wfts, в процессе были выделены наиболее перспективные признаки и были протестированы различные скейлеры, нормализаторы и произвольные фичи, что в итоге позволило получить ошибку ~0.7% по recall и ~3.5% по F1, которые были впоследствии достигнуты с помощью чистого go.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add

func Add(a, b vec64) vec64

func BinaryCrossEntropy

func BinaryCrossEntropy(X []vec64, y, w vec64, b, lambda float64) float64

func ComputePredictMetrics

func ComputePredictMetrics(yhat, y vec64) (tp, tn, fp, fn float64)

func Dot

func Dot(a, b vec64) float64

func LogisticRegressor

func LogisticRegressor(threshold float64) *model

threshold = (0.1, 1.0)

func RobustScaler

func RobustScaler() *robustScaler

func SplitSample

func SplitSample(X []vec64, y vec64, scale float64) ([]vec64, []vec64, vec64, vec64)

func Subtract

func Subtract(a, b vec64) vec64

func Transpose

func Transpose(v []vec64) []vec64

func UploadDataset

func UploadDataset(path string, hasNamedCols bool) ([]vec64, vec64, error)

func Vec

func Vec[T string | numeric](x ...T) vec64

Types

type RegressionModel

type RegressionModel interface {
	LoadFromFile(path string) error
	LoadToFile(path string) error
	Fit(X []vec64, y vec64, lambda_ float64, randomState, epochs, printAfterEach, earlyStopping int)
	Predict(X ...vec64) vec64
}

type Scaler

type Scaler interface {
	Fit(X []vec64)
	Scale2D(matrix []vec64)
	Scale1D(vec vec64)
	LoadToFile(path string) error
	LoadFromFile(path string) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL