机器学习概论1——简介_机器学习的完整性-程序员宅基地

技术标签: 人工智能理论  机器学习  人工智能  

机器学习概论系列主要整理机器学习方面的一些理论知识,而具体实现则主要在PyTorch学习笔记中记录。本篇是机器学习学习笔记系列第一篇,本篇在观看了读芯术AI网课后整理而成。

1、机器学习定义

机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新知识或技能,重新组织已有的知识结构使之不断改善自身的性能。——from百度百科

机器学习是通过训练数据集来训练模型,在遇到未知数据时,通过训练好的模型来得出结果。
在这里插入图片描述学习的重点在于学习这个模型( 即f(x) ),其由三部分组成

  1. 模型定义:针对具体问题所作的假设空间,即确定要训练的模型
  2. 策略:对模型学习结果的评价标准,引导模型的学习方向
  3. 算法:如何求解模型参数

2、机器学习方法分类

  1. 有监督学习:从给定的有标签(label)的训练数据集中学习出一个函数(模型参数),当新的数据到来时可以根据这个函数预测结果。常见任务包括分类与回归 ,如鸢尾花分类,房价预测
  2. 无监督学习:没有标签的训练数据集,需要根据样本间的统计规律对样本集进行分析,常见任务如聚类等。
  3. 半监督学习:结合(少量的)标签训练数据和(大量的)无标签数据来进行数据的分类学习
    在这里插入图片描述
  4. 增强学习:外部环境对输出只给出评价信息而非正确答案,学习机通过强化受奖励的动作来改善自身的性能 。类似于小孩子走路,成功走一步后将会获得奖励,以此来告诉他这个动作的正确性。如:游戏AI
    在这里插入图片描述
  5. 多任务学习:把多个相关的任务放在一起同时学习。如:将猫狗分类和猫羊分类两个任务作为一个任务来学习,这样习得的模型具有更好的泛化效果

3、机器学习面临的难题和挑战

  1. 数据稀疏性:训练模型需要大量(标注)数据,但往往数据比较稀疏,难以训练一个比较准确的模型
  2. 高数量和高质量标注数据需求:获取标注数据需要耗费大量资源
  3. 冷启动问题:对于新产品而言,需要面临数据不足的冷启动问题
  4. 泛化问题:训练数据不能全面、均衡地代表真实数据
  5. 模型抽象困难(模型):总结归纳实际问题中的数学表示非常困难
  6. 模型评估问题(策略):实际问题中,很难形式化地、定量地评估一个模型的结果好坏
  7. 寻找最优解困难(算法):要解决的问题复杂,将其形式化后的目标函数也复杂,往往不能找到一个有效算法来得到目标函数的最优值
  8. 可扩展性、可伸缩性(scalability):将模型训练时间通过分布式计算构架缩短
  9. 速度:模型实际使用时得出结果的速度应该在用户可接受范围
  10. 在线学习:能及时学习互联网中产生的新数据,从而更新模型

4、机器学习流程

在这里插入图片描述________________________________________________________________________________

4.1 数据预处理

4.1.1 数据清洗

对各种脏数据进行对应方式的处理,得到标准、干净、连续的数据,保证数据的完整性、数据的合法性、数据的一致性、数据的唯一性、数据的权威性,然后提供给数据统计、数据挖掘等使用。

  • 数据的完整性
    解释:保证数据中特征值的完整,如通过人类年龄和性别预测身高时,不能缺少年龄或性别这些数据。可以通过信息补全
    方法:信息补全、剔除数据
  • 数据的合法性
    解释:即数据应与常识相符合,如年龄不能小于0岁
    方法:设置字段内容格式(不满足格式的数据不存)、类型的合法规则(不满足格式的数据不取)
  • 数据的一致性
    解释:保证来自不同来源的不同指标的数据,其实际含义是一致的,如170cm和1.7m的含义是一样的
    方法:建立数据体系,包含但不限于指标体系、维度、单位、频度等(通俗来讲就是用同一个标准来描述数据,如长度均以厘米cm为单位)
  • 数据的唯一性(可选)
    解释:保证数据不重复
    方法:按主键去重(用sql或excel)、按规则去重(如不同渠道来的客户数据,可以通过相同的关键信息进行匹配,合并去重)
  • 数据的权威性
    解释:多个来源的数据,如果发生冲突,优先选择权威的数据
    方法:为不同渠道设置权威级别

4.1.2 数据采样

不正确的采样方法容易造成数据不平衡

  • 数据不平衡
    解释:数据集的类别分布不均,比如在二分类问题中,有99个正类样本和1个负类样本,这造成数据不平衡,这对模型训练是无益的
    解决方法:过采样(增加少数类样本)、欠采样(减少多数类样本)

4.1.3 数据集拆分

机器学习中通常将数据划分为3份
训练数据集(train dataset):用来构建机器学习模型
验证数据集(validation dataset):辅助构建模型,用于在构建过程中评估模型,提供无偏估计,进而调整模型参数
测试数据集(test dataset):用来评估训练好的最终模型的性能
在这里插入图片描述

  • 常用划分方法
    留出法(hold-out):直接将数据集划分为互斥的集合,如通常选择70%数据作为训练集,30%数据作为测试集。应保持划分后集合数据分布的一致性,避免在划分过程中引入额外的偏差而对最终结果产生影响。这可能会导致测试集中数据有关键信息没学习到,影响模型精度,所以有k-折交叉验证法
    K-折交叉验证法:将数据集划分为K个大小相似的互斥子集,从而获取k组训练-测试集,进行k次训练和测试,这样能够充分使用和学习数据

4.2 特征工程

4.2.1 特征编码

将数据转换为数值形式进行编码,便于计算机处理。通俗来讲就是将人看得懂而计算机看不懂的信息转换为计算机看得懂的信息

  • 两种编码方法
    one-hot编码:采用N位状态寄存器来对N各状态进行编码,如假设年龄段有四个类别:少年,青年,中年,老年。可用0001表示少年,0010表示青年,0100表示中年,1000表示中年
    语义编码:one-hot编码无法体现数据间的语义关系,对于这一类信息通常采用词嵌入(word embedding)的方式,这样可以编码语义信息,生成特征语义表示,如google的word2vec方法

4.2.2 特征选择

选择有用的特征,如在通过性别和年龄预测身高时,不需要选择名字、出生日期等对结果无关的属性特征

  • 三种特征选择方法
    在这里插入图片描述

4.2.3 特征降维

定义:特征选择完成后,可能由于特征矩阵过大,导致计算量大、训练时间长,因此需要降低特征矩阵维度

  • 两种特征降维方法
    在这里插入图片描述

4.2.4 规范化

不同属性具有不同量级,即不同属性间的标准不同,会导致:数量级的差异将导致量级较大的属性占据主导地位、数量级的差异将导致迭代收敛速度减慢、依赖于样本距离的算法对于数据的数量级非常敏感。因此需要进行规范化

  • 三种规范化方法
    在这里插入图片描述

未完待续…

目前已更新的机器学习概论系列的博客导航:
机器学习概论1——简介
机器学习概论2——分类问题
机器学习概论3——回归问题
机器学习概论4—神经网络简介

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36302584/article/details/106360723

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签