Free cookie consent management tool by TermsFeed Policy Generator

Changeset 9119


Ignore:
Timestamp:
01/07/13 17:33:56 (11 years ago)
Author:
sforsten
Message:

#1998:

  • added OneRClassificationModelView
  • added ClassificationSolutionComparisonView
  • added several calculators (ConfusionMatrixCalculator, FOneScoreCalculator, MatthewsCorrelationCoefficientCalculator)
  • fixed bug in OneR
  • added StorableClass and Item attribute to several classes
Location:
branches/ClassificationModelComparison
Files:
7 added
10 edited

Legend:

Unmodified
Added
Removed
  • branches/ClassificationModelComparison/ClassificationModelComparison.sln

    r9074 r9119  
    1111EndProject
    1212Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis-3.4", "HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj", "{DF87C13E-A889-46FF-8153-66DCAA8C5674}"
     13EndProject
     14Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Views\3.4\HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj", "{3E9E8944-44FF-40BB-A622-3A4A7DD0F198}"
     15EndProject
     16Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis.Views-3.4", "HeuristicLab.Algorithms.DataAnalysis.Views\3.4\HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj", "{A2330DB0-413D-4424-B4E6-591118E2B9F8}"
    1317EndProject
    1418Global
     
    4650    {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.ActiveCfg = Release|x86
    4751    {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.Build.0 = Release|x86
     52    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     53    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Debug|Any CPU.Build.0 = Debug|Any CPU
     54    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Debug|x64.ActiveCfg = Debug|x64
     55    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Debug|x64.Build.0 = Debug|x64
     56    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Debug|x86.ActiveCfg = Debug|x86
     57    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Debug|x86.Build.0 = Debug|x86
     58    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|Any CPU.ActiveCfg = Release|Any CPU
     59    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|Any CPU.Build.0 = Release|Any CPU
     60    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|x64.ActiveCfg = Release|x64
     61    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|x64.Build.0 = Release|x64
     62    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|x86.ActiveCfg = Release|x86
     63    {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|x86.Build.0 = Release|x86
     64    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     65    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
     66    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|x64.ActiveCfg = Debug|x64
     67    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|x64.Build.0 = Debug|x64
     68    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|x86.ActiveCfg = Debug|x86
     69    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|x86.Build.0 = Debug|x86
     70    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
     71    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|Any CPU.Build.0 = Release|Any CPU
     72    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|x64.ActiveCfg = Release|x64
     73    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|x64.Build.0 = Release|x64
     74    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|x86.ActiveCfg = Release|x86
     75    {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|x86.Build.0 = Release|x86
    4876  EndGlobalSection
    4977  GlobalSection(SolutionProperties) = preSolution
  • branches/ClassificationModelComparison/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj

    r8609 r9119  
    2020    <DebugType>full</DebugType>
    2121    <Optimize>false</Optimize>
    22     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     22    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    2323    <DefineConstants>DEBUG;TRACE</DefineConstants>
    2424    <ErrorReport>prompt</ErrorReport>
     
    2828    <DebugType>pdbonly</DebugType>
    2929    <Optimize>true</Optimize>
    30     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     30    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    3131    <DefineConstants>TRACE</DefineConstants>
    3232    <ErrorReport>prompt</ErrorReport>
     
    4141  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    4242    <DebugSymbols>true</DebugSymbols>
    43     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     43    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4444    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4545    <DebugType>full</DebugType>
     
    5656  </PropertyGroup>
    5757  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    58     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     58    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5959    <DefineConstants>TRACE</DefineConstants>
    6060    <Optimize>true</Optimize>
     
    7373  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
    7474    <DebugSymbols>true</DebugSymbols>
    75     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     75    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7676    <DefineConstants>DEBUG;TRACE</DefineConstants>
    7777    <DebugType>full</DebugType>
     
    8888  </PropertyGroup>
    8989  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
    90     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     90    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    9191    <DefineConstants>TRACE</DefineConstants>
    9292    <Optimize>true</Optimize>
     
    104104  </PropertyGroup>
    105105  <ItemGroup>
     106    <Reference Include="HeuristicLab.Analysis-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     107    <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     108    <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     109    <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     110    <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     111    <Reference Include="HeuristicLab.Core.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     112    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     113    <Reference Include="HeuristicLab.Data.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     114    <Reference Include="HeuristicLab.MainForm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     115    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     116    <Reference Include="HeuristicLab.Optimization-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     117    <Reference Include="HeuristicLab.Optimization.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     118    <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     119    <Reference Include="HeuristicLab.Visualization.ChartControlsExtensions-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
    106120    <Reference Include="LibSVM-3.12, Version=3.12.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    107121      <HintPath>..\..\bin\LibSVM-3.12.dll</HintPath>
     
    161175      <DependentUpon>NcaDimensionReductionView.cs</DependentUpon>
    162176    </Compile>
     177    <Compile Include="OneRClassificationModelView.cs">
     178      <SubType>UserControl</SubType>
     179    </Compile>
     180    <Compile Include="OneRClassificationModelView.Designer.cs">
     181      <DependentUpon>OneRClassificationModelView.cs</DependentUpon>
     182    </Compile>
    163183    <Compile Include="Plugin.cs" />
    164184    <Compile Include="GaussianProcessRegressionSolutionLineChartView.cs">
     
    197217      <Project>{2E782078-FA81-4B70-B56F-74CE38DAC6C8}</Project>
    198218      <Name>HeuristicLab.Algorithms.DataAnalysis-3.4</Name>
    199       <Private>False</Private>
    200     </ProjectReference>
    201     <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
    202       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
    203       <Name>HeuristicLab.Analysis-3.3</Name>
    204       <Private>False</Private>
    205     </ProjectReference>
    206     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    207       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    208       <Name>HeuristicLab.Collections-3.3</Name>
    209       <Private>False</Private>
    210     </ProjectReference>
    211     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    212       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    213       <Name>HeuristicLab.Common.Resources-3.3</Name>
    214       <Private>False</Private>
    215     </ProjectReference>
    216     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    217       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    218       <Name>HeuristicLab.Common-3.3</Name>
    219       <Private>False</Private>
    220     </ProjectReference>
    221     <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
    222       <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
    223       <Name>HeuristicLab.Core.Views-3.3</Name>
    224       <Private>False</Private>
    225     </ProjectReference>
    226     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    227       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    228       <Name>HeuristicLab.Core-3.3</Name>
    229       <Private>False</Private>
    230     </ProjectReference>
    231     <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
    232       <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
    233       <Name>HeuristicLab.Data.Views-3.3</Name>
    234       <Private>False</Private>
    235     </ProjectReference>
    236     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    237       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    238       <Name>HeuristicLab.Data-3.3</Name>
    239       <Private>False</Private>
    240     </ProjectReference>
    241     <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
    242       <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
    243       <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
    244       <Private>False</Private>
    245     </ProjectReference>
    246     <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
    247       <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
    248       <Name>HeuristicLab.MainForm-3.3</Name>
    249       <Private>False</Private>
    250     </ProjectReference>
    251     <ProjectReference Include="..\..\HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj">
    252       <Project>{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}</Project>
    253       <Name>HeuristicLab.Optimization.Views-3.3</Name>
    254       <Private>False</Private>
    255     </ProjectReference>
    256     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    257       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    258       <Name>HeuristicLab.Optimization-3.3</Name>
    259       <Private>False</Private>
    260     </ProjectReference>
    261     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    262       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    263       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    264219      <Private>False</Private>
    265220    </ProjectReference>
     
    272227      <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
    273228      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
    274       <Private>False</Private>
    275     </ProjectReference>
    276     <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj">
    277       <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project>
    278       <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name>
    279229      <Private>False</Private>
    280230    </ProjectReference>
  • branches/ClassificationModelComparison/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/OneR.cs

    r9074 r9119  
    9595        double curSplit = Double.NegativeInfinity;
    9696        Dictionary<double, double> splits = new Dictionary<double, double>();
    97         int curBucketSize = 0;
     97        bool newBucket = true;
    9898        bool done = false;
    99         for (int curRow = 0; curRow < inputVariableValues.Length; curRow++) {
    100           if (curBucketSize < minBucketSize) {
    101             curSplit = inputVariableValues[curRow];
    102             classCount[classValuesInDataset[curRow]] += 1;
    103             curBucketSize++;
    104             continue;
    105           }
     99        int curRow = 0;
     100        while (curRow < inputVariableValues.Length) {
     101          if (newBucket) {
     102            for (int i = 0; i < minBucketSize && curRow + i < inputVariableValues.Length; i++) {
     103              classCount[classValuesInDataset[curRow + i]] += 1;
     104            }
     105            curRow += minBucketSize;
     106            if (curRow >= inputVariableValues.Length) {
     107              break;
     108            }
     109            curSplit = inputVariableValues[curRow];
     110            curRow = SetCurRowCorrectly(curRow, inputVariableValues, classValuesInDataset, classCount, curSplit);
     111            newBucket = false;
     112          }
     113
    106114
    107115          if (ExistsDominatingClass(classCount, out dominatingClass)) {
    108             int i = 1;
    109             while (curRow + i < classValuesInDataset.Length
    110               && classValuesInDataset[curRow + i] == dominatingClass) {
    111               curSplit = inputVariableValues[curRow + i];
    112               classCount[classValuesInDataset[curRow]] += 1;
    113               i++;
     116            while (curRow + 1 < classValuesInDataset.Length &&
     117              IsNextSplitStillDominationClass(curRow, inputVariableValues, classValuesInDataset, curSplit, dominatingClass)) {
     118              // curRow + i < classValuesInDataset.Length && classValuesInDataset[curRow + i] == dominatingClass) {
     119              curSplit = inputVariableValues[curRow + 1];
     120              classCount[classValuesInDataset[curRow + 1]] += 1;
     121              curRow++;
     122              curRow = SetCurRowCorrectly(curRow, inputVariableValues, classValuesInDataset, classCount, curSplit);
    114123            }
    115124
    116125            curCorrectClassified += classCount[dominatingClass];
    117             done = curRow + i >= inputVariableValues.Length;
     126            done = curRow >= inputVariableValues.Length - 1;
    118127
    119128            if (done) {
     
    123132            }
    124133
     134            curRow++;
    125135            //intervals exclude end
    126             curSplit = inputVariableValues[curRow + i];
     136            curSplit = inputVariableValues[curRow];
    127137            splits.Add(curSplit, dominatingClass);
    128138
    129             //intervals exclude start
    130             curSplit = inputVariableValues[curRow + i - 1];
     139            //intervals include start
     140            curSplit = inputVariableValues[curRow];
    131141            classCount = PrepareClassCountDictionary(classValues);
    132             curBucketSize = 0;
    133             curRow += i - 1;
    134 
     142            newBucket = true;
    135143          } else {
    136144            curSplit = inputVariableValues[curRow];
    137145            classCount[classValuesInDataset[curRow]] += 1;
    138             curBucketSize++;
     146            curRow = SetCurRowCorrectly(curRow, inputVariableValues, classValuesInDataset, classCount, curSplit);
    139147          }
    140148        }
     
    173181
    174182      return solution;
     183    }
     184
     185    private static bool IsNextSplitStillDominationClass(int curRow, double[] inputVariableValues, double[] classValuesInDataset, double curSplit, double dominatingClass) {
     186      if (curRow >= classValuesInDataset.Length) {
     187        return false;
     188      }
     189      double nextSplit = inputVariableValues[curRow + 1];
     190      int i = 1;
     191      while (curRow + i < classValuesInDataset.Length
     192        && inputVariableValues[curRow + i] == nextSplit
     193        && classValuesInDataset[curRow + i] == dominatingClass) {
     194        i++;
     195      }
     196      if (curRow + i >= classValuesInDataset.Length) {
     197        return true;
     198      }
     199      if (inputVariableValues[curRow + i] != nextSplit) {
     200        return true;
     201      }
     202      // the next split would also contain values of a class which
     203      // is not dominating (classValuesInDataset[curRow + i] != dominatingClass)
     204      return false;
     205    }
     206
     207    private static int SetCurRowCorrectly(int curRow, double[] inputVariableValues, double[] classValuesInDataset, Dictionary<double, int> classCount, double curSplit) {
     208      while (curRow + 1 < inputVariableValues.Length && inputVariableValues[curRow + 1] == curSplit) {
     209        curRow++;
     210        classCount[classValuesInDataset[curRow]] += 1;
     211      }
     212      return curRow;
    175213    }
    176214
  • branches/ClassificationModelComparison/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/OneR/OneRClassificationModel.cs

    r9074 r9119  
    2929
    3030namespace HeuristicLab.Algorithms.DataAnalysis {
     31  [StorableClass]
     32  [Item("1R Classification Model", "A model that uses intervals for one variable to determine the class.")]
    3133  public class OneRClassificationModel : NamedItem, IClassificationModel {
    3234    [Storable]
     
    5254    protected OneRClassificationModel(OneRClassificationModel original, Cloner cloner)
    5355      : base(original, cloner) {
    54       this.splits = original.splits;
     56      this.variable = (string)original.variable;
     57      this.splits = (double[])original.splits.Clone();
     58      this.classes = (double[])original.classes.Clone();
    5559    }
    5660    public override IDeepCloneable Clone(Cloner cloner) { return new OneRClassificationModel(this, cloner); }
     
    5862    public OneRClassificationModel(string variable, double[] splits, double[] classes)
    5963      : base() {
     64      if (splits.Length != classes.Length) {
     65        throw new ArgumentException("Number of splits and classes has to be equal.");
     66      }
    6067      if (!Double.IsPositiveInfinity(splits[splits.Length - 1])) {
    6168        throw new ArgumentException("Last split has to be double.PositiveInfinity, so that all values are covered.");
  • branches/ClassificationModelComparison/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/OneR/OneRClassificationSolution.cs

    r9074 r9119  
    2121
    2222using HeuristicLab.Common;
     23using HeuristicLab.Core;
    2324using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2425using HeuristicLab.Problems.DataAnalysis;
    2526
    2627namespace HeuristicLab.Algorithms.DataAnalysis {
     28  [StorableClass]
     29  [Item(Name = "1R Classification Solution", Description = "Represents a 1R classification solution (model + data).")]
    2730  public class OneRClassificationSolution : ClassificationSolution {
    28     public new ConstantClassificationModel Model {
    29       get { return (ConstantClassificationModel)base.Model; }
     31    public new OneRClassificationModel Model {
     32      get { return (OneRClassificationModel)base.Model; }
    3033      set { base.Model = value; }
    3134    }
  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/DiscriminantFunctionClassificationSolutionThresholdView.cs

    r8868 r9119  
    4646
    4747    private Dictionary<double, Series> classValueSeriesMapping;
    48     private Random random;
     48    private System.Random random;
    4949    private bool updateInProgress;
    5050
     
    5454
    5555      classValueSeriesMapping = new Dictionary<double, Series>();
    56       random = new Random();
     56      random = new System.Random();
    5757      updateInProgress = false;
    5858
  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj

    r8880 r9119  
    4141    <DebugType>full</DebugType>
    4242    <Optimize>false</Optimize>
    43     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     43    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4444    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4545    <ErrorReport>prompt</ErrorReport>
     
    5050    <DebugType>pdbonly</DebugType>
    5151    <Optimize>true</Optimize>
    52     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     52    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5353    <DefineConstants>TRACE</DefineConstants>
    5454    <ErrorReport>prompt</ErrorReport>
     
    5858  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    5959    <DebugSymbols>true</DebugSymbols>
    60     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     60    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6161    <DefineConstants>DEBUG;TRACE</DefineConstants>
    6262    <DebugType>full</DebugType>
     
    6666  </PropertyGroup>
    6767  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    68     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     68    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6969    <DefineConstants>TRACE</DefineConstants>
    7070    <Optimize>true</Optimize>
     
    7676  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    7777    <DebugSymbols>true</DebugSymbols>
    78     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     78    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7979    <DefineConstants>DEBUG;TRACE</DefineConstants>
    8080    <DebugType>full</DebugType>
     
    8484  </PropertyGroup>
    8585  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    86     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     86    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8787    <DefineConstants>TRACE</DefineConstants>
    8888    <Optimize>true</Optimize>
     
    9393  </PropertyGroup>
    9494  <ItemGroup>
    95     <Reference Include="ALGLIB-3.6.0, Version=3.6.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    96       <HintPath>..\..\bin\ALGLIB-3.6.0.dll</HintPath>
    97       <Private>False</Private>
     95    <Reference Include="ALGLIB-3.6.0">
     96      <HintPath>..\..\..\..\trunk\sources\bin\ALGLIB-3.6.0.dll</HintPath>
     97    </Reference>
     98    <Reference Include="HeuristicLab.Analysis-3.3">
     99      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis-3.3.dll</HintPath>
     100    </Reference>
     101    <Reference Include="HeuristicLab.Analysis.Views-3.3">
     102      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis.Views-3.3.dll</HintPath>
     103    </Reference>
     104    <Reference Include="HeuristicLab.Collections-3.3">
     105      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     106    </Reference>
     107    <Reference Include="HeuristicLab.Common-3.3">
     108      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     109    </Reference>
     110    <Reference Include="HeuristicLab.Common.Resources-3.3">
     111      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     112    </Reference>
     113    <Reference Include="HeuristicLab.Core-3.3">
     114      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
     115    </Reference>
     116    <Reference Include="HeuristicLab.Core.Views-3.3">
     117      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath>
     118    </Reference>
     119    <Reference Include="HeuristicLab.Data-3.3">
     120      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     121    </Reference>
     122    <Reference Include="HeuristicLab.Data.Views-3.3">
     123      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data.Views-3.3.dll</HintPath>
     124    </Reference>
     125    <Reference Include="HeuristicLab.MainForm-3.3">
     126      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
     127    </Reference>
     128    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3">
     129      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
     130    </Reference>
     131    <Reference Include="HeuristicLab.Optimization-3.3">
     132      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     133    </Reference>
     134    <Reference Include="HeuristicLab.Optimization.Views-3.3">
     135      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Views-3.3.dll</HintPath>
     136    </Reference>
     137    <Reference Include="HeuristicLab.Optimizer-3.3">
     138      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimizer-3.3.dll</HintPath>
     139    </Reference>
     140    <Reference Include="HeuristicLab.Parameters.Views-3.3">
     141      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters.Views-3.3.dll</HintPath>
     142    </Reference>
     143    <Reference Include="HeuristicLab.Persistence-3.3">
     144      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     145    </Reference>
     146    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     147      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     148    </Reference>
     149    <Reference Include="HeuristicLab.Random-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     150    <Reference Include="HeuristicLab.Visualization.ChartControlsExtensions-3.3">
     151      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Visualization.ChartControlsExtensions-3.3.dll</HintPath>
    98152    </Reference>
    99153    <Reference Include="System" />
     
    131185    <Compile Include="Classification\ClassificationFeatureCorrelationView.Designer.cs">
    132186      <DependentUpon>ClassificationFeatureCorrelationView.cs</DependentUpon>
     187    </Compile>
     188    <Compile Include="Classification\ClassificationSolutionComparisonView.cs">
     189      <SubType>UserControl</SubType>
     190    </Compile>
     191    <Compile Include="Classification\ClassificationSolutionComparisonView.Designer.cs">
     192      <DependentUpon>ClassificationSolutionComparisonView.cs</DependentUpon>
    133193    </Compile>
    134194    <Compile Include="Classification\ClassificationTimeframeFeatureCorrelationView.cs">
     
    356416      <Name>HeuristicLab.Algorithms.DataAnalysis-3.4</Name>
    357417    </ProjectReference>
    358     <ProjectReference Include="..\..\HeuristicLab.Analysis.Views\3.3\HeuristicLab.Analysis.Views-3.3.csproj">
    359       <Project>{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}</Project>
    360       <Name>HeuristicLab.Analysis.Views-3.3</Name>
    361       <Private>False</Private>
    362     </ProjectReference>
    363     <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
    364       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
    365       <Name>HeuristicLab.Analysis-3.3</Name>
    366       <Private>False</Private>
    367     </ProjectReference>
    368     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    369       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    370       <Name>HeuristicLab.Collections-3.3</Name>
    371       <Private>False</Private>
    372     </ProjectReference>
    373     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    374       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    375       <Name>HeuristicLab.Common.Resources-3.3</Name>
    376       <Private>False</Private>
    377     </ProjectReference>
    378     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    379       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    380       <Name>HeuristicLab.Common-3.3</Name>
    381       <Private>False</Private>
    382     </ProjectReference>
    383     <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
    384       <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
    385       <Name>HeuristicLab.Core.Views-3.3</Name>
    386       <Private>False</Private>
    387     </ProjectReference>
    388     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    389       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    390       <Name>HeuristicLab.Core-3.3</Name>
    391       <Private>False</Private>
    392     </ProjectReference>
    393     <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
    394       <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
    395       <Name>HeuristicLab.Data.Views-3.3</Name>
    396       <Private>False</Private>
    397     </ProjectReference>
    398     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    399       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    400       <Name>HeuristicLab.Data-3.3</Name>
    401       <Private>False</Private>
    402     </ProjectReference>
    403     <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
    404       <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
    405       <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
    406       <Private>False</Private>
    407     </ProjectReference>
    408     <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
    409       <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
    410       <Name>HeuristicLab.MainForm-3.3</Name>
    411       <Private>False</Private>
    412     </ProjectReference>
    413     <ProjectReference Include="..\..\HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj">
    414       <Project>{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}</Project>
    415       <Name>HeuristicLab.Optimization.Views-3.3</Name>
    416       <Private>False</Private>
    417     </ProjectReference>
    418     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    419       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    420       <Name>HeuristicLab.Optimization-3.3</Name>
    421       <Private>False</Private>
    422     </ProjectReference>
    423     <ProjectReference Include="..\..\HeuristicLab.Optimizer\3.3\HeuristicLab.Optimizer-3.3.csproj">
    424       <Project>{C664305E-497C-4533-A140-967DEDB05C19}</Project>
    425       <Name>HeuristicLab.Optimizer-3.3</Name>
    426       <Private>False</Private>
    427     </ProjectReference>
    428     <ProjectReference Include="..\..\HeuristicLab.Parameters.Views\3.3\HeuristicLab.Parameters.Views-3.3.csproj">
    429       <Project>{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}</Project>
    430       <Name>HeuristicLab.Parameters.Views-3.3</Name>
    431       <Private>False</Private>
    432     </ProjectReference>
    433     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    434       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    435       <Name>HeuristicLab.Persistence-3.3</Name>
    436       <Private>False</Private>
    437     </ProjectReference>
    438     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    439       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    440       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    441       <Private>False</Private>
    442     </ProjectReference>
    443418    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
    444419      <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
    445420      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
    446       <Private>False</Private>
    447     </ProjectReference>
    448     <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj">
    449       <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project>
    450       <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name>
    451421      <Private>False</Private>
    452422    </ProjectReference>
  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj

    r9074 r9119  
    206206    <Compile Include="Interfaces\TimeSeriesPrognosis\ITimeSeriesPrognosisSolution.cs" />
    207207    <Compile Include="OnlineCalculators\AutoCorrelationCalculator.cs" />
     208    <Compile Include="OnlineCalculators\ConfusionMatrixCalculator.cs" />
    208209    <Compile Include="OnlineCalculators\DependencyCalculator\HoeffdingsDependenceCalculator.cs" />
    209210    <Compile Include="OnlineCalculators\DependencyCalculator\PearsonsRDependenceCalculator.cs" />
    210211    <Compile Include="OnlineCalculators\DependencyCalculator\PearsonsRSquaredDependenceCalculator.cs" />
    211212    <Compile Include="OnlineCalculators\DependencyCalculator\SpearmansRankCorrelationCoefficientCalculator.cs" />
     213    <Compile Include="OnlineCalculators\FOneScoreCalculator.cs" />
     214    <Compile Include="OnlineCalculators\MatthewsCorrelationCoefficientCalculator.cs" />
    212215    <Compile Include="OnlineCalculators\OnlineBoundedMeanSquaredErrorCalculator.cs" />
    213216    <Compile Include="OnlineCalculators\OnlineDirectionalSymmetryCalculator.cs" />
  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ConstantClassificationModel.cs

    r9074 r9119  
    2727
    2828namespace HeuristicLab.Problems.DataAnalysis {
     29  [StorableClass]
    2930  [Item("Constant Classification Model", "A model that always returns the same constant value regardless of the presented input data.")]
    3031  public class ConstantClassificationModel : NamedItem, IClassificationModel {
  • branches/ClassificationModelComparison/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ConstantClassificationSolution.cs

    r9074 r9119  
    2121
    2222using HeuristicLab.Common;
     23using HeuristicLab.Core;
    2324using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2425
    2526namespace HeuristicLab.Problems.DataAnalysis {
     27  [StorableClass]
     28  [Item(Name = "Constant Classification Solution", Description = "Represents a constant classification solution (model + data).")]
    2629  public class ConstantClassificationSolution : ClassificationSolution {
    2730    public new ConstantClassificationModel Model {
Note: See TracChangeset for help on using the changeset viewer.