- Timestamp:
- 03/29/11 00:39:18 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Clustering
- Files:
-
- 1 added
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Clustering/ClusteringSolutionEstimatedClusterView.cs
r5851 r5853 29 29 30 30 namespace HeuristicLab.Problems.DataAnalysis.Views { 31 [View("ClassificationSolution EstimatedClassValues")] 32 [Content(typeof(IClassificationSolution))] 33 public partial class ClassificationSolutionEstimatedClassValuesView : ItemView, IClassificationSolutionEvaluationView { 34 private const string TARGETVARIABLE_SERIES_NAME = "TargetVariable"; 35 private const string ESTIMATEDVALUES_SERIES_NAME = "EstimatedClassValues"; 31 [View("ClusteringSolution EstimatedCluster")] 32 [Content(typeof(IClusteringSolution))] 33 public partial class ClusteringSolutionEstimatedClusterView : ItemView, IClusteringSolutionEvaluationView { 34 private const string CLUSTER_NAMES = "Cluster"; 36 35 37 public new ICl assificationSolution Content {38 get { return (ICl assificationSolution)base.Content; }36 public new IClusteringSolution Content { 37 get { return (IClusteringSolution)base.Content; } 39 38 set { 40 39 base.Content = value; … … 44 43 private StringConvertibleMatrixView matrixView; 45 44 46 public Cl assificationSolutionEstimatedClassValuesView()45 public ClusteringSolutionEstimatedClusterView() 47 46 : base() { 48 47 InitializeComponent(); … … 77 76 protected override void OnContentChanged() { 78 77 base.OnContentChanged(); 79 Update EstimatedValues();78 UpdateClusterValues(); 80 79 } 81 80 82 private void Update EstimatedValues() {83 if (InvokeRequired) Invoke((Action)Update EstimatedValues);81 private void UpdateClusterValues() { 82 if (InvokeRequired) Invoke((Action)UpdateClusterValues); 84 83 else { 85 84 DoubleMatrix matrix = null; 86 85 if (Content != null) { 87 double[,] values = new double[Content.ProblemData.Dataset.Rows, 2]; 86 int[] clusters = Content.Model.GetClusterValues(Content.ProblemData.Dataset, Enumerable.Range(0, Content.ProblemData.Dataset.Rows)).ToArray(); 87 var dataset = Content.ProblemData.Dataset; 88 int columns = Content.ProblemData.AllowedInputVariables.Count() + 1; 89 var columnsIndixes = Content.ProblemData.AllowedInputVariables.Select(x => dataset.GetVariableIndex(x)).ToList(); 88 90 89 double[] target = Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable); 90 double[] estimated = Content.EstimatedClassValues.ToArray(); 91 for (int row = 0; row < target.Length; row++) { 92 values[row, 0] = target[row]; 93 values[row, 1] = estimated[row]; 91 double[,] values = new double[dataset.Rows, columns]; 92 for (int row = 0; row < dataset.Rows; row++) { 93 values[row, 0] = clusters[row]; 94 95 int column = 1; 96 foreach (int columnIndex in columnsIndixes) { 97 values[row, column] = dataset[row, columnIndex]; 98 column++; 99 } 94 100 } 95 101 96 102 matrix = new DoubleMatrix(values); 97 matrix.ColumnNames = new string[] { TARGETVARIABLE_SERIES_NAME, ESTIMATEDVALUES_SERIES_NAME }; 103 var columnNames = dataset.VariableNames.ToList(); 104 columnNames.Insert(0, CLUSTER_NAMES); 105 matrix.ColumnNames = columnNames; 98 106 } 99 107 matrixView.Content = matrix;
Note: See TracChangeset
for help on using the changeset viewer.