Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/10/11 12:38:43 (14 years ago)
Author:
gkronber
Message:

#1418 implemented wrapper for LDA (linear discriminant analysis) implemented in alglib.

Location:
branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClustering.cs

    r5651 r5658  
    9494      double[,] centers;
    9595      int[] xyc;
    96       double[,] inputMatrix = KMeansClusteringUtil.PrepareInputMatrix(dataset, allowedInputVariables, rows);
     96      double[,] inputMatrix = AlglibUtil.PrepareInputMatrix(dataset, allowedInputVariables, rows);
    9797      alglib.kmeansgenerate(inputMatrix, inputMatrix.GetLength(0), inputMatrix.GetLength(1), k, restarts + 1, out info, out centers, out xyc);
    9898      if (info != 1) throw new ArgumentException("Error in calculation of k-Means clustering solution");
  • branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClusteringModel.cs

    r5651 r5658  
    6464    public KMeansClusteringModel(double[,] centers, IEnumerable<string> allowedInputVariables)
    6565      : base() {
     66      this.name = ItemName;
     67      this.description = ItemDescription;
    6668      // disect center matrix into list of double[]
    6769      // centers are given as double matrix where number of rows = dimensions and number of columns = clusters
  • branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClusteringUtil.cs

    r5651 r5658  
    2727namespace HeuristicLab.Algorithms.DataAnalysis {
    2828  public static class KMeansClusteringUtil {
    29     public static double[,] PrepareInputMatrix(Dataset dataset, IEnumerable<string> allowedInputVariables, IEnumerable<int> rows) {
    30       List<int> allowedRows = CalculateAllowedRows(dataset, allowedInputVariables, rows).ToList();
    31 
    32       double[,] matrix = new double[allowedRows.Count, allowedInputVariables.Count()];
    33       for (int row = 0; row < allowedRows.Count; row++) {
    34         int col = 0;
    35         foreach (string column in allowedInputVariables) {
    36           matrix[row, col] = dataset[column, row];
    37           col++;
    38         }
    39       }
    40       return matrix;
    41     }
    42 
    43     private static IEnumerable<int> CalculateAllowedRows(Dataset dataset, IEnumerable<string> allowedInputVariables, IEnumerable<int> rows) {
    44       // return only rows that contain no infinity or NaN values
    45       return from row in rows
    46              where (from inputVariable in allowedInputVariables
    47                     let x = dataset[inputVariable, row]
    48                     where double.IsInfinity(x) || double.IsNaN(x)
    49                     select 1)
    50                     .Any() == false
    51              select row;
    52     }
    53 
    5429    public static IEnumerable<int> FindClosestCenters(IEnumerable<double[]> centers, Dataset dataset, IEnumerable<string> allowedInputVariables, IEnumerable<int> rows) {
    5530      int nRows = rows.Count();
Note: See TracChangeset for help on using the changeset viewer.