【自学笔记】之Python机器学习算法(1)

PS:参考书籍《Python机器学习算法》——赵志勇  @电子工业出版社

0.1  机器学习基础

0.1.1  机器学习的概念

        机器学习能够从无序的数据中提取出有用的信息,那么什么是机器学习呢?以垃圾邮件的检测为例,垃圾邮件的检测是指能够对邮件做出判断,判断其为垃圾邮件还是正常邮件。

        在人工智能技术发展的初期,人们尝试通过手写规则来解决许多问题(也就是现在常常被人戏称为人工智障的存在)。例如,在垃圾邮件的检测中,当邮件中出现事先指定的一些可能为垃圾邮件的字眼时,这条邮件就很有可能是垃圾邮件,同时,当邮件里出现链接时,它也很有可能是垃圾邮件。这些规则在一定程度上对垃圾邮件的检测起到了一定的作用,但是随着规则越来越多,这样的检测系统也变得越来越复杂。这时候,人们发现解决这种问题的根本途径是如何自动地从数据的某些特征中学习他们之间的关系,并且随着对数据的不断学习,提升垃圾检测的性能。

        机器学习是从数据中学习和提取有用的信息,不断提升机器的性能。那么,对于一个具体的机器学习的问题,很重要的一部分是对数据的收集,我们称这部分数据为训练数据。机器学习的基本工作是从这些数据中学习规则,利用学习得到的规则来预测新的数据。

0.1.2  机器学习算法的分类

        在机器学习中,根据任务的不同,可以分为监督学习、无监督学习、半监督学习和增强学习。

        监督学习的训练数据包含了类别信息,如在垃圾邮件检测中,其训练样本包含了邮件的类别信息:垃圾邮件和非垃圾邮件。在监督学习中,典型的问题是分类和回归,典型的算法有Logistic Regression、BP神经网络算法和线性回归算法。

        与监督学习不同的是,无监督学习的训练数据中不包括任何分类信息。在无监督学习中,其典型的问题为聚类问题,代表算法有K-Means算法,DBSCAN算法等。

        半监督学习的训练数据中有一部分数据包含类别信息,同时有一部分数据不包含类别信息,是监督学习和无监督学习的融合。在半监督学习中,其算法一般是在监督学习的算法上进行扩展,使之可以对未标注数据进行建模。

        总结:监督学习和无监督学习是使用较多的两种方法,而半监督学习是监督学习和无监督学习的融合。

 

0.2  监督学习

0.2.1  监督学习

        上面简单的介绍了监督学习的概念,监督学习是机器学习算法中的一种重要的学习方法,在监督学习中,其训练样本中同时包含有特征和标签信息。在监督学习中,分类算法和回归算法是两类最重要的算法,两者之间最主要的区别是分类算法中的标签是离散的值,如广告点击问题中的标签为{+1,-1},分别表示广告的点击和未点击。而回归算法中的标签值是连续的值,如通过人的身高、性别、体重等信息预测人的年龄,因为年龄是连续的正整数,因此标签为y\in N^+,且y\in [1,80],当然了,也有活到超过80岁的人。

0.2.2  监督学习的流程

        监督学习的流程的具体过程如下图。

                                                                 

        对于具体的监督学习任务,首先是获取到带属性值的样本,

假设有m个训练样本\left \{ (X^{(1)},y^{(1)}),(X^{(2)},y^{(2)}),...,(X^{(m)},y^{(m)}) \right \},然后对样本进行预处理,过滤数据中的杂质,保留其中有用的信息,这个过程称为特征处理或者特征提取。

        通过监督学习算法习得样本特征到样本标签之间的假设函数。监督学习通过从样本数据中习得假设函数,并用其对新的数据进行预测。

0.2.3  监督学习算法

        分类问题是指通过训练数据学习一个从观测样本到离散的标签的映射,分类问题是一个监督学习问题。

典型的分类问题有:

①垃圾邮件的分类:训练样本是邮件中的文本,标签是每个邮件是否为垃圾邮件{+1,-1},+1表示是垃圾邮件,-1表示不是垃圾邮件。目标是根据这些带标签的样本,预测一个新的邮件是否为垃圾邮件。

②点击率预测:训练样本是用户、广告和广告主的信息,标签为是否被点击{+1,-1},+1表示点击,-1表示未点击。目标是在广告主发布广告后,预测指定的用户是否会点击该广告。

上述两种问题都是二分类问题,只有是和否两个选项。

