资料参考(copy)自ApacheCN项目,推荐学习。
机器学习(Machine Learning,ML)是使用计算机来彰显数据背后的真实含义,它为了把无序的数据转换成有用的信息。是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
机器学习组成
主要任务
-
分类(classification):将实例数据划分到合适的类别中。
- 应用实例:判断网站是否被黑客入侵(二分类 ),手写数字的自动识别(多分类)
-
回归(regression):主要用于预测数值型数据。
- 应用实例:股票价格波动的预测,房屋价格的预测等。
监督学习(supervised learning)
-
必须确定目标变量的值,以便机器学习算法可以发现特征和目标变量之间的关系。在监督学习中,给定一组数据,我们知道正确的输出结果应该是什么样子,并且知道在输入和输出之间有着一个特定的关系。 (包括:分类和回归)
-
样本集:训练数据 + 测试数据
-
训练样本 = 特征(feature) + 目标变量(label: 分类-离散值/回归-连续值)
-
特征通常是训练样本集的列,它们是独立测量得到的。
-
目标变量: 目标变量是机器学习预测算法的测试结果。
- 在分类算法中目标变量的类型通常是标称型(如:真与假),而在回归算法中通常是连续型(如:1~100)。
-
-
监督学习需要注意的问题:
-
偏置方差权衡
-
功能的复杂性和数量的训练数据
-
输入空间的维数
-
噪声中的输出值
-
-
知识表示:
-
可以采用规则集的形式【例如:数学成绩大于90分为优秀】
-
可以采用概率分布的形式【例如:通过统计分布发现,90%的同学数学成绩,在70分以下,那么大于70分定为优秀】
-
可以使用训练样本集中的一个实例【例如:通过样本集合,我们训练出一个模型实例,得出年轻,数学成绩中高等,谈吐优雅,我们认为是优秀】
-
非监督学习(unsupervised learing)
-
在机器学习,无监督学习的问题是,在未加标签的数据中,试图找到隐藏的结构。因为提供给学习者的实例是未标记的,因此没有错误或报酬信号来评估潜在的解决方案。
-
无监督学习是密切相关的统计数据密度估计的问题。然而无监督学习还包括寻求,总结和解释数据的主要特点等诸多技术。在无监督学习使用的许多方法是基于用于处理数据的数据挖掘方法。
-
数据没有类别信息,也不会给定目标值。
-
非监督学习包括的类型:
-
聚类:在无监督学习中,将数据集分成由类似的对象组成多个类的过程称为聚类。
-
密度估计:通过样本分布的紧密程度,来估计与分组的相似性。
-
此外,无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。
-
强化学习
这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。 属于这一类算法的有马尔可夫决策过程。
数据集的划分
-
训练集(Training set) —— 学习样本数据集,通过匹配一些参数来建立一个模型,主要用来训练模型。类比考研前做的解题大全。
-
验证集(validation set) —— 对学习出来的模型,调整模型的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。类比 考研之前做的模拟考试。
-
测试集(Test set) —— 测试训练好的模型的分辨能力。类比 考研。这次真的是一考定终身。
模型拟合程度
-
欠拟合(Underfitting):模型没有很好地捕捉到数据特征,不能够很好地拟合数据,对训练样本的一般性质尚未学好。类比,光看书不做题觉得自己什么都会了,上了考场才知道自己啥都不会。
-
过拟合(Overfitting):模型把训练样本学习“太好了”,可能把一些训练样本自身的特性当做了所有潜在样本都有的一般性质,导致泛化能力下降。类比,做课后题全都做对了,超纲题也都认为是考试必考题目,上了考场还是啥都不会。
通俗来说,欠拟合和过拟合都可以用一句话来说,欠拟合就是:“你太天真了!”,过拟合就是:“你想太多了!”。
常见的模型指标
-
正确率 —— 提取出的正确信息条数 / 提取出的信息条数
-
召回率 —— 提取出的正确信息条数 / 样本中的信息条数
-
F 值 —— 正确率 * 召回率 * 2 / (正确率 + 召回率)(F值即为正确率和召回率的调和平均值)
机器学习开发流程
-
收集数据: 收集样本数据
-
准备数据: 注意数据的格式
-
分析数据: 为了确保数据集中没有垃圾数据;
-
如果是算法可以处理的数据格式或可信任的数据源,则可以跳过该步骤;
-
另外该步骤需要人工干预,会降低自动化系统的价值。
-
-
训练算法: [机器学习算法核心]如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤
-
测试算法: [机器学习算法核心]评估算法效果
-
使用算法: 将机器学习算法转为应用程序
网友评论