机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
一、序言
微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本。期间各版本之间差异(包括命名空间、方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了。之前在园子里也看到不少相关介绍的文章,对我的学习提供了不少帮助。由于目前资料不是很丰富,所以学习过程中也走了不少弯路,本系列的文章主要记录我学习过程中的一些心得体会,并对一些细节会做详细的解释,希望能为机器学习零基础的同学提供一些帮助。(C#零基础可不行)
二、基本概念
1、什么是机器学习?
定义:一个电脑程序要完成任务(T),如果电脑获取的关于T的经验(E)越多就表现(P)得越好,那么我们就可以说这个程序‘学习’了关于T的经验。
简单解释什么叫“机器的学习”:如果输入的经验越多表现的越好,这就叫“学习”。举个例子:传统的程序逻辑是基于算法的,在算法不变的情况下,程序就是运行100年能力也不会有提升,但机器学习是基于数据(样本)的,在算法不变的情况下,累计的有效数据越多,程序表现能力就越强。
2、通过机器学习解决问题和传统算法解决问题的区别
需要解决的问题:会议室进来一位男生,请他站在摄像头前面,通过一个程序评价一下这位男生身材是否很好。
(1)传统解决方案
首先我们分析要判断一个人身材是否很好,主要的判断特征包括:身高、体重、三围等等,然后通过一个衡量算法(比如BMI)进行计算,流程如下:
(2)机器学习算法
机器学习是依赖样本数据的,所以解决这个问题的思路是这样的:
①首先你得上街去收集数据,询问你采访对象的身高、体重、三围数据,然后根据你的经验给他一个评判,形成下表:
②对收集到的数据进行训练,形成模型,然后通过模型对要判断的对象进行评判。流程如下:
小结:通过这个问题的解决,感觉通过机器学习来解决问题比传统方法麻烦多了,是的,对于身材判断这样的问题,人类可以很简单找到一个逻辑分析的方法,所以通过逻辑算法解决就比较方便,但有时候很多事情我们人类是很容易处理的,但我们却不知道其中的逻辑,比如:判断一张图片是否是18+图片,判断一片论文是否写得很好,判断一个人是否长得漂亮等等。这些问题人类很轻松就能处理,但无法总结出其中的规律并交给机器去执行,这时候机器学习算法就可以派上用场了。
三、机器学习的流程
机器学习的流程如下:
数据准备 -> 建模 -> 训练 -> 评估 -> 应用
在实际应用时,由于训练的过程可能时间比较长,所以我们会分两个阶段进行:
1、学习阶段:数据准备 -> 建模 -> 训练 -> 评估 -> 保存模型
2、消费阶段:读取模型 -> 应用
评估的过程就是对模型的检验,我们一般会把样本数据随机分成两份,其中一部分用来学习,另一部分用来检验模型效果,判断一下我们的模型能力。
以上是涉及到机器学习的有些最基础的理论知识,下面几篇文章会由浅入深介绍ML.NET的一些应用。
系列文章目录:
机器学习框架ML.NET学习笔记【1】基本概念
相关文章
- 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- TensorFlow.NET机器学习入门【0】前言与目录
- How can I secure a .NET application?
- Understanding multiple anti-forgery tokens in ASP.NET MVC
- Best way to expose resource strings to JavaScript files in ASP.NET MVC?
- How to call javascript function on page load in asp.net
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
- 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
- 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
- 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成
- Word控件Spire.Doc 【段落处理】教程(五):如在 C#、VB.NET 中将 Word 段落从一个文档复制到另一个文档
- ASP.NET MVC中的Global.asax文件
- [WPF]是时候将WPF控件库从.Net Framework升级到.NET Core 3.1
- ML.NET机器学习、API容器化与Azure DevOps实践(三):RESTful API
- ML.NET机器学习、API容器化与Azure DevOps实践(一):简介
- 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序
- 实验五 ASP.NET状态管理和应用程序配置 总结
- ASP.NET MVC中将控制器分离到类库的实现
- .NET System.Timers.Timer的原理和使用(开发定时执行程序)
- C#.Net遍历远程文件夹下的所有文件 FTP
- uniapp跨域调用ASP.NET Core Web API
- .NET高端职位招聘要求
- 解决浏览器console控制台报错 : Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR(SSL协议错误)