学习:系统在不断重复的工作中对本身能力的增强或改进,使得系统在下一次执行相同任务或者类似任务(指的是具有相同分布的任务)时,比现在做的更好或效率更高。
机器学习 :通过经验提高系统自身性能的过程(系统自我改进)。
图 2 机器学习工作过程简单流程图机器学习是从数据中自动分析获得模型,并利用学得模型对未知数据进行预测。
在这里我们可以举一个简单的例子,如图3所示:
图3 手写数字预测在本案例中,我们通过左面数据进行训练,得到一个相应满足此训练集真实结果的函数(也称模型),将右侧测试集代入该函数得到我们的测试结果,根据测试结果与真实结果比对,可以评估该模型的合理性。这就属于机器学习的范畴。
1、获取数据
2、数据基本处理
3、特征工程
4、机器学习(模型训练)
5、模型评估
1、获取数据
我们从sklearn库中获取Boston房价数据集进行演示:
from sklearn import datasets
import pandas as pd
boston_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() #数据展示
数据集如下:
图4 数据集
- 数据简介
在数据集中一般:一行数据我们成为一个样本;一列数据我们称为一个特征。
有些数据没有目标值,有些数据有目标值(标签值,例如上图我们波士顿房价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)
图 6 欠拟合、过拟合3、过拟合和欠拟合
欠拟合是指模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
过拟合是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。模型对训练集"死记硬背"(记住了不适用于测试集的训练集性质或特点),没有理解数据背后的规律,泛化能力差。
注:以上图片部分来源于网络,仅供参考学习!
参考书籍
[1]《图解机器学习》,杉山将
[2] 《统计学习方法》,李航
[3] 《机器学习》,周志华