- Timestamp:
- 10/20/09 11:20:13 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Modeling/3.2/ProblemInjector.cs
r2174 r2440 41 41 AddVariable(new Variable("Dataset", new Dataset())); 42 42 43 AddVariableInfo(new VariableInfo("TargetVariable", "TargetVariable", typeof( IntData), VariableKind.New));43 AddVariableInfo(new VariableInfo("TargetVariable", "TargetVariable", typeof(StringData), VariableKind.New)); 44 44 GetVariableInfo("TargetVariable").Local = true; 45 AddVariable(new Variable("TargetVariable", new IntData()));45 AddVariable(new Variable("TargetVariable", new StringData())); 46 46 47 AddVariableInfo(new VariableInfo("AllowedFeatures", "Indexes of allowed input variables", typeof(ItemList< IntData>), VariableKind.New));47 AddVariableInfo(new VariableInfo("AllowedFeatures", "Indexes of allowed input variables", typeof(ItemList<StringData>), VariableKind.In)); 48 48 GetVariableInfo("AllowedFeatures").Local = true; 49 AddVariable(new Variable("AllowedFeatures", new ItemList< IntData>()));49 AddVariable(new Variable("AllowedFeatures", new ItemList<StringData>())); 50 50 51 51 AddVariableInfo(new VariableInfo("TrainingSamplesStart", "TrainingSamplesStart", typeof(IntData), VariableKind.New)); … … 94 94 95 95 Dataset operatorDataset = (Dataset)GetVariable("Dataset").Value; 96 int targetVariable = ((IntData)GetVariable("TargetVariable").Value).Data;97 ItemList< IntData> operatorAllowedFeatures = (ItemList<IntData>)GetVariable("AllowedFeatures").Value;96 string targetVariable = ((StringData)GetVariable("TargetVariable").Value).Data; 97 ItemList<StringData> operatorAllowedFeatures = (ItemList<StringData>)GetVariable("AllowedFeatures").Value; 98 98 99 99 Dataset scopeDataset = CreateNewDataset(operatorDataset, targetVariable, operatorAllowedFeatures); … … 104 104 105 105 scope.AddVariable(new Variable(scope.TranslateName("Dataset"), scopeDataset)); 106 scope.AddVariable(new Variable(scope.TranslateName("TargetVariable"), new IntData(0)));106 scope.AddVariable(new Variable(scope.TranslateName("TargetVariable"), new StringData(targetVariable))); 107 107 scope.AddVariable(new Variable(scope.TranslateName("NumberOfInputVariables"), new IntData(scopeDataset.Columns - 1))); 108 108 scope.AddVariable(new Variable(scope.TranslateName("InputVariables"), inputVariables)); … … 127 127 } 128 128 129 private Dataset CreateNewDataset(Dataset operatorDataset, int targetVariable, ItemList<IntData> operatorAllowedFeatures) { 130 int columns = (operatorAllowedFeatures.Count() + 1); 131 double[] values = new double[operatorDataset.Rows * columns]; 132 133 for (int i = 0; i < values.Length; i++) { 134 int row = i / columns; 135 int column = i % columns; 136 if (column == 0) { 137 values[i] = operatorDataset.GetValue(row, targetVariable); 138 } else { 139 values[i] = operatorDataset.GetValue(row, operatorAllowedFeatures[column-1].Data); 129 private Dataset CreateNewDataset(Dataset operatorDataset, string targetVariable, ItemList<StringData> operatorAllowedVariables) { 130 int columns = (operatorAllowedVariables.Count() + 1); 131 int rows = operatorDataset.Rows; 132 double[] values = new double[rows * columns]; 133 int targetVariableIndex = operatorDataset.GetVariableIndex(targetVariable); 134 for (int row = 0; row < rows; row++) { 135 int column = 0; 136 values[row*columns + column] = operatorDataset.GetValue(row, targetVariableIndex); // set target variable value to column index 0 137 column++; // start input variables at column index 1 138 foreach (var inputVariable in operatorAllowedVariables) { 139 int variableColumnIndex = operatorDataset.GetVariableIndex(inputVariable.Data); 140 values[row * columns + column] = operatorDataset.GetValue(row, variableColumnIndex); 141 column++; 140 142 } 141 143 } … … 148 150 double[] scalingFactor = new double[columns]; 149 151 double[] scalingOffset = new double[columns]; 150 ds.SetVariableName(0, operatorDataset.GetVariableName(targetVariable));151 scalingFactor[0] = operatorDataset.ScalingFactor[targetVariable ];152 scalingOffset[0] = operatorDataset.ScalingOffset[targetVariable ];152 ds.SetVariableName(0, targetVariable); 153 scalingFactor[0] = operatorDataset.ScalingFactor[targetVariableIndex]; 154 scalingOffset[0] = operatorDataset.ScalingOffset[targetVariableIndex]; 153 155 for (int column = 1; column < columns; column++) { 154 ds.SetVariableName(column, operatorDataset.GetVariableName(operatorAllowedFeatures[column - 1].Data)); 155 scalingFactor[column] = operatorDataset.ScalingFactor[operatorAllowedFeatures[column - 1].Data]; 156 scalingOffset[column] = operatorDataset.ScalingOffset[operatorAllowedFeatures[column - 1].Data]; 156 int variableColumnIndex = operatorDataset.GetVariableIndex(operatorAllowedVariables[column - 1].Data); 157 ds.SetVariableName(column, operatorAllowedVariables[column - 1].Data); 158 scalingFactor[column] = operatorDataset.ScalingFactor[variableColumnIndex]; 159 scalingOffset[column] = operatorDataset.ScalingOffset[variableColumnIndex]; 157 160 } 158 161 ds.ScalingOffset = scalingOffset;
Note: See TracChangeset
for help on using the changeset viewer.