Example #1
0
        public ClusterResults <TRow, TColumn> ClusterColumns()
        {
            var clusteredGroups = DataFrameGroups.Select(ClusterDataFrameGroup).ToList();
            var newDataSet      = new ClusterDataSet <TRow, TColumn>(RowLabels, clusteredGroups.Select(tuple => tuple.Item1));

            return(new ClusterResults <TRow, TColumn>(newDataSet, null, ImmutableList.ValueOf(clusteredGroups.Select(tuple => tuple.Item2))));
        }
Example #2
0
 public ClusterDataSet(IEnumerable <TRow> rowLabels, IEnumerable <ImmutableList <DataFrame> > dataFrameGroups)
 {
     DistanceMetric  = ClusterMetricType.EUCLIDEAN;
     RowLabels       = ImmutableList.ValueOf(rowLabels);
     DataFrameGroups = ImmutableList.ValueOf(dataFrameGroups);
     foreach (var group in DataFrameGroups.Where(group => group.Count > 0))
     {
         var firstGroup = group[0];
         if (firstGroup.RowCount != RowLabels.Count)
         {
             throw new ArgumentException(@"Wrong number of rows", nameof(dataFrameGroups));
         }
     }
 }
Example #3
0
 public ClusterDataSet <TRow, TColumn> ReorderRows(IList <int> newOrdering)
 {
     return(new ClusterDataSet <TRow, TColumn>(Reorder(RowLabels, newOrdering),
                                               DataFrameGroups.Select(group =>
                                                                      ImmutableList.ValueOf(group.Select(frame => frame.ReorderRows(newOrdering))))));
 }
Example #4
0
 public IEnumerable <PcaResults <TColumn> > PerformPcaOnColumnGroups(int maxLevels)
 {
     return(DataFrameGroups.Select(group => PerformPca(group, maxLevels)));
 }