private void CMatric_Click(object sender, RoutedEventArgs e)
        {
            if (!(this.DataContext is ModelPerformance))
            {
                return;
            }

            var modelPerf = (ModelPerformance)this.DataContext;
            var ret       = ((ModelPerformance)this.DataContext).PerformanceData;

            //MModelEvaluation dlg = new MModelEvaluation();
            MClassEvalWnd dlg = new MClassEvalWnd();

            dlg.Title = $"Confusion matrix for {modelPerf.DatSetName}";
            var cl = ret["Classes"].Select(x => x.ToString()).ToArray();

            dlg.loadClasses(cl);
            dlg.loadData(ret["obs_train"].Select(x => (double)x).ToArray(), ret["prd_train"].Select(x => (double)x).ToArray());

            dlg.ShowDialog();
        }
        private void CMatric_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (!(this.DataContext is ModelPerformance))
                {
                    return;
                }

                var modelPerf = (ModelPerformance)this.DataContext;
                var ret       = ((ModelPerformance)this.DataContext).PerformanceData;

                //no validation or
                if (ret == null)
                {
                    throw new Exception("The dataset is empty!");
                }

                //MModelEvaluation dlg = new MModelEvaluation();
                MClassEvalWnd dlg = new MClassEvalWnd();
                dlg.Title = $"Confusion matrix for {modelPerf.DatSetName}.";
                var cl = ret["Classes"].Select(x => x.ToString()).ToArray();
                dlg.loadClasses(cl);
                dlg.loadData(ret["obs_train"].Select(x => (double)x).ToArray(), ret["prd_train"].Select(x => (double)x).ToArray());

                dlg.ShowDialog();
            }
            catch (Exception ex)
            {
                var ac = App.Current.MainWindow.DataContext as AppController;
                if (ac != null)
                {
                    ac.ReportException(ex);
                }
            }
        }