什么是机器学习
-
通俗地讲机器学习是:将大量数据输入计算机,计算机对这些数据进行分析,并总结出这些数据之间的关系或者数据包含的规律;最后通过上一步总结出来的规律对新输入的数据进行预测。
-
通常说的机器学习主要分为监督学习与非监督学习,当然还有处于监督与非监督之间的比如半监督学习。
机器学习的过程
分类的训练过程和回归的训练过程一样,都是极为套路化的程序。
- 第一,输入样本和分类标签
- 第二,建立映射假说的某个y=/(x)的模型。
- 第三,求解出全局的损失函数Loss和待定系数w的映射关系, Loss-g(w).
- 第四,通过迭代优化逐步降低Loss,最终找到一个w能使召回率和精确率满足当前场景需要。注意,这里尤其指在验证数据集上的表现。
举个机器学习的例子:
监督学习的例子
非监督学习的例子
监督学习与非监督学习的区别:
-
最本质的区别是监督学习训练的样本数据是带有标注的,而非监督学习的样本数据是不带标注的。监督学习通过有标注的样本数据训练出样本分类器,然后通过该分类器对不带标注的待预测样本进行分类或称为打标注; 非监督学习通过不带标注的样本数据将样本潜在的分布结构或分类情况进行划分,以便于我们对这些数据有更多的了解。
-
机器学习中常用的算法有:回归学习算法、分类算法、聚类算法。
什么是回归算法
- 反映了样本数据集中样本的属性值的特性,通过函数表达样本映射的关系来发现属性值之间的依赖关系。
什么是分类算法
- 通俗地讲分类算法就是把大量已知特征及类别的样本对象输入计算机,让计算机根据这些已知的类别与特征归纳出类别与特征之间的规律(准确地说应该是分类模型),最终目的是运用得到的分类模型对新输入的对象(该对象已知特征,类别是不知道的)判断出该对象所属分类。
什么是聚类算法:
-
聚类就是对大量未知标注的数据集,按照数据内部存在的数据特征将数据集划分为多个不同的类别,使类别内的数据比较相似,类别之间的数据相似度比较小;属于无监督学习。
-
通俗地说聚类是通过对样本(不带标注)特征进行分析,把相似的对象,分成不同子集,被分到同一个子集中的样本对象都具有相似的属性;而KMeans属于比较常用的聚类算法。
监督学习的优缺点
优点:
- 预测结果可控
- 优化目标明确,因此只要方法得当,数据质量好,一般模型质量也能比较好。
缺点:
- 数据需要标注。
非监督学习的优缺点
优点:
-
1、无需事先对样本进行标注;
-
2、可训练出用户甚至不知道的数据特征属性。
缺点:
-
1、预测结果难以控制;
-
2、训练出的模型调优比较难;
-
3、模型的可扩展性难以控制,比如现有的数据好不容易调出了一个可以接受的结果,新数据进来,重新学习后的模型和之前大相径庭。
数据标注的问题
-
有些数据,虽然样本标注相对简单,但因为和业务结合紧密而随时需要调整标注原则;
-
有些数据,需要的标注量极大,比如图片标注,一张人体或人脸图片就需要标出少则十几个多则几十个关键点;
-
有些数据,需要深厚的领域知识才有可能做出标注,比如医学图象的诊断等;
-
有些数据,是没有方法直接标注的,比如黑客非法对系统业务进行操作,商城系统被人恶意刷单攻击等,像这类数据很难直接对其进行标注,一般通过现有的数据对这些数据根据与大类数据的相似性进行分类区别;
-
而所有的数据当被派遣给不同的标注人做标注后,又都面临着一致性的问题。
-
标注这件事情看似容易,但是一旦标注原则有所改变,就要整个重新来过。以前的标注不但不是积累,反而是累赘。
-
综上所述,机器学习领域中对数据进行标注问题的解决会是机器学习算法中的一重要难点,这也将造就不少标注方法或专门做标注的公司。
发展趋势
-
单纯就机器学习而言,目前,无论是模型、算法的研究还是在实际问题上的应用,都以有监督学习为主流。
-
原因很简单:有监督学习的预测结果可控,优化目标明确,因此只要方法得当,数据质量好,一般模型质量也能比较好。
-
不过随着大数据时代的来临,各行各业各类数据存量和增量迅速攀升,无监督学习的重要性也随之悄然提升。
-
究其原因,还是那个最简单的因素:成本——对有监督学习而言,没有标注数据,一切都是空谈,而标注工作需要投入大量人工成本。
-
一面是大量易得的源数据,另一面是高昂的标注成本。这种客观的情况,也促进了半监督学习等中间地带方法的出现和应用。
-
当然,从实际的效用角度而言,真正应用于实际问题解决的模型还是以有监督学习为主。不过在当前大数据技术普及的背景之下,数据分析,机器学习,特别是深度学习方法的研究中,无监督学习越来越被重视。
机器学习可用的公开数据集
http://archive.ics.uci.edu/ml/datasets.html
https://aws.amazon.com/cn/public-datasets/
https://www.kaggle.com/competitions
http://www.kdnuggets.com/datasets/index.html
http://www.sogou.com/labs/resource/list_pingce.php
https://tianchi.aliyun.com/datalab/index.htm
http://www.pkbigdata.com/common/cmptIndex.html
注:参考于
https://gitbook.cn/gitchat/column/5ad70dea9a722231b25ddbf8?utm_source=jpk180829