我正在研究一个使用逻辑回归计算概率的项目。所以,这是我的代码。
我们没有足够的错误数据来支持分析,因此我们创建了一种欺骗虚假输入的方法。通常我们有10个正输入,然后我们欺骗10个错误输入。之后我们尝试计算这个。如果结果不收敛,我们放弃最后一组错误输入并创建另一组,直到结果收敛。结果收敛后,我们保存了我们产生的错误输入。但问题是,如果我们尝试使用原始正输入保存的错误输入再次计算它,结果就不会像第一次那样收敛。据我所知,如果我使用相同的数据集,结果应该与逻辑回归分析相同,但对于这个项目来说似乎并非如此。有什么建议吗?
这是我的代码。我正在使用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.
提前致谢。