问题标签 [ml.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1587 浏览

f# - 在 Visual Studio 代码中构建项目时如何指定目标体系结构?

我是 VS 代码/F# 的新手,我正在尝试构建一个 F# 控制台应用程序(在 Windows 工作站和我的 Linux 计算机上)。

我将 Ionide 扩展与 FAKE 一起安装。

我正在考虑的代码是 Iris 示例(请参阅如何将介绍 ML.Net 演示转换为 F#?),使用 Ionide 并使用 Microsoft.ML 创建一个新的 F# 项目。

iris.fsproj的是

运行脚本时(我使用“播放”按钮又名 F#:运行 VS Code/Ionide 提供的脚本)我得到:

C:\Users\MyUser\.nuget\packages\microsoft.ml\0.2.0\build\Microsoft.ML.targets(16,5): error : Microsoft.ML currently supports 'x64' processor architectures. Please ensure your application is targeting 'x64'.

和...一起

Running build failed. Error: System.Exception: dotnet build failed

如何使用 Ionide 提供的项目结构定位 x64?

0 投票
1 回答
612 浏览

c# - ML.Net 无法从 MVC 项目的存储中加载模型

我一直在玩 ML.Net,并希望将其集成到 ASP.NET MVC 项目中。

我有一个控制台应用程序,负责训练模型,然后将其保存到服务器上的文件夹中,然后 MVC 项目将加载它并使用它来预测结果。

在我的初始测试中,控制台应用程序能够训练模型并将其保存到文件中,然后从该文件加载模型并预测一些结果。

但是,MVC 项目无法加载相同的模型文件,但出现以下异常:

有人经历过吗?奇怪的是,相同的模型会在控制台应用程序中按预期加载,但在 MVC 项目中失败。

控制台应用程序和 mvc 项目都在 .Net Framework 4.6.1(ML.NET 要求的 .Net 标准 2.0)上运行。控制台应用程序面向 x64,而 MVC 项目设置为 AnyCPU,但本地 IIS 服务器在 x64 进程中加载​​站点。

任何帮助,将不胜感激。

谢谢

编辑 按照评论中的要求,这里有一些代码片段:

编辑 ML.Net 0.3.0 版(来自 Nuget 包)

0 投票
1 回答
126 浏览

c# - 二叉树的结构

我正在尝试做的事情:

我想展示一棵树。

我做了什么:

我使用ML.net使用随机 forrest 算法训练决策树模型。

随机 forrest 算法会产生多个回归树,我想显示这些回归树。

当我获取树列表时,我以以下格式获取它们:

ML.net 的包含类是RegressionTree.cs

根据我的理解left_childand right_childare LteChildand GtChild,所有这些数组都具有不带叶子的最大节点数的长度(因此,如果有 20 个叶子,则长度为 19)。

split_feature是使用的特征的数据列。

我认为负值是叶子。

我的问题:

不幸的是,我无法像这样构建基于节点的树

因为我不明白数组的值是如何排序的。

更新:

与往常一样,当您向他人寻求帮助时,您自己很快就会得到另一个有希望的想法:

我深入研究了 ML.net 的代码,我想我找到了一个线索(感兴趣的人第 856 行)。

我的猜测是必须有一个变量作为计数器,例如int node

这个计数器开始于0

要获得拆分列,需要获得SplitFeatures[node]

子节点将是LteChild[node](LesserThanEqualChild) 和GtChild[node](GreaterThan)

等等。

更新2:

我想我做对了

结构化数据:

一旦我编写了解决方案,我会将其发布为答案。

0 投票
1 回答
940 浏览

ml.net - Microsoft.ML --version 0.3.0 -- 无法在 10 分钟内开始使用 ML.NET

我已按照(https://www.microsoft.com/net/learn/apps/machine-learning-and-ai/ml-dotnet/get-started/windows)中提供的步骤开始使用 ML.NET 10分钟。

但是在运行应用程序时。控制台通过以下运行时错误。

0 投票
1 回答
239 浏览

c# - Microsoft.ML 中的“未找到入口点‘Trainers.FastTreeRegressor’”

我正在尝试使用 Microsoft.ML 中的 FastTreeRegressor 构建 ML 模型,将出租车票价预测教程中的代码复制到我预先存在的环境中,在那里我可以交换数据和一些参数。这一切都成功构建,但运行会产生错误:

System.InvalidOperationException:'找不到入口点'Trainers.FastTreeRegressor''

我怎样才能解决这个问题?


旁注:我排除了代码示例,因为教程包含它们,并且提前知道答案(见下文),它们不会增加问题的解决能力。

0 投票
0 回答
1349 浏览

c# - 机器学习 - 缺少分数列

我正在尝试使用一些随机测试数据的 ML.net 框架。我的数据存在 DepartmentId (1-25) 和 Body (string)。我希望我的机器预测应该分配身体的部门(例如在像 Zendesk 这样的票务系统中)。

使用以下代码,我收到一个错误:

ArgumentOutOfRangeException:缺少分数列

我不确定为什么它说该Score列丢失,因为它存在于我的预测类中。

这是我训练模型的设置,以及我的课程。

主要的

部门数据和部门预测

示例数据

评估

0 投票
1 回答
1843 浏览

c# - 在 ML.net 中发布训练模型。从 TaxiFareExample 发布更改模型。'Features' 必须是已知大小的 R4 向量,但具有类型:Vec

在 ML.net 中发布训练模型。

从 TaxiFareExample 发布更改模型。“特征”必须是已知大小的 R4 向量,但类型为:Vec。

我从TaxiFare示例开始,并且有效。但后来我更改了模型并添加了我自己的值和数据。我得到了关于Features上述的错误。我玩了一段时间并尝试限制我的数据。甚至尝试再次预测票价金额,但使用我的值作为模型(2 个整数)。

我的数据模型非常基础,我不会添加更多变量,而是尝试从简单开始。

一些第一行(我将前两个值作为int's 并试图将第三个值预测为 a float)。

在这里问了一个问题,但还没有看到回复。

0 投票
1 回答
287 浏览

ml.net - 动态类/对象 ML.net 的 PredictionMoadel火车()

我正在使用Microsoft 的 ML.net 库。

我想根据在运行时生成合同的模型来训练数据(这意味着在编译时这些字段是未知的)。这可以使用当前 ML.net 的 Train() 方法签名来实现吗?

到目前为止,我正在尝试通过传入 TInput 和 TOutput 对象(而不是 T 类)的实例来调用此 Train 方法。

0 投票
1 回答
1840 浏览

c# - 如何在 .NET Framework 4.6.1 应用程序中预测/评分 XGBoost 或 LightGBM

LightGBM我有一个机器学习问题,我在使用和的训练/测试数据上获得了非常好的结果XGBoost。下一步是从这些模型之一获取预测到现有 C# 应用程序 (.NET Framework 4.6.1) 是否有任何库可以帮助我做到这一点?到目前为止我已经尝试过:

  • ML.NET:应该适用于LigthGBM,但由于这个错误,它仅适用于 .NET Core。
  • Windows.ML:这应该能够预测 ONNX 模型,并且我设法从我的模型创建了一个 ONNXXGBoost模型。但 Windows.ML 似乎只适用于 UWP 应用程序,至少所有示例都是 UWP。
  • SharpLearning:这个库有一个接口XGBoost。不幸的是,它不支持我所依赖的样本权重。
  • CNTK:尝试加载 ONNX 文件(类似于此示例),但得到:错误:CNTK 不支持 ONNX (TreeEnsembleClassifier)。

有什么建议,还是我必须等待 ML.NET 修复错误?

0 投票
1 回答
662 浏览

ml.net - ML 控制台应用程序抛出本地 dll 未找到错误

我使用 VS 2017 创建了一个 Dotnet 核心应用程序,然后将其发布,然后将具有运行时文件夹和我的应用程序 dll 的已发布文件夹复制到我安装了 dotnet 核心框架的 Windows 服务器 2016。

即使我从命令行运行应用程序,我也会收到以下错误。(我发现这个 dll 在运行时文件夹下,但不知何故应用程序无法加载)

调用的目标已引发异常。---> System.Reflection.TargetInvocationException:调用的目标已抛出异常。---> System.DllNotFoundException:无法加载 DLL 'CpuMathNative' 或其依赖项之一:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)