Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/06/17 11:12:18 (7 years ago)
Author:
gkronber
Message:

#2697: merged r14843 (resolving conflicts in csproj file for HL.Algorithms.DataAnalysis because MCTS has been removed)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/LinearDiscriminantAnalysis.cs

    r15131 r15142  
    7373      var doubleVariableNames = allowedInputVariables.Where(dataset.VariableHasType<double>).ToArray();
    7474      var factorVariableNames = allowedInputVariables.Where(dataset.VariableHasType<string>).ToArray();
    75       double[,] inputMatrix = AlglibUtil.PrepareInputMatrix(dataset, doubleVariableNames.Concat(new string[] { targetVariable }), rows);
     75      double[,] inputMatrix = dataset.ToArray(doubleVariableNames.Concat(new string[] { targetVariable }), rows);
    7676
    77       var factorVariables = AlglibUtil.GetFactorVariableValues(dataset, factorVariableNames, rows);
    78       double[,] factorMatrix = AlglibUtil.PrepareInputMatrix(dataset, factorVariables, rows);
     77      var factorVariables = dataset.GetFactorVariableValues(factorVariableNames, rows);
     78      var factorMatrix = dataset.ToArray(factorVariables, rows);
    7979
    8080      inputMatrix = factorMatrix.HorzCat(inputMatrix);
     
    9494      if (info < 1) throw new ArgumentException("Error in calculation of linear discriminant analysis solution");
    9595
    96       ISymbolicExpressionTree tree = new SymbolicExpressionTree(new ProgramRootSymbol().CreateTreeNode());
    97       ISymbolicExpressionTreeNode startNode = new StartSymbol().CreateTreeNode();
    98       tree.Root.AddSubtree(startNode);
    99       ISymbolicExpressionTreeNode addition = new Addition().CreateTreeNode();
    100       startNode.AddSubtree(addition);
    101 
    102       int col = 0;
    103       foreach (var kvp in factorVariables) {
    104         var varName = kvp.Key;
    105         foreach (var cat in kvp.Value) {
    106           BinaryFactorVariableTreeNode vNode =
    107             (BinaryFactorVariableTreeNode)new HeuristicLab.Problems.DataAnalysis.Symbolic.BinaryFactorVariable().CreateTreeNode();
    108           vNode.VariableName = varName;
    109           vNode.VariableValue = cat;
    110           vNode.Weight = w[col];
    111           addition.AddSubtree(vNode);
    112           col++;
    113         }
    114       }
    115       foreach (string column in doubleVariableNames) {
    116         VariableTreeNode vNode = (VariableTreeNode)new HeuristicLab.Problems.DataAnalysis.Symbolic.Variable().CreateTreeNode();
    117         vNode.VariableName = column;
    118         vNode.Weight = w[col];
    119         addition.AddSubtree(vNode);
    120         col++;
    121       }
     96      var nFactorCoeff = factorMatrix.GetLength(1);
     97      var tree = LinearModelToTreeConverter.CreateTree(factorVariables, w.Take(nFactorCoeff).ToArray(),
     98        doubleVariableNames, w.Skip(nFactorCoeff).Take(doubleVariableNames.Length).ToArray());
    12299
    123100      var model = CreateDiscriminantFunctionModel(tree, new SymbolicDataAnalysisExpressionTreeLinearInterpreter(), problemData, rows);
Note: See TracChangeset for help on using the changeset viewer.