③手写字识别:即识别是{0,1,...,9}中的哪个数字,这是一个多分类问题。

        与分类问题不同的是,回归问题是指通过训练数据学习一个从观测样本到连续的标签的映射,在回归问题中的标签是一系列的连续的值。

典型的回归问题有:

①股票价格的预测,即利用股票的历史价格预测未来的股票价格;

②房屋价格的预测,即利用房屋的数据,如房屋的面积、位置等信息预测房屋的价格。

 

0.3  无监督学习

0.3.1  无监督学习

        无监督学习是另一种机器学习算法,与监督学习不同的是,在无监督学习中,其样本值含有特征,不包含标签信息。与监督学习不同的是,由于无监督学习不包含标签,在学习时并不知道其分类结果是否正确。

        举个例子:现在有一筐水果,里面有三种(假设是苹果,雪梨,桃子),让一个小孩子根据水果的形状,颜色等特征去将这一筐水果分成三份,这个小孩子只知道有三种水果,但是不知道具体是哪三种,所以最后这个小孩子基本可以将这筐水果分成三类,但并不知道哪一类是苹果,哪一类是雪梨,哪一类是桃子。

0.3.2  无监督学习的流程

        无监督学习流程的具体过程如下图所示。

                                                                            

        对于具体的无监督学习任务,首先是获取到带有特征值的样本,假设有m个训练数据\left \{ X^{(1)},X^{(2)},...,X^{(m)} \right \},对这m个样本进行处理,得到样本中的有用信息,这个过程叫做特征处理或者特征提取。最后是通过无监督学习算法处理这些样本,如利用聚类算法对这些样本进行聚类。

0.3.3  无监督学习算法

        聚类算法是无监督学习算法中最典型的一种学习算法。聚类算法利用样本的特征,将具有相似特征的样本划分到同一个类别中,而不关心这个类别具体是什么。如下表。

聚类问题是否有翅膀是否有鳍
样本1(鲤鱼)01
样本2(鲫鱼)01
样本3(麻雀)10
样本4(喜鹊)10

        在上表所示的聚类问题中,通过分别比较特征1和特征2,对上述的样本进行聚类。从表中的数据可以看出,样本1和样本2较为相似,样本3和样本4较为相似,因此,可以将样本1和样本2划分到同一个类别中,将样本3和样本4划分到另一个类别中,而不用去关心样本1和样本2所属的类别具体是什么。

        除了聚类算法,在无监督学习中,还有一类重要的算法是降维算法,数据降维的原理是将样本点从输入空间通过线性或非线性变换映射到一个低维空间,从而获得一个关于原数据集紧致的低维表示。用的比较多的一般是聚类算法。

 

0.4  推荐系统和深度学习

        在机器学习算法中,除了按照上述的分类将算法分成监督学习和无监督学习之外,还有其他一些分类方法,如按照算法功能,将算法分成分类算法、回归算法、聚类算法和降维算法等。随着机器学习领域的不断发展,出现了很多新的研究方向,推荐算法和深度学习是近年来研究较多的方向。

0.4.1  推荐系统

        随着信息量的急剧扩大,信息过载的问题变得尤为突出,当用户无明确的信息需求时,用户无法从大量的信息中获取感兴趣的信息。同时,信息量的急剧上升也导致了大量的信息被埋没,无法触达一些潜在用户。推荐系统的出现被称为链接用户与信息的桥梁,一方面帮助用户从海量数据中找到感兴趣的信息,另一方面将有价值的信息传递给潜在用户。

        在推荐系统中,推荐算法起着重要的作用,常用的推荐算法主要有:协同过滤算法、基于矩阵分解的推荐算法和基于图的推荐算法。

0.4.2  深度学习

        传统的机器学习算法都是利用浅层的结构,这些结构一般包含最多一到两层的非线性特征变换,浅层结构在解决很多简单的问题上效果较为明显,但是在处理一些更加复杂的与自然信号的问题是,就会遇到很多问题。

        随着计算机的不断发展,人们常识用深层的结构来处理这些更加复杂的问题,但是,同样也遇到了很多的困难,直到2006年,Hinton等人提出了逐层训练的概念,深度学习又一次进入了人们的视野,数据量不断扩大以及计算机能力的增强,使得深度学习技术成为可能。

在深度学习中,常见的几种模型包括:

①自编码器模型。通过堆叠自编码器构建深层网络;

②卷积神经网络模型。通过卷积层与采样层的不断交替构建深层网络;

③循环神经网络。

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值