逻辑回归不';t一致收敛MVC#accord

逻辑回归不';t一致收敛MVC#accord,c#,asp.net-mvc,logistic-regression,accord.net,C#,Asp.net Mvc,Logistic Regression,Accord.net,我正在做一个用逻辑回归计算概率的项目。这是我的代码 regression = new LogisticRegressionAnalysis(allInput, allOutput); isConverged = regression.Compute(1e-005, 50); if (isConverged) { //Save the fake data to t

我正在做一个用逻辑回归计算概率的项目。这是我的代码

regression = new LogisticRegressionAnalysis(allInput, allOutput);
                isConverged = regression.Compute(1e-005, 50);
                if (isConverged)
                {
                    //Save the fake data to the db when it converges.
                    UserTimeServices uts = new UserTimeServices();
                    uts.populateTimeProfile(trueFakeInput, true, user.UserGuid);
                    uts.populateTimeProfile(falseFakeInput, false, user.UserGuid);

                    return Math.Round(regression.Regression.Compute(loginTimes.ToArray()), 5);
                }
            }
        }// the part above is in a while loop. 
        var regressionAnalysis = new LogisticRegressionAnalysis(input, output);
        bool converging = regressionAnalysis.Compute(1e-005, 50);// it always doesnt converge even with the same set of data.
我们没有足够的虚假数据来支持分析,所以我们创造了一种欺骗虚假输入的方法。通常我们有10个正输入,然后我们伪造10个假输入。然后我们试着计算这个。如果结果不收敛,我们放弃最后一组假输入,创建另一组,直到结果收敛。结果收敛后,我们保存生成的错误输入。然而,问题是,如果我们试图用保存的假输入和原始的正输入再次计算它,结果不会像第一次那样收敛。据我所知,如果我使用相同的数据集,逻辑回归分析的结果应该是相同的,但这似乎不适用于这个项目。有什么建议吗

regression = new LogisticRegressionAnalysis(allInput, allOutput);
                isConverged = regression.Compute(1e-005, 50);
                if (isConverged)
                {
                    //Save the fake data to the db when it converges.
                    UserTimeServices uts = new UserTimeServices();
                    uts.populateTimeProfile(trueFakeInput, true, user.UserGuid);
                    uts.populateTimeProfile(falseFakeInput, false, user.UserGuid);

                    return Math.Round(regression.Regression.Compute(loginTimes.ToArray()), 5);
                }
            }
        }// the part above is in a while loop. 
        var regressionAnalysis = new LogisticRegressionAnalysis(input, output);
        bool converging = regressionAnalysis.Compute(1e-005, 50);// it always doesnt converge even with the same set of data.
这是我的密码。我正在使用Accord.Statistics.Analysis:

regression = new LogisticRegressionAnalysis(allInput, allOutput);
                isConverged = regression.Compute(1e-005, 50);
                if (isConverged)
                {
                    //Save the fake data to the db when it converges.
                    UserTimeServices uts = new UserTimeServices();
                    uts.populateTimeProfile(trueFakeInput, true, user.UserGuid);
                    uts.populateTimeProfile(falseFakeInput, false, user.UserGuid);

                    return Math.Round(regression.Regression.Compute(loginTimes.ToArray()), 5);
                }
            }
        }// the part above is in a while loop. 
        var regressionAnalysis = new LogisticRegressionAnalysis(input, output);
        bool converging = regressionAnalysis.Compute(1e-005, 50);// it always doesnt converge even with the same set of data.

提前感谢。

回归分析.Compute的第一个参数是什么类型?代码是在asp.net-mvc框架中完成的。@RichardSzalay第一个参数(1e-005)是回归算法停止时两次迭代之间的差异。第二个(50)是最大迭代次数。我试着把它们去掉,但结果还是一样。@Titan我的意思是,
Compute
的第一个参数是
int
float
double
decimal
,等等?
regression = new LogisticRegressionAnalysis(allInput, allOutput);
                isConverged = regression.Compute(1e-005, 50);
                if (isConverged)
                {
                    //Save the fake data to the db when it converges.
                    UserTimeServices uts = new UserTimeServices();
                    uts.populateTimeProfile(trueFakeInput, true, user.UserGuid);
                    uts.populateTimeProfile(falseFakeInput, false, user.UserGuid);

                    return Math.Round(regression.Regression.Compute(loginTimes.ToArray()), 5);
                }
            }
        }// the part above is in a while loop. 
        var regressionAnalysis = new LogisticRegressionAnalysis(input, output);
        bool converging = regressionAnalysis.Compute(1e-005, 50);// it always doesnt converge even with the same set of data.