机器学习(Machine Learning,ML)
一、基本概述
- 人工智能大师Herb Simon对于学习是这样定义的:
学习:系统在不断重复的工作中对本身能力的增强或改进,使得系统在下一次执行相同任务或者类似任务(指的是具有相同分布的任务)时,比现在做的更好或效率更高。
机器学习 :通过经验提高系统自身性能的过程(系统自我改进)。
二、什么是机器学习?
机器学习是从数据中自动分析获得模型,并利用学得模型对未知数据进行预测。
在这里我们可以举一个简单的例子,如图3所示:
在本案例中,我们通过左面数据进行训练,得到一个相应满足此训练集真实结果的函数(也称模型),将右侧测试集代入该函数得到我们的测试结果,根据测试结果与真实结果比对,可以评估该模型的合理性。这就属于机器学习的范畴。
三、机器学习工作流程
- 机器学习工作流程可以总结:
1、获取数据
2、数据基本处理
3、特征工程
4、机器学习(模型训练)
5、模型评估
1、获取数据
我们从sklearn库中获取Boston房价数据集进行演示:
from sklearn import datasets
import pandas as pdboston_dataset = datasets.load_boston() #获取数据集X=boston_dataset.data
Y=boston_dataset.target
boston = pd.DataFrame(X)
boston.columns=boston_dataset.feature_names
boston['PRICE']=Y
boston.head() #数据展示
数据集如下:
- 数据简介
在数据集中一般:一行数据我们成为一个样本;一列数据我们称为一个特征。
有些数据没有目标值,有些数据有目标值(标签值,例如上图我们波士顿房价PRICE可以当做此数据的目标值)
- 数据类型构成
(1)特征值+目标值(目标值是连续的或者离散的)
(2)只有特征值,没有目标值
- 数据分割
机器学习一般会将数据集分为两部分:训练集和测试集,其中训练集用于训练,构建模型,测试集用于模型试验,评估模型是否有效。
一般训练集与测试集划分比例:7:3或4:1或3:1等
2、数据基本处理
即对数据缺失值、异常值等处理
3、特征工程
3.1 什么是特征工程?
特征工程(Feature Engineering)特征工程是将原始数据转化成更好的表达问题本质的特征的过程,使得将这些特征运用到预测模型中能提高对不可见数据的模型预测精度。
3.2 为什么需要特征工程?
如何能够分解和聚合原始数据,以更好的表达问题的本质?这是做特征工程的目的。 “feature engineering is manually designing what the input x’s should be.” “you have to turn your inputs into things the algorithm can understand.”
业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
3.3 特征工程包括
特征提取、特征预处理、特征降维
- 3.3.1 特征提取
将任意数据(例如文本和图像)转换成可用于机器学习的数字特征
- 3.3.2 特征预处理
特征处理主要包括: ①数据预处理。即数据的清洗工作,主要为缺失值、异常值、错误值、数据格式、采样度等问题的处理。 ②特征转换。即连续变量、离散变量、时间序列等的转换,便于入模。
- 3.3.3 特征降维
特征降维指的是采用某种映射方法,将高维向量空间的数据点映射到低维的空间中。
四、机器学习算法分类
按照模型训练方式不同,可以分为
(1)监督学习supervised learning
定义:监督学习指系统通过对带有标记信息的训练样本进行学习,以尽可能准确地预测未知样本的标记信息。
监督学习输入数据是由特征值和目标值组成,输出数据可以连续(回归),也可以离散(分类)。
回归、分类问题,如对北京某三环房价预测是一个回归问题,根据肿瘤判断良性还是恶性是一个分类问题。
(2)无监督学习unsupervised learning
定义:无监督学习指系统对没有标记信息的训练样本进行学习,以发现数据中隐藏的结构性知识。
输入数据是由特征值组成,没有目标值。
常见的无监督学习类算法包括:人工神经网络artificial neural network、关联规则学习association rule learning、分层聚类hierarchical clustering、聚类分析cluster analysis、异常检测anomaly detection等。
(3)半监督学习semi-supervised learning
含义:半监督学习指系统在学习时不仅有带有标记信息的训练样本,还有部分标记未知信息的训练样本。
常见的半监督学习算法包括:生成模型generative models、低密度分离low-density separation、基于图形的方法graph-based methods、联合训练co-training等。
(4)强化学习reinforcement learning
定义:强化学习指系统从不标记信息,但是会在具有某种反馈信号(即瞬间奖赏)的样本中进行学习,以学到一种从状态到动作的映射来最大化累积奖赏,这里的瞬时奖赏可以看成对系统的某个状态下执行某个动作的评价。
常见的强化学习算法包括:Q学习Q-learning、状态-行动-奖励-状态-行动state-action-reward-state-action,SARSA、DQN deep Q network、策略梯度算法policy gradients、基于模型强化学习model based RL、时序差分学习temporal different learning等。
(5)迁移学习transfer learning
定义:迁移学习指通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。
迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。
常见的迁移学习算法包括:归纳式迁移学习inductive transfer learning、直推式迁移学习transductive transfer learning、无监督式迁移学习unsupervised transfer learning、传递式迁移学习transitive transfer learning等。
(6)深度学习deep learning
定义:深度学习是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。
这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
常见的深度学习算法包括:深度信念网络deep belief machines、深度卷积神经网络deep convolutional neural networks、深度递归神经网络deep recurrent neural networks、深度波尔兹曼机deep boltzmann machine,DBM、栈式自动编码器stacked autoencoder、生成对抗网络generative adversarial networks等。
迁移学习与半监督学习的区别:迁移学习的初步模型是完整的,半监督学习的已标注部分无法形成完整的模型。
拓展阅读:http://sports.sina.com.cn/chess/weiqi/2017-10-21/doc-ifymyyxw4023875.shtml
五、模型评估
1、分类模型评估:
准确率(accuracy)、精确率(precision)、召回率(recall)、F1-score、AUC指标
2、回归模型评估:
均方根误差(RMSE=)、相对平方误差(RSE)、平均绝对误差(MAE)、相对绝对误差(RAE)
3、过拟合和欠拟合
欠拟合是指模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
过拟合是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。模型对训练集"死记硬背"(记住了不适用于测试集的训练集性质或特点),没有理解数据背后的规律,泛化能力差。
注:以上图片部分来源于网络,仅供参考学习!
参考书籍
[1]《图解机器学习》,杉山将
[2] 《统计学习方法》,李航
[3] 《机器学习》,周志华
机器学习(Machine Learning,ML)相关推荐
- Re:从零开始的机器学习 - Machine Learning(一) 线性回归
从我对整个职业生涯的规划出发,我不仅想做一些高质量的应用(软件工程的角度),还想做一些激动人心的应用,所以我希望能在机器学习的方向走,尽管我在大学粗浅的学了些皮毛,但如果要把机器学习作为职业发展的话这 ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料(Chapter 2)
机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2) - tony的专栏 - 博客频道 - CSDN.NET 注:机器学习资料篇目一共 ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料汇总
本文来源:https://github.com/ty4z2008/Qix/blob/master/dl.md 机器学习(Machine Learning)&深度学习(Deep Learning ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料集合
机器学习(Machine Learning)&深度学习(Deep Learning)资料 原文链接:https://github.com/ty4z2008/Qix/blob/master/dl ...
- (转)机器学习(Machine Learning)深度学习(Deep Learning)资料
原文链接:https://github.com/ty4z2008/Qix/blob/master/dl.md 机器学习(Machine Learning)&深度学习(Deep Learning ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics
数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...
- 机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现
网址:https://github.com/NLP-LOVE/ML-NLP 此项目是机器学习(Machine Learning).深度学习(Deep Learning).NLP面试中常考到的知识点和代 ...
- fprom预测结果内容_预测模型之机器学习 Machine Learning结果解读篇
原标题:预测模型之机器学习 Machine Learning结果解读篇 学友提问:对于机器学习出来的只有图形,我怎么解释呢?怎样才能在临床使用呢? 论文的实例:2013年发表在The American ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么
数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...
最新文章
- [Prism]Composite Application Guidance for WPF(8)——事件
- UITableView全面解析
- 转帖:iOS UIWindow UIWindowLevel
- mysql 定时同步数据_MySQL数据同步之otter
- javascript中的模块系统
- 教你用 3 台机器搞定一个 Redis 高可用架构
- mysql数值类型占用字节及范围_mysql数据类型及占用字节数【mysql】
- c# datetime._C#| DateTime.Year属性与示例
- 【netty】Flink Clickhouse 写入失败 Channel output shutdown Broken pipe
- 最大连续子数组和求解问题
- 进入到一个新的产品,如何开展测试工作
- html基础内容样式
- ubuntu无法设置亮度,触摸板失效,声音无法调节
- Listings of System and Object Privileges--系统和对象权限列表
- qnap 文件传输服务器,如何将 QNAP NAS 作为 RADIUS 服务器使用?
- 【物联网项目系列】——使用netty框架做一个环保hj212协议即时通讯工具(接收解析处理实时数据)
- Kettle使用教程之Job使用
- SAP MM 增值税改革导致采购业务的变化
- MFC学习篇:鸡啄米MFC教程字体格式设置函数解析
- vue+elementUI动态生成表格列
热门文章
- Android作为HTTP服务器--NanoHTTPD源码分析
- 【js】js面试题汇总
- InputStream 和OutputStream
- InputStream与DataInputStream的区别
- java broken pipe_java.net.SocketException: Broken pipe问题解决
- 【LabVIEW串口编程】03 串口接收
- 微信小程序开发项目源代码_SSM项目汽车租赁平台+后台管理系统
- 昔人已乘黄鹤去 此地空余黄鹤楼-崔颢
- 集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法
- python:PyQt5 简单示例