Versions in this module Expand all Collapse all v0 v0.4.6 Jun 16, 2022 Changes in this version + const CollaborativeBPR + const CollaborativeCCD + func Evaluate(estimator MatrixFactorization, testSet, trainSet *DataSet, ...) []float32 + func GetModelName(m Model) string + func HR(targetSet *i32set.Set, rankList []int32) float32 + func LoadDataFromBuiltIn(dataSetName string) (*DataSet, *DataSet, error) + func MAP(targetSet *i32set.Set, rankList []int32) float32 + func MRR(targetSet *i32set.Set, rankList []int32) float32 + func MarshalModel(w io.Writer, m Model) error + func NDCG(targetSet *i32set.Set, rankList []int32) float32 + func Precision(targetSet *i32set.Set, rankList []int32) float32 + func Rank(model MatrixFactorization, userId int32, candidates []int32, topN int) ([]int32, []float32) + func Recall(targetSet *i32set.Set, rankList []int32) float32 + type BPR struct + func NewBPR(params model.Params) *BPR + func (bpr *BPR) Clear() + func (bpr *BPR) Fit(trainSet, valSet *DataSet, config *FitConfig) Score + func (bpr *BPR) GetItemFactor(itemIndex int32) []float32 + func (bpr *BPR) GetParamsGrid() model.ParamsGrid + func (bpr *BPR) GetUserFactor(userIndex int32) []float32 + func (bpr *BPR) Init(trainSet *DataSet) + func (bpr *BPR) InternalPredict(userIndex, itemIndex int32) float32 + func (bpr *BPR) Invalid() bool + func (bpr *BPR) Marshal(w io.Writer) error + func (bpr *BPR) Predict(userId, itemId string) float32 + func (bpr *BPR) SetParams(params model.Params) + func (bpr *BPR) Unmarshal(r io.Reader) error + type BaseMatrixFactorization struct + ItemFactor [][]float32 + ItemIndex base.Index + ItemPredictable *bitset.BitSet + UserFactor [][]float32 + UserIndex base.Index + UserPredictable *bitset.BitSet + func (baseModel *BaseMatrixFactorization) Bytes() int + func (baseModel *BaseMatrixFactorization) GetItemIndex() base.Index + func (baseModel *BaseMatrixFactorization) GetUserIndex() base.Index + func (baseModel *BaseMatrixFactorization) Init(trainSet *DataSet) + func (baseModel *BaseMatrixFactorization) IsItemPredictable(itemIndex int32) bool + func (baseModel *BaseMatrixFactorization) IsUserPredictable(userIndex int32) bool + func (baseModel *BaseMatrixFactorization) Marshal(w io.Writer) error + func (baseModel *BaseMatrixFactorization) Unmarshal(r io.Reader) error + type CCD struct + func NewCCD(params model.Params) *CCD + func (ccd *CCD) Clear() + func (ccd *CCD) Fit(trainSet, valSet *DataSet, config *FitConfig) Score + func (ccd *CCD) GetItemFactor(itemIndex int32) []float32 + func (ccd *CCD) GetParamsGrid() model.ParamsGrid + func (ccd *CCD) GetUserFactor(userIndex int32) []float32 + func (ccd *CCD) Init(trainSet *DataSet) + func (ccd *CCD) InternalPredict(userIndex, itemIndex int32) float32 + func (ccd *CCD) Invalid() bool + func (ccd *CCD) Marshal(w io.Writer) error + func (ccd *CCD) Predict(userId, itemId string) float32 + func (ccd *CCD) SetParams(params model.Params) + func (ccd *CCD) Unmarshal(r io.Reader) error + type DataSet struct + CategorySet *strset.Set + FeedbackItems base.Array[int32] + FeedbackUsers base.Array[int32] + HiddenItems []bool + ItemCategories [][]string + ItemFeedback [][]int32 + ItemIndex base.Index + ItemLabels [][]int32 + Negatives [][]int32 + NumItemLabelUsed int + NumItemLabels int32 + NumUserLabelUsed int + NumUserLabels int32 + UserFeedback [][]int32 + UserIndex base.Index + UserLabels [][]int32 + func LoadDataFromCSV(fileName, sep string, hasHeader bool) *DataSet + func NewDirectIndexDataset() *DataSet + func NewMapIndexDataset() *DataSet + func (dataset *DataSet) AddFeedback(userId, itemId string, insertUserItem bool) + func (dataset *DataSet) AddItem(itemId string) + func (dataset *DataSet) AddUser(userId string) + func (dataset *DataSet) Bytes() int + func (dataset *DataSet) Count() int + func (dataset *DataSet) GetIndex(i int) (int32, int32) + func (dataset *DataSet) ItemCount() int + func (dataset *DataSet) NegativeSample(excludeSet *DataSet, numCandidates int) [][]int32 + func (dataset *DataSet) SetNegatives(userId string, negatives []string) + func (dataset *DataSet) Split(numTestUsers int, seed int64) (*DataSet, *DataSet) + func (dataset *DataSet) UserCount() int + type FitConfig struct + Candidates int + Jobs int + TopK int + Tracker model.Tracker + Verbose int + func NewFitConfig() *FitConfig + func (config *FitConfig) LoadDefaultIfNil() *FitConfig + func (config *FitConfig) SetJobs(nJobs int) *FitConfig + func (config *FitConfig) SetTracker(tracker model.Tracker) *FitConfig + func (config *FitConfig) SetVerbose(verbose int) *FitConfig + type MatrixFactorization interface + Bytes func() int + GetItemIndex func() base.Index + GetUserIndex func() base.Index + InternalPredict func(userIndex, itemIndex int32) float32 + IsItemPredictable func(itemIndex int32) bool + IsUserPredictable func(userIndex int32) bool + Marshal func(w io.Writer) error + Predict func(userId, itemId string) float32 + Unmarshal func(r io.Reader) error + func Clone(m MatrixFactorization) MatrixFactorization + func UnmarshalModel(r io.Reader) (MatrixFactorization, error) + type Metric func(targetSet *i32set.Set, rankList []int32) float32 + type Model interface + Fit func(trainSet *DataSet, validateSet *DataSet, config *FitConfig) Score + GetItemFactor func(itemIndex int32) []float32 + GetItemIndex func() base.Index + GetUserFactor func(userIndex int32) []float32 + Marshal func(w io.Writer) error + Unmarshal func(r io.Reader) error + type ModelSearcher struct + func NewModelSearcher(nEpoch, nTrials, nJobs int) *ModelSearcher + func (searcher *ModelSearcher) Fit(trainSet, valSet *DataSet, tracker model.Tracker, runner model.Runner) error + func (searcher *ModelSearcher) GetBestModel() (string, MatrixFactorization, Score) + type ParamsSearchResult struct + BestIndex int + BestModel MatrixFactorization + BestParams model.Params + BestScore Score + Params []model.Params + Scores []Score + func GridSearchCV(estimator MatrixFactorization, trainSet *DataSet, testSet *DataSet, ...) ParamsSearchResult + func RandomSearchCV(estimator MatrixFactorization, trainSet *DataSet, testSet *DataSet, ...) ParamsSearchResult + func (r *ParamsSearchResult) AddScore(params model.Params, score Score) + type Score struct + NDCG float32 + Precision float32 + Recall float32 + type SnapshotManger struct + BestScore Score + BestWeights []interface{} + func (sm *SnapshotManger) AddSnapshot(score Score, weights ...interface{}) + func (sm *SnapshotManger) AddSnapshotNoCopy(score Score, weights ...interface{})