ML.NET Cookbook:(7)如何训练回归模型?

通常,为了在ML.NET中训练任何模型,您将经历三个步骤:

  1. 弄清楚训练数据如何以IDataView形式进入ML.NET。

  2. 将“学习管道”构建为一系列基本的“运算符”(估计器)。

  3. 在管道上调用Fit以获得经过训练的模型。

示例文件[1]:

feature_0;feature_1;feature_2;feature_3;feature_4;feature_5;feature_6;feature_7;feature_8;feature_9;feature_10;target
-2.75;0.77;-0.61;0.14;1.39;0.38;-0.53;-0.50;-2.13;-0.39;0.46;140.66
-0.61;-0.37;-0.12;0.55;-1.00;0.84;-0.02;1.30;-0.24;-0.50;-2.12;148.12
-0.85;-0.91;1.81;0.02;-0.78;-1.41;-1.09;-0.65;0.90;-0.37;-0.22;402.20

在上面的文件中,最后一列(第12列)是我们预测的标签,前面所有的都是特征。

// 第一步:将数据加载为IDataView。
// 首先,我们定义加载器:指定数据列以及它们在文本文件中的位置。
// 将数据加载到数据视图中。但是请记住,加载器是延迟执行的,所以实际加载将在访问数据时发生。
var trainData = mlContext.Data.LoadFromTextFile<RegressionData>(dataPath,// 默认分隔符是tab,但数据集使用分号。separatorChar: ';'
);// 有时,当数据要在某个地方多次使用时,在首次访问后将数据缓存在内存中可以节省一些加载时间。缓存机制也是延迟执行的;它只在使用后才缓存东西。用户可以用“cachedTrainData”替换“trainData”的所有后续用法。
// 我们仍然使用“trainData”,因为提供相同缓存功能的缓存步骤将插入到所考虑的“管道”中。
var cachedTrainData = mlContext.Data.Cache(trainData);// 第二步:定义学习管道。// 我们用加载器的输出“启动”管道。
var pipeline =// 首先“规范化”数据(对于所有样本,重新缩放到-1和1之间)mlContext.Transforms.NormalizeMinMax("FeatureVector")// 我们增加了一个在内存中缓存数据的步骤,使得下游的迭代训练算法能够有效地对数据进行多次扫描。否则,下面的训练器将多次从磁盘加载数据。缓存机制使用按需策略。// 在任何下游步骤中访问的数据都将在首次使用后被缓存。通常,您只需要在可训练步骤之前添加一个缓存步骤,因为如果数据只扫描一次,则缓存没有帮助。如果用户没有足够的内存来存储整个数据集,则可以删除此步骤。请注意,在上游Transforms.Normalize步骤中,我们只扫描数据一次,因此添加缓存步骤是没有帮助的。.AppendCacheCheckpoint(mlContext)// 添加SDCA回归训练器。.Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Target", featureColumnName: "FeatureVector"));//第三步: 在管道上调用`Fit`
var model = pipeline.Fit(trainData);

参考资料

[1]

示例文件: https://github.com/dotnet/machinelearning/blob/main/test/data/generated_regression_dataset.csv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android动画送礼物,Android仿直播类app赠送礼物功能

直播界面实现的是播放本地的视频文件&#xff1a;/*** 直播界面&#xff0c;用于对接直播功能*/public class LiveFrag extends Fragment {private ImageView img_thumb;private VideoView video_view;NullableOverridepublic View onCreateView(NonNull LayoutInflater inflat…

一张纸一幅图,竟然提高了10倍的学习和工作效率!?

人类大脑的容量远远超出一般人的想象&#xff0c;时到21世纪的今天&#xff0c;我们对大脑的运用远远不够。大脑机能的使用率基于我们的思维模式&#xff0c;而思维导图正是开发大脑中最有效的利器&#xff01;之前小木给大家推荐了一套基于少儿大脑思维开发的书籍——东尼博赞…

C# 消息队列之MSMQ

首先说一下&#xff0c;消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务&#xff0c;也就是Windows操作系统的功能&#xff0c;并不是.Net提供的。消息队列&#xff08;MSMQ&#xff09;技术使得运行于不同时间的应用程序能够在各种各样的网络和可能暂时脱机的系统之…

惊呆了!竟然还有这样的操作!

2018已成为过去&#xff0c;2019的序幕已经悄然打开&#xff01;2019开年钜惠盛大来袭&#xff01;&#xff08;福利在最后&#xff01;&#xff01;&#xff01;&#xff09;Python专场Python快速入门实战&#xff08;59.9&#xff09;人工智能的浪潮下&#xff0c;Python因其…

使用 .NET 升级助手将.NET Framework应用迁移到.NET 5

从.NET Framework 迁移到.NET 5 犹如搬家&#xff0c;我们都知道搬家是很痛苦的&#xff0c;我们请求搬家公司来减轻我们的压力&#xff0c;.NET 升级助手 的作用就类似我们聘请的搬家公司&#xff0c;帮助我们处理繁重乏味的迁移工作。.NET 升级助手是一个全局命令行工具&…

java 逐行写入csv_go|使用go读写CSV文件

