c# - 如何提高 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%。
谢谢前面的人
解决方案
推荐阅读
- azure-language-understanding - 在 LUIS 中设置标志以进行 BING 拼写检查
- python-3.x - Mathematica 中使用的命令 % 的 python3 类似物是什么?
- java - RabbitMQ 消息在消费时不会出队
- php - 我想要受codeigniter中更新查询影响的受影响的行数据和列
- php - 当 table1.id=table2.id 时,我如何打印一件事,而另一件事是“if else”?
- c# - C#:调整图像大小时缩放图形的问题
- html - 如何匹配 Outlook 中电子邮件签名中两个表格的宽度?
- hibernate - 休眠单个实体的两个 @OneToMany 关系在 UPDATE 之前触发两个 SELECT 查询
- typescript - 如何使用量角器自动化“键盘访问”以进行可访问性测试?
- javascript - 使用名称引用的动态变量