项目作者: ymtoo

项目描述 :
FLAME in Julia
高级语言: Julia
项目地址: git://github.com/ymtoo/FLAME.jl.git
创建时间: 2020-09-17T14:42:06Z
项目社区:https://github.com/ymtoo/FLAME.jl

开源协议:

下载


FLAME

CI
codecov

This package implements Fuzzy clustering by Local Approximation of MEmberships (FLAME).

Usage

  1. using Colors, FLAME, Plots
  2. numdata1 = 249
  3. numdata2 = 249
  4. data1 = 0.2 .* randn(2, numdata1) .- 0.3
  5. data2 = 0.2 .* randn(2, numdata2) .+ 0.3
  6. outliers = [-1.0 1.0; 1.0 -1.0]
  7. data = [data1 data2 outliers]
  8. scatter(data[1,:], data[2,:]; color=:gray, legend=false, markeralpha=0.5)

window

  1. k = 100
  2. threshold = 2.0
  3. idxs, dists = FLAME._knn(data, k)
  4. csos, outliers, rests = extractstructure(idxs, dists; threshold=threshold)
  5. p = plot()
  6. colors = [:red, :green]
  7. scatter!(p, data[1,rests], data[2,rests]; label="rests", color=:gray, legend=:bottomright, markeralpha=0.5)
  8. for (i, cso) in enumerate(csos)
  9. scatter!(p, data[1,[cso]], data[2,[cso]]; labels="CSO#$(i)", color=colors[i], legend=:bottomright, markersize=6)
  10. end
  11. scatter!(p, data[1,outliers], data[2,outliers]; label="outliers", color=:blue,legend=:bottomright, markersize=6)

window

  1. res = flame(data, k; threshold=threshold, display=:iter)
  2. p = plot()
  3. colors = [:red, :green]
  4. colorvec = [RGB(rgb[1], rgb[2], rgb[3]) for rgb in eachrow(res.memberships[rests,:])]
  5. scatter!(p, data[1,rests], data[2,rests]; label="", color=colorvec, markeralpha=0.5)
  6. for (i, cso) in enumerate(csos)
  7. scatter!(p, data[1,[cso]], data[2,[cso]]; label="cluster#$(i)", color=colors[i], legend=:bottomright, markersize=6)
  8. end
  9. scatter!(p, data[1,outliers], data[2,outliers]; label="outliers", color=:blue,legend=:bottomright, markersize=6)

window