生成CSV文件package mainimport ("encoding/csv""log""os")var data [][]string{{"tom", "18", "beijing"}, {"jon", "19", "shanghai"}}func main() {file, err : os.Create(&qu…

用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG

1. 简介在进行安卓音视频开发时&#xff0c;利用安卓NDK工具交叉编译FFmpeg&#xff0c;生成可供安卓平台调用的FFmpeg库是最基础的工作。本篇文章介绍了利用NDK进行FFmpeg编译的具体过程&#xff0c;以及如何在Linux和windows系统下交叉编译出适用于不同安卓平台的FFmpeg库文件…

第106届印度科学大会:牛顿和爱因斯坦的理论惨遭印度科学家驳斥

全世界只有3.14 % 的人关注了数据与算法之美昨天&#xff0c;一年一度的印度科学大会&#xff08;Indian Science Congress&#xff09;落下了帷幕。第106届印度科学大会的主要成员合影一般来说&#xff0c;这种学术性会议是学者们进行学术交流的最佳时期&#xff0c;而且能参加…

润乾报表分组求和_实现报表数据预先计算

报表应用中&#xff0c;如果数据量较大或计算过程较复杂&#xff0c;往往会导致报表数据源准备过慢&#xff0c;从而影响报表性能。这种情况下可以预先计算报表需要的数据&#xff0c;在呈现时直接引用&#xff0c;使得用户在访问报表时可以迅速地获得响应。一、当前的手段及弊…

“鸭梨”大吗?

大家好&#xff0c;我是Z哥。“今天你卷了吗&#xff1f;”。在这个越来越内卷的时代&#xff0c;我想你可能时不时&#xff0c;甚至经常会觉得压力好大啊&#xff0c;那些来自生活的压力、工作的作压力、社交的压力、……来看看你有下面的这些情况不&#xff1f;如果有的话&am…

android复选按钮,Android的复选框的详细开发案例分析

在本教程中&#xff0c;我们将向您展示如何创建XML文件中的3个复选框&#xff0c;并论证了听者的使用检查–选中或取消选中复选框的状态。P.S这个项目是在Eclipse 3.7开发&#xff0c;并与Android 2.3.3测试。1。自定义字符串Open “res/values/strings.xml” file, add some u…

颠覆传统,仅银行卡大小充电宝,10000mAh可登机,手机党出门随身必备!

说到充电宝&#xff0c;不知道有没有人跟小木有同样的烦恼。5000毫安容量小&#xff0c;不够用。10000毫安容量够用&#xff0c;但又大又笨重&#xff0c;拿在手里充电超累的&#xff0c;还占地方&#xff01;尤其是旅行出差的时候&#xff0c;这种感觉更加明显&#xff0c;权宜…

玩转Github —— Octotree Chrome插件

&#xff08;为了隐私&#xff0c;手动马赛克&#xff09;兄弟萌&#xff0c;好久不见。最近一直在忙着其他的事情&#xff0c;也一直没有公众号的更新&#xff0c;看到了很多小伙伴说不更新了&#xff0c;也是比较惭愧&#xff0c;还是以工作为主的&#xff01;毕竟都是要恰饭…

android 获取app自启动权限状态_央视批手机App权限问题:频繁自启动 搜集个人隐私触目惊心...

近日据央视新闻报道&#xff0c;有网友反映自己手机上安装的App很多存在频繁自启动、访问、读取手机信息的现象。其中一款名为“优学院”的移动教学软件十多分钟读取近25000次手机照片和文件&#xff1b;而腾讯“TIM”一小时内尝试自启动近七千次&#xff0c;并不断尝试读取通讯…

女程序员怀孕7个月坚持上班敲代码

全世界只有3.14 % 的人关注了数据与算法之美在男女比例失调的程序员行业里&#xff0c;程序媛的工作日常是怎么的呢&#xff1f;程序媛遇到bug时是不是有很多程序员帮忙呢&#xff1f;程序媛对加班有什么看法呢&#xff1f;女生当程序媛好不好呢&#xff1f;下面一起来看看作者…

大数据的关键技术

在大数据时代&#xff0c;传统的数据处理方法还适用吗&#xff1f; 大数据环境下的数据处理需求 大数据环境下数据来源非常丰富且数据类型多样&#xff0c;存储和分析挖掘的数据量庞大&#xff0c;对数据展现的要求较高&#xff0c;并且很看重数据处理的高效性和可用性。 传统数…

adf盖怎么打开_罐头好吃盖难开,学会这几招,再不靠蛮力了,女生也轻松拧开...

家里储备的罐头怎么开&#xff1f;学会这几招&#xff0c;不用蛮力&#xff0c;女生也轻松拧开。这段时期家里肯定储备了很多罐头食品&#xff0c;像水果罐头、腌菜罐头、果酱、调料酱罐头等等&#xff0c;家里的青菜水果不足了&#xff0c;可以临时用罐头食品顶上几天&#xf…

在 Ubuntu 上安装 .NET SDK 或 .NET 运行时

在wsl Ubuntu 20.04上面安装dotnet链接https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntuUbuntu 支持 .NET。本文介绍如何在 Ubuntu 上安装 .NET。如果 Ubuntu 版本不受支持&#xff0c;则该版本不再支持 .NET。如果要开发 .NET 应用&#xff0c;请安装 SDK&…

skype linux 安装,Ubuntu 12.04 AMD64 安装 Skype

每次安装新版总是有些问题。一个个来解决。1&#xff1a; sudo apt-get install ia32-libs lib32asound2 libqt4-core libqt4-gui2&#xff1a; wget -O skype_Ubuntu-current_amd64.deb http://www.skype.com/go/getskype-linux-beta-ubuntu-643&#xff1a; sudo dpkg -i sky…

在学术论文投稿时你遇到过最奇葩的审稿意见是什么?

全世界只有3.14 % 的人关注了数据与算法之美论文投稿时&#xff0c;总会收到点奇葩审稿意见。就连大名鼎鼎的爱因斯坦也被美国《物理评论》期刊的审稿人怼过&#xff0c;审稿人认为文章的内容和结论存在严重问题&#xff0c;附上了 10 页审稿意见。物理大佬爱因斯坦当然不干了&…