如何在ML.Net中提高不同机器学习算法的预测精度

时间:2019-04-11 16:10:44

标签: c# machine-learning ml.net

我是Ml.Net的新手,目前正在使用版本0.11,更具体地说是二进制分类器。我现在已经解决了这个问题,可以实现我所需要的,但是我希望能够改进并打开我的选择。

我对设置随机梯度下降,随机梯度上升对偶坐标和逻辑回归算法的选项有疑问。对于这些看不见的数据(未设置选项),其预测准确性要比快速树算法(后者将叶子中的叶子,树和最小数据点作为选项进行设置)的准确性要差得多(例如50%对89%的准确性)。就像我使用FastTree设置选项一样,我无法弄清楚如何为其他ML算法(即numTrees,numLeaves等)设置选项,并且由于它还不是RC,所以几乎没有文档,也没有示例可以找到。

我还想知道某人可能使用这些算法设置的“典型”选项,因此我可以获得基线并从那里进行更改。

我发现Logistic回归可以包含一个组成并传递给它的选项对象,但是我无法为其他对象找到相同的对象,也不知道选项传递给Logistic回归算法的典型含义。

我已经搜寻过网,但是空手而归。

在管道中添加以下内容可以提高准确性:

.Append(mlContext.BinaryClassification.Trainers.FastTree(numLeaves: 50, numTrees: 50, minDatapointsInLeaves: 20));

在我的管道中添加以下任何内容都会带来可怕的准确性

.Append(mlContext.BinaryClassification.Trainers.LogisticRegression());
            .Append(mlContext.BinaryClassification.Trainers.StochasticGradientDescent());
      .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent());

此外,使用不带选项的快速树会降低性能,例如:

.Append(mlContext.BinaryClassification.Trainers.FastTree());

我已经找到了逻辑回归的最佳方法(即下面的方法),但不知道要设置哪些“典型值” /要包括哪些选项:

 var LogRegOptions = new Microsoft.ML.Trainers.LogisticRegression.Options
 {
    SgdInitializationTolerance = ?,
    InitWtsDiameter = ?,

    ?????
 };

我希望这些算法的预测准确度与具有给定选项的快速树(89%)相同,但是在不加载任何选项的情况下,它们的准确率都低于50%。

感谢前进的人们

0 个答案:

没有答案