问题标签 [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.
c# - ML.NET MakePredictionFunction 动态类型?
我能够从string[]
列名中动态训练和创建我的回归模型。但是,当我尝试传入具有与 Dictionary Key Pair 属性相同的参数名称的动态对象时,它会引发错误:
System.ArgumentOutOfRangeException: 'Could not find input column '<MyColumn>''
<MyColumn>
模型要查找的第一个参数在哪里。
我怀疑这是因为动态对象不包含[Column]
我通常会传入的标准类对象所具有的属性。
但是,我最终将拥有数百个通过转置 SQL 查询自动生成的列,因此手动键入每一列对于未来来说不是一种可行的方法。
有什么办法可以在运行时应用该属性吗?或者任何其他方式我可以一般地处理这种情况?谢谢!
.net - ML .net 读取制表符分隔的数据集
这是我第一次使用 ML.net 0.8,我在数据集中加载时遇到了麻烦。
数据预览看起来不错,但是当它尝试拟合以执行拟合操作时,我收到以下错误:
System.InvalidOperationException:'列'Streat'的值是R4,这与之前观察到的文本类型不同。'
我检查了数据,数据文件中没有文本元素,除了产品列。
任何建议都非常受欢迎。
c# - 将控制台应用程序转换为 UWP 应用程序错误 ML.NET
我正在尝试将 ML.NET 应用程序从 win 控制台转换为 UWP,并且我没有将文件加载到我的 ML 管道中。我收到“找不到文件”错误。
这是我的代码:
这是获取文件的代码:
这是我的对象。
我在以下行收到错误:
var model = pipeline.Train();
machine-learning - 在 ML.NET 中更新经过训练的模型
这个例子展示了如何使用矩阵分解来构建推荐系统。这个例子特别适用于只有两个相关 id 的数据集,比如相应用户购买的用户 id 和产品 id。
基于此示例,我准备了如下所示的输入数据。
并更改列名,使TextLoader
.
它工作得很好。它推荐目标用户可以购买的产品列表,并带有个人分数。但是,它不适用于初始输入数据中不存在的新客户数据,例如,它会根据预测UserId 1
给出分数。NaN
重新训练模型可能是一个显而易见的答案,但每次有新数据进入时重新训练模型似乎是徒劳的。我认为肯定有一种方法可以更新现有模型,但我无法在任何地方找到相关文档、API 或示例。我最终在 ML.NET 的官方 github 上留下了一个问题,但到目前为止我还没有得到任何答案。
问题很简单,简而言之,如何在 ML.NET 中更新经过训练的模型?链接相关的信息来源也将不胜感激。
c# - 如何将动态类传递给泛型函数?
我想制作一个用于 Web 应用程序的机器学习 api,字段名称将与其数据类型一起传递给 api。
目前我正在使用此答案中提供的代码在运行时创建一个类:https ://stackoverflow.com/a/3862241
当我需要调用 ML.NET PredictionFunction 时出现问题,我无法传入泛型函数的类型,因为它们是在运行时生成的。我尝试使用反射来调用它,但它似乎无法找到该函数。
注意:现在 ML.NET 的文档正在更新为 0.9.0,因此它不可用。
我试过的是这个(最小):
完整(修订和修剪)源(更多上下文):Program.cs
c# - 在 ML.NET 中训练模型而不标记特征
我想训练一个具有大量特征的模型,这些特征是特定关键字是否出现在页面上。功能列表是如此之大,以至于我无法像此处的 ML.NET 教程中建议的那样标记所有这些功能。
相反,我希望能够给它一个未命名的特征列表,就像你可以在 sklearn 中使用 python 做的那样,只需给它一个特征数组[[0,0,1],[0,1,0]]
和一个标签数组["ShoppingSite", "SocialNetwork"]
。
c# - 如何修复“列的类型值与先前观察到的类型不同”
我正在创建一个机器学习模型,我想从文本文件中读取不同的值并使用CustomMapping
. System.InvalidOperationException
程序在运行时抛出CustomMapping
.
我已经缩小了CustomMapping
函数的原因,我正在读取的文本文件没有任何空值。我已经仔细检查了所有变量声明,并确保它们都使用正确的类型。我的预感是自定义映射将 1 和 0 解释为布尔值而不是浮点数,尽管我认为没有理由这样做。
为大量转储道歉,但问题是关于类型问题,所以我认为展示所有内容很重要。
我的管道:
我的自定义映射:
配置文件输入:
简介过程:
运行时pipeline.fit()
出现以下异常:
System.InvalidOperationException:“列 'profileVisibility' 的值为 R4,这与之前观察到的 Bool 类型不同。”
我希望它能够成功完成代码而不会引发错误,实际输出将是一个 TransformerChain 模型——我知道管道还没有训练器,所以这个模型现在是无用的。
c# - MlContext 不了解我的温度类型
我是 ML.NET 的初学者,我的数据有点问题。当我将它们放入 mlContext.Fit(...); 这是我收到的错误:
这是我的代码:
因此,当我在文本文件中获取数据时,我对字符串 Column 进行编码,然后尝试训练模型,但此时我收到了错误。我的数据是:
Charleroi-Sud,Mons,Thursday,BE.NMBS.IC3831,部分晴天,-2,0,False,,1044,0 Charleroi-Sud,Mons,Thursday,BE.NMBS.IC932,大部分多云,-2,0, False,,1112,0 Charleroi-Sud,Mons,Thursday,BE.NMBS.IC3832,大部分多云,-1,0,False,,1144,0 Charleroi-Sud,Mons,Thursday,BE.NMBS.IC933,多云, -1,0,False,,1212,0 Charleroi-Sud,Mons,Thursday,BE.NMBS.IC3842,多云,-1,0,False,,2144,0 Charleroi-Sud,Mons,Thursday,BE.NMBS .IC943,多云,-1,0,False,,2212,0 Charleroi-Sud,Mons,Thursday,BE.NMBS.IC3843,多云,-1,0,False,,2247,0 Charleroi-Sud,Mons ,Friday,BE.NMBS.IC3825,部分多云,-1,0,False,,0444,0 Charleroi-Sud,Mons,Friday,BE.NMBS.IC3826,大部分多云,-1,0,False,,0544, 0 Charleroi-Sud,Mons,Friday,BE.NMBS.IC927,多云,-1,0,False,,0612,0
如您所见,数据之间有每个“,”,温度是一个整数。在 TrainData 内部,是这样完成的:
c# - 为什么 ReadFromEnumerable 方法不起作用?机器学习网络
我正在尝试重新创建以下示例https://github.com/dotnet/machinelearning/blob/master/docs/samples/Microsoft.ML.Samples/Dynamic/SsaSpikeDetectorTransform.cs 但我不断收到 DataOperations 没有的错误t 包含 ReadFromEnumerable 方法的定义。我还收到 CreateEnumerable 方法不存在的错误,但我怀疑它与 ReadFromEnumerable 错误有关。
我已经复制了整个命名空间和代码,以防我可能遗漏了什么,但错误仍然存在。
从 Enumerable 方法中读取
CreateEnumerable 方法