机器学习实战之分类算法第一章机器学习概论......................................4机器学习基本概念................................................4机器学习的主要任务以及相应的算法................................4如何选择合适的算法?............................................4机器学习应用的步骤..............................................5第二章K近邻算法(KNN)...................................5工作原理........................................................5实现步骤........................................................6K近邻算法的优缺点..............................................6第三章决策树............................................7基本思路........................................................7集合无序程度测量................................................7应用场景........................................................7优缺点..........................................................7第四章朴素贝叶斯分类....................................8基本思路........................................................8基本假设........................................................8条件概率........................................................8词袋模型和词集模型..............................................9优缺点.........................................................10标称型和数值型数据的区别.......................................10主要应用及步骤.................................................10第五章逻辑回归.........................................12基本思想.......................................................12使用场景.......................................................12优缺点.........................................................12Sigmoid函数...................................................13回归系数.......................................................13梯度上升法.....................................................14特征缺失处理...................................................14标签缺失处理...................................................14第六章支持向量机SVM....................................14基本思想.......................................................14SVM第一层理解.................................................15超平面的确定...................................................15函数间隔和几何间隔.............................................15最大间隔分类器.................................................16SMO优化算法...................................................16核函数.........................................................19应用场景.......................................................19第七章AdaBoost分类....................................19Bagging........................................................20Boosting.......................................................20Adaboost.......................................................20Adaboost的优点................................................20Adaboost实现步骤..............................................21第八章非均衡分类问题...................................23分类性能指标...................................................23混淆矩阵.......................................................23ROC曲线.......................................................24处理非均衡问题的数据抽样.......................................24第一章机器学习概论机器学习基本概念机器学习就是将无序的数据转化为有用的信息。一个实例有n个特征,由n列组成。机器学习最主要的任务就是分类,另一个就是回归,回归中比较典型的就是线性拟合。分类和回归都属于监督学习,因为这类算法必须知道要预测什么,即已知目标变量的分类信息。与监督学习对应的是无监督学习,此时数据没有类别信息,也不会给定目标值,将数据集合分成由类似的对象组成的多个类的过程叫做聚类。将描述数据统计值的过程称之为密度估计。分类首先要进行训练,训练样本集必须确定目标变量的值,以便发现特征与目标变量之间的关系。特征或者属性通常是训练样本集的列,他们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。机器学习的主要任务以及相应的算法如何选择合适的算法?如果要预测目标变量的值:1.如果目标变量的值是离散的,如是/否,1,2,3等可以选择分类器算法;2.如果目标变量是连续的,就要采用回归算法如果不想预测目标变量的值,则可以选择无监督学习方法:1.是否需要将数据划分为离散的组,如果是,使用聚类方法,如果还需要估计数据与每个分组的相似程度,则需要使用密度估计方法机器学习应用的步骤1.收集数据2.准备输入数据3.分析输入数据4.训练算法5.测试算法6.使用算法第二章K近邻算法(KNN)工作原理存在一个数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每个数据属于哪个分类。输入没有标签的新数据后,将新数据的每个特征和样本集中的数据特征进行比较,然后通过算法提取样本集中特征最相似的分类标签。一般来说,选择数据集中前k个最相似的数据,这就是k-近邻算法的中k的出处,选择k个最先死数据中出现次数最多的分类,作为新数据的分类。区别于K-means聚类方法,这是个有监督的机器学习方法,是一种分类方法。实现步骤(1)计算已知类别数据集中的额点与当前点的距离(2)按照距离的递增次序排序(3)选取与当前点最近的k个点(4)确定当前点在前k个点所属类别的出现频率,如k=5,前5个点的类别分别为aaaba,则当前点最终的分类为a(5)将出现频率最高的一个作为当前点的类别代码实现K近邻算法的优缺点优点:算法简单,易于实现缺点:无法给出数据的内在含义;当数据较大时计算复杂度较高,而且是一种懒惰的学习方法。另外,如果样本集中某一种样本特别多(样本分布不均衡)就有可能选中的几个近邻的k都是不正确的某一类,从而容易导致误分类。第三章决策树基本思路20个问题之内得到答案,流程图就是一种决策树。在构造决策树时,首先要选择用于分类的特征,使得划分的结果最好。为此要评估每个特征,完成评估后,原始数据集就被划分为几个数据子集,这些子集分布在第一个决策节点的所有分支上,如果某个分支下的数据属于同一类型,则该分支作为一类(叶子节点)。否则,重复划分子集,进行递归过程。集合无序程度测量信息增益:数据分类是一个从无序到有序的过程,是一个信息增益递减(也就是熵)的过程。如果可以很好地度量信息增益,就可以选择出信息增益减少最多的特征,也就是我们要依据分类的特征。基尼不纯度:从一个数据集中随机选取子项,度量其被错误分类到其他分组里的概率。应用场景垃圾邮件检测,泰坦尼克生存估计优缺点优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关的特征数据缺点:可能会过拟合第四章朴素贝叶斯分类基本思路在假设个特征相互独立,且每个特征同等重要的前提下,基于条件概率,对数据集中的每个数据(x,y)求p(Ci|x,y),即数据属于类别Ci的概率,将概率最高的那个类别作为当前数据的类别。基本假设特征相互独立;每个特征同等重要条件概率求从Ci类中取出某一数据(x,y)的概率,也就是(x,y)属于Ci的概率p(𝐶𝑖|x,y)=𝑝(𝐶𝑖)∗𝑝(𝑥,𝑦|𝐶𝑖)𝑝(𝑥,𝑦)p(𝐶𝑖|x,y):注意这不是概率表示方法,只是表示(x,y)属于Ci的概率𝑝(𝐶𝑖):数据来自Ci类的概率𝑝(𝑥,𝑦|𝐶𝑖):在Ci中(这是前提)(x,y)出现的概率𝑝(𝑥,𝑦):(x,y)在整个数据集中出现的概率可以理解为上面为从Ci中取出(x,y)数据的个数,分母是整个数据集中(x,y)的个数,得出的概率自然是从Ci中取出(x,y)的概率词袋模型和词集模型(1)词集模型:SetOfWords,单词构成的集合,集合自然每个元素都只有一个,也即词集中的每个单词都只有一个(2)词袋模型:BagOfWords,如果一个单词在文档中出现不止一次,并统计其出现的次数(频数)#词集模型SOW=[]fordocindataset:vec=[0]*len(vocabList)fori,wordinenumerate(vocabList):ifwordindoc:vec[i]=1SOW.append(doc)#词袋模型BOW=[]