首页 > 解决方案 > 如何提高 ML.Net 中不同机器学习算法的预测精度

问题描述

我是 Ml.Net 的新手,目前正在使用 0.11 版,更具体地说,是二进制分类器,我目前正在做的事情。我现在已经想通了,可以实现我的需要,但我希望能够改进事情并打开我的选择。

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

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

我已经发现逻辑回归可以有一个选项对象组成并传递给它,但我无法为其他对象找到相同的对象,也不知道传递给逻辑回归算法的选项的典型特征是什么。

我已经搜遍了网,但空手而归。

用以下内容附加我的管道可以提供很好的准确性:

.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%。

谢谢前面的人

标签: c#machine-learningml.net

解决方案


推荐阅读