Example #1
0
        public DenseMatrix GetCovarianceMatrix(ICaseFrame cases)
        {
            var data   = new List <double[]>();
            var cursor = cases.GetCaseCursor();

            while (cursor.MoveNext())
            {
                var attributes = new double[cases.Schema.Count];
                for (var i = 0; i < cases.Schema.Count; i++)
                {
                    attributes[i] = cursor.GetAttribute <double>(cases.Schema[i]);
                }
                data.Add(attributes);
            }

            var dataMat = DenseMatrix.Build.DenseOfRowArrays(data);
            var covMat  = new DenseMatrix(dataMat.ColumnCount, dataMat.ColumnCount);

            for (var i = 0; i < dataMat.ColumnCount; i++)
            {
                for (var j = 0; j < dataMat.ColumnCount; j++)
                {
                    covMat[i, j] = dataMat.Column(i).Covariance(dataMat.Column(j));
                }
            }

            return(covMat);
        }
Example #2
0
        public WriteCursor(ICaseFrame caseFrame)
        {
            if (caseFrame == null)
            {
                throw new ArgumentNullException(nameof(caseFrame));
            }

            cursor         = caseFrame.GetCaseCursor();
            definition     = new CaseDefinitionBuilder(typeof(TCase), cursor.Schema).Build();
            idSetter       = GenerateIdSetter();
            solutionSetter = GenerateSolutionSetter();
            setters        = GenerateSetters();
        }
Example #3
0
        private static IEnumerable <string> GetIds(ICaseFrame cases, bool shuffle)
        {
            var caseIds = new List <string>();

            using (var cursor = cases.GetCaseCursor())
            {
                while (cursor.MoveNext())
                {
                    caseIds.Add(cursor.GetId());
                }
            }

            return(shuffle
                ? caseIds.OrderBy(a => Guid.NewGuid())
                : (IEnumerable <string>)caseIds);
        }
Example #4
0
        public override void Prepare(ICaseFrame cases)
        {
            if (cases == null)
            {
                throw new ArgumentNullException(nameof(cases));
            }
            BindSelectedAttributes(cases.Schema);

            using (var cursor = cases.GetCaseCursor())
            {
                while (cursor.MoveNext())
                {
                    foreach (var binding in AttributeBinding)
                    {
                        var getter = cursor.GetAttributeGetter <double>(cases.Schema[binding.Attribute]);
                        UpdateMinMax(binding.Binding, getter);
                    }
                }
            }

            isPrepared = true;
        }