public IFunctionBijective <float [], float []> Generate( IList <float []> instances) { float[,] array = ToolsCollection.ConvertToTable(instances); float[,] array_transposed = ToolsCollection.Transpose(array); float [] lower_bounds = new float [array_transposed.Length]; float [] upper_bounds = new float [array_transposed.Length]; for (int index = 0; index < array_transposed.Length; index++) { lower_bounds[index] = ToolsMathStatistics.QuantileSorted(array_transposed.Select1DIndex0(index), quantile); upper_bounds[index] = ToolsMathStatistics.QuantileSorted(array_transposed.Select1DIndex0(index), 1 - quantile); } return(new TransformRescale(lower_bounds, upper_bounds)); }
public void get_model(IList <int []> instances) { // Convert List <float []> instances_converted = new List <float []>(); foreach (int [] instance in instances) { instances_converted.Add(ToolsCollection.ConvertToFloatArray(instance)); } // Transform TransformWhiteningOld <Matrix <double> > transform = new TransformWhiteningOld <Matrix <double> >(new AlgebraLinearReal64MathNet(), ToolsCollection.ConvertToTable(instances_converted)); IList <float[]> instances_transformed = new List <float[]>(); foreach (float [] instance in instances_converted) { instances_transformed.Add(transform.Compute(instance)); } // Cluster //IClusteringModel<float []> model = d_inner.get_model(instances_transformed); //TODO //return new KMeansDefaultWhiteningIntegerArrayModel(transform, model); //return null; // TODO }