Exemple #1
0
        private static void TimelessDenStreamTest()
        {
            var filePath   = $"{Environment.CurrentDirectory}/Data/Synthesis/DataSteamGenerator/data.synthetic.json";
            var dataStream = ContinuousDataReader.ReadSyntheticEuclidean(filePath);
            var denStream  = new TimelessDenStream <EuclideanPoint>(
                Similarity.EuclideanDistance,
                Similarity.EuclideanDistance);

            var terminate = denStream.MaintainClusterMap();

            foreach (var p in dataStream)
            {
                denStream.Add(p);
            }

            Thread.Sleep(2000);

            foreach (var p in dataStream.TakeLast(110))
            {
                denStream.Remove(p);
            }

            var clusters = denStream.Cluster();

            terminate();

            Console.WriteLine(clusters.Pretty());
            Console.WriteLine(clusters.Length);
        }
Exemple #2
0
        private static void TimelessDenStreamMCTest()
        {
            var filePath   = $"{Environment.CurrentDirectory}/Data/Synthesis/DataSteamGenerator/data.synthetic.json";
            var dataStream = ContinuousDataReader.ReadSyntheticEuclidean(filePath);
            var denStream  = new TimelessDenStream <EuclideanPoint>(
                Similarity.EuclideanDistance,
                Similarity.EuclideanDistance);

            foreach (var p in dataStream)
            {
                denStream.Add(p);
            }

            denStream.Cluster();

//            foreach (var p in dataStream.TakeLast(110))
//            {
//                denStream.Remove(p);
//            }
//
//            denStream.Cluster();

            var mcs      = denStream.MicroClusters;
            var mcPoints = new List <EuclideanPoint>();

            mcs.ForEach(mc => mcPoints.AddRange(mc.Points));
            File.WriteAllText($"{Environment.CurrentDirectory}/Data/Synthesis/ClusterVisualization/mcs.json", JsonConvert.SerializeObject(mcs));
            File.WriteAllText($"{Environment.CurrentDirectory}/Data/Synthesis/ClusterVisualization/mcPoints.json", JsonConvert.SerializeObject(mcPoints));
        }
Exemple #3
0
        private static void DbScanTest()
        {
            var filePath   = $"{Environment.CurrentDirectory}/Data/Synthesis/DataSteamGenerator/data.synthetic.json";
            var dataStream = ContinuousDataReader.ReadSyntheticEuclidean(filePath);
            var denStream  = new TimelessDenStream <EuclideanPoint>(
                Similarity.EuclideanDistance,
                Similarity.EuclideanDistance);

            foreach (var p in dataStream)
            {
                denStream.Add(p);
            }



            var scClustersAll = new List <dynamic>();
            var clusters      = denStream.Cluster();
            var numClusters   = 0;

            foreach (var cluster in clusters)
            {
                var k = numClusters;
                scClustersAll.AddRange(cluster.Select(p => new { x = p.X, y = p.Y, c = k }));
                numClusters++;
            }

            File.WriteAllText(
                $"{Environment.CurrentDirectory}/Data/Synthesis/ClusterVisualization/dbscanVisu/dbscan.json",
                JsonConvert.SerializeObject(scClustersAll));
        }
        public ActionResult GetClusters()
        {
            try
            {
                var eventClusters = new List <Streamer[]>();

                // Cluster on geographical positions
                var geoClusters = _denStream.Cluster();

                // Cluster on the stream descriptions
                foreach (var geoCluster in geoClusters)
                {
                    if (geoCluster.Length > 10)  // Shrinkage clustering requires a proper data set to function
                    {
                        eventClusters.AddRange(_shrinkageClustering.Cluster(geoCluster));
                    }
                    else
                    {
                        eventClusters.Add(geoCluster);
                    }
                }

                return(Ok(eventClusters));
            }
            catch (Exception e)
            {
                if (_env.IsDevelopment() || TEST_ENV)
                {
                    return(BadRequest(e.Message));
                }
                return(BadRequest());
            }
        }
Exemple #5
0
        public Streamer[][] GetClusters()
        {
            var eventClusters = new List <Streamer[]>();

            // Cluster on geographical positions
            var geoClusters = _denStream.Cluster();

            // Cluster on the stream descriptions
            foreach (var geoCluster in geoClusters)
            {
                eventClusters.AddRange(_shrinkageClustering.Cluster(geoCluster));
            }

            return(eventClusters.ToArray());
        }
        public void Cluster_SameTwoPoints_OneCluster()
        {
            // [{"longitude":10.0,"latitude":20.0,"streamDescription":[0.0,1.0,0.0],"id":"Test","timeStamp":0}]
            var streamers = new[]
            {
                new Streamer(10.0f, 20.0f, new [] { 0.0f, 1.0f, 0.0f }, 0, "Test"),
                new Streamer(10.0f, 20.0f, new [] { 0.0f, 1.0f, 0.0f }, 0, "Test")
            };

            DENSTREAM.Add(streamers);
            Thread.Sleep(3000);
            var clusters = DENSTREAM.Cluster();

            Assert.That(clusters, Has.Exactly(1).Items);
        }