SmartSifter: On-line Unsupervised Outlier Detection Using Finite Mixtures with Discounting Learning Algorithms. This method is proposed by Yamanishi, K., Takeuchi, J., Williams, G. et al. (2004)
refs: http://cs.fit.edu/~pkc/id/related/yamanishi-kdd00.pdf
r := 0.1 // Discounting parameter.
alpha := 1.5 // Hyper parameter for continuous variables.
beta := 1.0 // Hyper parameter for categorical variables.
cellNum := 0 // Only continuous variables.
mixtureNum := 2 // Number of mixtures for GMM.
dim := 2 // Number of dimentions for GMM.
ss := smartsifter.NewSmartSifter(r, alpha, beta, cellNum, mixtureNum, dim)
logLoss := ss.Input(nil, []float64{0.1, 0.2}, true)
fmt.Println("Score using logLoss: %f\n", logLoss)
Online outlier detection for faithful data (Only continuous variables and using parametric method).
$ go run examples/example.go
$ wget -O plot.py https://gist.github.com/monochromegane/8b6a2a18084297e05f3d25bde2518a9c
$ python plot.py
$ convert -adjoin out/*.jpg out.gif
If you want to try categorical variables, pass -x
parameter to examples.go.
- Implement non-parametric method (SDPU).
- Implement Hellinger score.
- Implement CLI.