第一篇:面试备用:18大机器学习经典算法总结
学习18大经典数据挖掘算法
大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面。也算是对数据挖掘领域的小小入门了吧。下面就做个小小的总结,后面都是我自己相应算法的博文链接,希望能够帮助大家学习。
1.C4.5算法。C4.5算法与ID3算法一样,都是数学分类算法,C4.5算法是ID3算法的一个改进。ID3算法采用信息增益进行决策判断,而C4.5采用的是增益率。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42395865
2.CART算法。CART算法的全称是分类回归树算法,他是一个二元分类,采用的是类似于熵的基尼指数作为分类决策,形成决策树后之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法,详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42558235
3.KNN(K最近邻)算法。给定一些已经训练好的数据,输入一个新的测试数据点,计算包含于此测试数据点的最近的点的分类情况,哪个分类的类型占多数,则此测试点的分类与此相同,所以在这里,有的时候可以复制不同的分类点不同的权重。近的点的权重大点,远的点自然就小点。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42613011
4.Naive Bayes(朴素贝叶斯)算法。朴素贝叶斯算法是贝叶斯算法里面一种比较简单的分类算法,用到了一个比较重要的贝叶斯定理,用一句简单的话概括就是条件概率的相互转换推导。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42680161
5.SVM(支持向量机)算法。支持向量机算法是一种对线性和非线性数据进行分类的方法,非线性数据进行分类的时候可以通过核函数转为线性的情况再处理。其中的一个关键的步骤是搜索最大边缘超平面。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42780439
6.EM(期望最大化)算法。期望最大化算法,可以拆分为2个算法,1个E-Step期望化步骤,和1个M-Step最大化步骤。他是一种算法框架,在每次计算结果之后,逼近统计模型参数的最大似然或最大后验估计。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42921789
7.Apriori算法。Apriori算法是关联规则挖掘算法,通过连接和剪枝运算挖掘出频繁项集,然后根据频繁项集得到关联规则,关联规则的导出需要满足最小置信度的要求。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43059211
8.FP-Tree(频繁模式树)算法。这个算法也有被称为FP-growth算法,这个算法克服了Apriori算法的产生过多侯选集的缺点,通过递归的产生频度模式树,然后对树进行挖掘,后面的过程与Apriori算法一致。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43234309
9.PageRank(网页重要性/排名)算法。PageRank算法最早产生于Google,核心思想是通过网页的入链数作为一个网页好快的判定标准,如果1个网页内部包含了多个指向外部的链接,则PR值将会被均分,PageRank算法也会遭到Link Span攻击。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43311943
10.HITS算法。HITS算法是另外一个链接算法,部分原理与PageRank算法是比较相似的,HITS算法引入了权威值和中心值的概念,HITS算法是受用户查询条件影响的,他一般用于小规模的数据链接分析,也更容易遭受到攻击。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43311943
11.K-Means(K均值)算法。K-Means算法是聚类算法,k在在这里指的是分类的类型数,所以在开始设定的时候非常关键,算法的原理是首先假定k个分类点,然后根据欧式距离计算分类,然后去同分类的均值作为新的聚簇中心,循环操作直到收敛。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43373159
12.BIRCH算法。BIRCH算法利用构建CF聚类特征树作为算法的核心,通过树的形式,BIRCH算法扫描数据库,在内存中建立一棵初始的CF-树,可以看做数据的多层压缩。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43532111
13.AdaBoost算法。AdaBoost算法是一种提升算法,通过对数据的多次训练得到多个互补的分类器,然后组合多个分类器,构成一个更加准确的分类器。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43635115
14.GSP算法。GSP算法是序列模式挖掘算法。GSP算法也是Apriori类算法,在算法的过程中也会进行连接和剪枝操作,不过在剪枝判断的时候还加上了一些时间上的约束等条件。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43699083
15.PreFixSpan算法。PreFixSpan算法是另一个序列模式挖掘算法,在算法的过程中不会产生候选集,给定初始前缀模式,不断的通过后缀模式中的元素转到前缀模式中,而不断的递归挖掘下去。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43766253
16.CBA(基于关联规则分类)算法。CBA算法是一种集成挖掘算法,因为他是建立在关联规则挖掘算法之上的,在已有的关联规则理论前提下,做分类判断,只是在算法的开始时对数据做处理,变成类似于事务的形式。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43818787
17.RoughSets(粗糙集)算法。粗糙集理论是一个比较新颖的数据挖掘思想。这里使用的是用粗糙集进行属性约简的算法,通过上下近似集的判断删除无效的属性,进行规制的输出。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43876001
18.gSpan算法。gSpan算法属于图挖掘算法领域。,主要用于频繁子图的挖掘,相较于其他的图算法,子图挖掘算法是他们的一个前提或基础算法。gSpan算法用到了DFS编码,和Edge五元组,最右路径子图扩展等概念,算法比较的抽象和复杂。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43924273
第二篇:斯坦福大学机器学习梯度算法总结
斯坦福大学机器学习梯度下降算法学习心得和相关概念介绍。
1基础概念和记号
线性代数对于线性方程组可以提供一种简便的表达和操作方式,例如对于如下的方程组:
4x1-5x2=13
-2x1+3x2=-9
可以简单的表示成下面的方式:
X也是一个矩阵,为(x1,x2)T,当然你可以看成一个列向量。
1.1基本记号
用A ∈表示一个矩阵A,有m行,n列,并且每一个矩阵元素都是实数。用x ∈ , 表示一个n维向量.通常是一个列向量.如果要表示一个行向量的话,通常是以列向量的转置(后面加T)来表示。
1.2向量的内积和外积
根据课内的定义,如果形式如xT y,或者yT x,则表示为内积,结果为一个实数,表示的是:,如果形式为xyT,则表示的为外积:。
1.3矩阵-向量的乘法
给定一个矩阵A ∈ Rm×n,以及一个向量x ∈ Rn,他们乘积为一个向量y = Ax ∈ Rm。也即如下的表示:
如果A为行表示的矩阵(即表示为),则y的表示为:
相对的,如果A为列表示的矩阵,则y的表示为:
即:y看成A的列的线性组合,每一列都乘以一个系数并相加,系数由x得到。
同理,yT=xT*A表示为:
yT是A的行的线性组合,每一行都乘以一个系数并相加,系数由x得到。
1.4矩阵-矩阵的乘法
同样有两种表示方式:
第一种:A表示为行,B表示为列
第二种,A表示为列,B表示为行:
本质上是一样的,只是表示方式不同罢了。
1.5矩阵的梯度运算(这是老师自定义的)
定义函数f,是从m x n矩阵到实数的一个映射,那么对于f在A上的梯度的定义如下:
这里我的理解是,f(A)=关于A中的元素的表达式,是一个实数,然后所谓的对于A的梯度即是和A同样规模的矩阵,矩阵中的每一个元素就是f(A)针对原来的元素的求导。
1.6其他概念
因为篇幅原因,所以不在这里继续赘述,其他需要的概念还有单位矩阵、对角线矩阵、矩阵转置、对称矩阵(AT=A)、反对称矩阵(A=-AT)、矩阵的迹、向量的模、线性无关、矩阵的秩、满秩矩阵、矩阵的逆(当且仅当矩阵满秩时可逆)、正交矩阵、矩阵的列空间(值域)、行列式、特征向量与特征值……
2用到的公式
在课程中用到了许多公式,罗列一下。嗯,部分公式的证明很简单,部分难的证明我也不会,也懒得去细想了,毕竟感觉上数学对于我来说更像是工具吧。
转置相关:
•(AT)T = A
•(AB)T = BT AT
•(A + B)T = AT + BT 迹相关: • For A ∈ Rn×n, trA = trAT.• For A, B ∈ Rn×n, tr(A + B)=trA + trB.• For A ∈ Rn×n, t ∈ R, tr(tA)= t trA.• For A, B such that AB issquare, trAB = trBA.• For A, B, C such that ABC issquare, trABC = trBCA = trCAB。当乘法变多时也一样,就是每次从末尾取一个矩阵放到前面去,这样的矩阵乘法所得矩阵的迹是一致的。秩相关
• For A ∈ Rm×n,rank(A)≤ min(m, n).If rank(A)= min(m, n), 则A称为满秩
• For A ∈ Rm×n,rank(A)= rank(AT).• For A ∈ Rm×n, B ∈ Rn×p,rank(AB)≤ min(rank(A), rank(B)).• For A, B ∈ Rm×n,rank(A + B)≤ rank(A)+rank(B).逆相关:
•(A−1)−1 = A
• If Ax = b, 左右都乘以A−1 得到 x = A−1b.•(AB)−1 = B−1A−1
•(A−1)T =(AT)−1.F通常表示为A−T.行列式相关:
• For A ∈ Rn×n, |A| = |AT |.• For A, B ∈ Rn×n, |AB| = |A||B|.• For A ∈ Rn×n, |A| = 0,表示矩阵A是奇异矩阵,不可逆矩阵
• For A ∈ Rn×n and A 可逆, |A|−1 = 1/|A|.梯度相关: • ∇x(f(x)+ g(x))= ∇xf(x)+ ∇xg(x).• For t ∈ R, ∇x(t f(x))= t∇xf(x).• ∇xbT x = b
• ∇xxT Ax = 2Ax(if A 对称)
• ∇2xxT Ax = 2A(if A 对称)
• ∇A|A| =(adj(A))T = |A|A−T.adj=adjoint
3梯度下降算法和正规方程组实例应用
例子用的是上节课的房价的例子,有一组数据,有房子面积和房子价格,输入格式举例:
老师定义的变量如下:
m:训练样本的数目
x:输入的变量(输入的特征,在这个例子中为房子面积,后来又加了一个房子的卧室数目)
y :输出变量(目标变量,这个例子中就是房价)
(x,y):表示的是一个样本
:表示的第i个样本,表示为。
3.1监督学习概念
所谓的监督学习即为告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案。监督指的是在训练样本答案的监督下,h即为监督学习函数。
此例中我们假设输出目标变量是输入变量的线性组合,也就是说,我们的假设是存下如下的h(x):
Theta表示是特征前面的参数(也称作特征权重)。也就是经过h(x)之后得到的就是预测的结果了。
如果假设x0=1,那么原来的h(x)就可以简单的表示为如下形式:,其中n为特征数目,我们为了表达简便,把theta和x都写成向量的形式。下面就是如何求出θ(向量)使得h(x)尽可能接近实际结果的,至少在训练集内接近训练集中的正确答案。
我们定义一个花费函数(costfunction),针对每一组θ,计算出h(x)与实际值的差值。定义如下:
这也是用的最小二乘法的思想,但是之所以乘以1/2是为了简化后面的计算。针对训练集中的每一组数据。剩下的问题就是求得minJ(θ)时的θ取值,因为J(θ)是随着θ变化而变化,所以我们要求得minJ(θ)时的θ就是我们想要的θ(这个min也叫做最小花费函数),怎么样求出这组theta呢?采用的方法就是梯度下降算法和正规方程组。我们首先来看梯度下降算法。
3.2梯度下降算法
梯度下降算法是一种搜索算法,基本思想可以这样理解:我们从山上的某一点出发,找一个最陡的坡走一步(也就是找梯度方向),到达一个点之后,再找最陡的坡,再走一步,直到我们不断的这么走,走到最“低”点(最小花费函数收敛点)。
如上图所示,x,y表示的是theta0和theta1,z方向表示的是花费函数,很明显出发点不同,最后到达的收敛点可能不一样。当然如果是碗状的,那么收敛点就应该是一样的。
算法的theta更新表示如下:
对每一个theta(j),都先求J(θ)对theta(j)的偏导(梯度方向),然后减少α,然后将现在的theta(j)带入,求得新的theta(j)进行更新。其中α为步长,你可以理解为我们下山时走的步子的大小。步子太小了,收敛速度慢,步子太大了,可能会在收敛点附近来回摆动导致无法到达最低点。P.S.这个符号根据老师所说理解为程序中的赋值符号(=号),如果是=号,则理解为值是相等的(编程里面的==号)。下面我们先理解下,假设现在训练集只有一组数据求关于theta(j)的偏导:
带入
可以得到关于一组数据的theta(j)的表达式,不妨,这组数据就是第i组,则表示为:
然后我们将这个更新theta(j)的方法扩充到m个训练样本中,就可以得到下面的式子:
P.S.最外面的那个xj(i)的理解为:第i组数据中的第j个特征(feature)值。
3.2.1批量梯度下降算法(batch gxxxxdxxxx algorithm)
重复执行上面的这个更新步骤,直到收敛,就可以得到这组θ的值了。就是这个过程:。
这个算法就是批量梯度下降算法,为什么叫批量梯度下降?因为注意到上式中每更新一个θj都需要计算所有的样本取值,所以当样本数目非常大的时候(例如上万条甚至数十万条的时候),这样的更新非常慢,找θ也非常慢,所以就有了另外一种改进的梯度下降算法。
3.2.2随机梯度下降算法/增量梯度下降算法
做一个小小的改进,用一个样本做一个theta的更新,比如用样本1做theta(1)的更新,用样本2做theta(2)的更新,以此类推。这种方法的好处是速度上肯定比批量梯度下降算法快,而且样本数据越多,体现应该就越明显。劣势是得到的收敛点的值和批量梯度算法比起来也许不是最优的值。
3.2.3梯度下降算法总结
不管是批量梯度算法还是随机梯度下降算法,他们的共同点有以下:
1.时间复杂度都是O(mn)(m为样本数目,n为特征值/影响因子数目)
2.都有梯度下降性质:接近收敛时,每次“步子”(指实际减去的数,而不是前面定义的α,α是手动设置参数,人为改变才会变)会越来越小。其原因是每次减去α乘以梯度,但是随着收敛的进行,梯度会越来越小,所以减去的值会。
3.判定收敛的方法都是如下两种:
1)两次迭代值改变量极小极小
2)J(θ)的值改变量极小极小
3.3正规方程组
写在前面:这种方法是另一种方法了,和梯度下降算法就没啥联系了!!!
首先回顾下前面定义的矩阵梯度运算:
例如:
则:
定义一个矩阵,称作设计矩阵,表示的是所有的样本的输入:
因为前面得到的结论:
(θT*x(i)和x(i)的转置*θ结果是一样),可以得到
可以写成如下的形式:
又因为对于任意向量,所以可以得到:
运用下面介绍的一系列性质:
(5)是由(2)和(3)得到的,进行下面的推导
中间加tr不变的原因是因为是一个实数(看成1x1矩阵)加迹等于他本身。
将上式设为0,得到正规方程组
求解得到
第三篇:机器学习算法优缺点改进总结
Lecture 1 Introduction to Supervised Learning(1)Expectatin Maximization(EM)Algorithm(期望值最大)(2)Linear Regression Algorithm(线性回归)(3)Local Weighted Regression(局部加权回归)(4)k-Nearest Neighbor Algorithm for Regression(回归k近邻)(5)Linear Classifier(线性分类)(6)Perceptron Algorithm(线性分类)(7)Fisher Discriminant Analysis or Linear Discriminant Analysis(LDA)(8)k-NN Algorithm for Classifier(分类k近邻)(9)Bayesian Decision Method(贝叶斯决策方法)Lecture 2 Feed-forward Neural Networks and BP Algorithm(1)Multilayer Perceptron(多层感知器)(2)BP Algorithm
Lecture 3 Rudiments of Support Vector Machine(1)Support Vector Machine(支持向量机)(此算法是重点,必考题)此处有一道必考题
Lecture 4 Introduction to Decision Rule Mining(1)Decision Tree Algorithm(2)ID3 Algorithm(3)C4.5 Algorithm(4)粗糙集……
Lecture 5 Classifier Assessment and Ensemble Methods(1)Bagging(2)Booting(3)Adaboosting Lecture 6 Introduction to Association Rule Mining(1)Apriori Algorithms(2)FP-tree Algorithms Lecture 7 Introduction to Custering Analysis(1)k-means Algorithms(2)fuzzy c-means Algorithms(3)k-mode Algorithms(4)DBSCAN Algorithms Lecture 8 Basics of Feature Selection(1)Relief Algorithms(2)ReliefF Algorithms(3)mRMR Algorithms最小冗余最大相关算法(4)attribute reduction Algorithms
比较了几种分类算法性质。(以下两个表格来自两篇该领域经典论文)
Lecture 1 Introduction to Supervised Learning(1)Expectatin Maximization(EM)Algorithm(期望值最大)①算法思想:
EM算法又称期望最大化算法,是对参数极大似然估计的一种迭代优化策略,它是一种可以从非完整的数据集中对参数进行极大似然估计的算法,应用于缺损数据,截尾数据,带有噪声的非完整数据。
最大期望算法经过两个步骤交替进行计算:
第一步计算期望(E):也就是将隐藏的变量对象能够观察到的一样包含在内,从而计算最大似然的期望值;
另外一步是最大化(M),也就是最大化在E步上找到的最大似然期望值,从而计算参数的似然估计。M步上找到的参数然后用于另一个E步计算。
重复上面2步直至收敛。
②优点:1)M步仅涉及完全数据极大似然,通常计算比较简单
2)收敛是稳定的,因为每次迭代的似然函数是不断增加的。
③缺点:1)表现在对缺失数据较多或是多维高斯分布的情形下,计算量大,收敛速度较慢。
2)对于某些特殊的模型,要计算算法中的M步,即完成对似然函数的估计是比较困难的。
3)在某些情况下,要获得EM算法中E步的期望显式是非常困难的。
4)EM算法的收敛速度,非常依赖初始值的设置,设置不当,计算代价相当大。
5)EM算法中的M-Step依然是采用求导函数的方法,所以它找到的是极值点,即局
部最优解,而不一定是全局最优解。④改进:针对1)改进:扩大参数空间来加快收敛
针对2)改进:ECM算法,该算法通过在M步构建计算比较简单的小循环对EM
算法进行了改进,从而使期望函数极大化更加容易和有效,从而解决这一问题。
针对3)改进:MCEM算法,将E步积分求期望用蒙特卡洛模拟方法来实现,使
得E步求期望更容易实现。
针对4)初始值的获取可以通过k-means算法,层次聚类算法或是数据数据进行随
机分割,然后重复EM效果进行初始点选择。
针对5)结合遗传算法的全局搜索能力,扩大EM算法的搜索空间,有效降低EM
算法对初始值的依赖度,改善局部最优值的缺陷。
(2)Linear Regression Algorithm(线性回归)①算法思想:
线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
回归模型:
i
其中 和C是未知参数,对于每个训练样本(xi,yi)可得到h(xi),用来预测真实值y。损失函数:
即误差值的平方。
1:对于训练集,求取θ,使得损失函数最小。(使用最小二乘法,梯度下降法)2:对于新输入x,其预测输出为θTx ②优点:结果易于理解,实现简单,计算简单
③缺点:1)对于非线性的数据拟合效果不好(原因:因为线性回归将数据视为线性的,可能出现欠拟合现象,导致结果不能取得最好的预测效果)
2)如果训练数据如果有些数据偏差特别大,这回造成最后训练的模型可能对整体
具备很好的准确性
④改进:针对2)改进 :局部加权回归
数据都不(3)Local Weighted Regression(局部加权回归)①算法思想:
给每个待预测点周围的点赋予一定的权重,越近的点权重越高,以此来选出该预测点对应的数据子集,然后在此数据子集上基于最小均方差进行普通的回归.局部加权回归实质上是对于需要预测的点,只是根据其附近的点进行训练,其他的没有改变。
对于局部线性加权算法:
1:对于输入x,找到训练集中与x邻域的训练样本
2:对于其邻域的训练样本,求取θ,使得其
∈x的邻域)最小。其中w(i)为权重值。
3.预测输出为θTx
4.对于新输入,重复1-3过程。
其中
τ 为带宽(bandwidth)常量,距离输入越远,权重越小,反之越大。
②优点:1)局部加权回归还是对训练数据拟合的比较好
2)不太依赖特征的选择,而且只需要用线性模型就能够训练出不错的拟合模型、③缺点:1)计算量较大。(因为局部加权回归的损失数随着预测值的不同而不同,这样θ
就无法事先确定,每次预测时都需要扫描所有的数据并重新计算θ)
2)局部加权回归容易出现过拟合现象,过拟合现象很明显
3)关注局部的训练数据,忽略了全局数据,如果预测点在出现偏差的训练数据附
近,那么预测值会偏差很大。
④改进:
(4)k-Nearest Neighbor Algorithm for Regression(回归k近邻)①算法思想:
通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比。②优点:
1)简单、有效。
2)重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)。3)计算时间和空间线性于训练集的规模(在一些场合不算太大)。
4)由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
5)该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。③缺点:
(1)KNN在对属性较多的训练样本进行分类时,由于计算量大而使其效率大大降低,效果不是很理想。
(2)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。
(3)对数据的局部结构比较敏感。如果查询点是位于训练集较密集的区域,那预测相对比其他稀疏集来说更准确。(4)对k值敏感。
(5)维数灾难:临近距离可能被不相干属性主导(因此特征选择问题)④改进:
(1)分类效率:事先对样本属性进行约简,删除对分类结果影响较小的属性,快速的得出待分类样本的类别。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。(2)分类效果:采用权值的方法(和该样本距离小的邻居权值大)来改进,Han等人于2002年尝试利用贪心法,针对文件分类实做可调整权重的k最近邻居法WAkNN(weighted adjusted k nearest neighbor),以促进分类效果;而Li等人于2004年提出由于不同分类的文件本身有数量上有差异,因此也应该依照训练集合中各种分类的文件数量,选取不同数目的最近邻居,来参与分类。
(3)该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。(4)K 值的选择会对算法的结果产生重大影响。K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,但容易发生过拟合;如果 K 值较大,优点是可以减少学习的估计误差,但缺点是学习的近似误差增大,这时与输入实例较远的训练实例也会对预测起作用,是预测发生错误。在实际应用中,K 值一般选择一个较小的数值,通常采用交叉验证的方法来选择最优的 K 值。随着训练实例数目趋向于无穷和 K=1 时,误差率不会超过贝叶斯误差率的2倍,如果K也趋向于无穷,则误差率趋向于贝叶斯误差率。
(5)该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
(5)Linear Classifier(线性分类器)①算法思想:线性分类器使用线性判别函数,实现线性判别函数分类的方法有感知器算法、LMSE分类算法和Fisher分类。
在分类问题中,因变量Y可以看做是数据的label,属于分类变量。所谓分类问题,就是能够在数据的自变量X空间内找到一些决策边界,把label不同的数据分开,如果某种方法所找出的这些决策边界在自变量X空间内是线性的,这时就说这种方法是一种线性分类器。
C1和C2是要区分的两个类别,在二维平面中它们的样本如上图所示。中间的直线就是一个分类函数,它可以将两类样本完全分开。
线性分类器在数学上被理解为线性判别函数(Linear Discriminant Functions),在几何上可以理解为决策超平面(Decision Hyperplanes)。②优点:算法简单
③缺点:只能处理线性问题
④改进:要处理其他非线性问题,可以向高维转化,例如用SVM方法。线性分类器是分类方法,不是具体算法。
(6)Perceptron Algorithm(感知器算法)①算法思想:
感知机(Perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。②优点:
(1)感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。算法简单且易于实现;
(2)它提出了自组织自学习的思想。对能够解决的问题有一个收敛的算法,并从数学上给出了严格的证明。(3)当样本线性可分情况下,学习率 合适时,算法具有收敛性。③缺点:
(1)即感知机无法找到一个线性模型对异或问题进行划分。
(2)其实不光感知机无法处理异或问题,所有的线性分类模型都无法处理异或分类问题。(3)收敛速度慢;当样本线性不可分情况下,算法不收敛,且无法判断样本是否线性可分。
④改进:单个感知器虽然无法解决异或问题,但却可以通过将多个感知器组合,实现复杂空间的分割。(7)线性判别分析(LDA,Linear Discriminant Analysis)①基础概念
(1)判别分析概念
根据已知对象的某些观测指标和所属类别来判断未知对象所属类别的统计方法。利用已知类别的样本信息求判别函数,根据判别函数对未知样本所属类别进行判别。(2)判别分析分类
按判别组数来分,有两组判别分析和多组判别分析
按数学模型(函数形式)来分,有线性判别分析和非线性判别分析
按判别方法来分,有Fisher判别分析、Bayes判别分析和距离判别(K-NN)注:线性判别分析就是一般化的Fisher判别分析(3)Fisher判别分析与Bayes判别分析优缺点比较
Fisher判别方法对总体分布没有特殊要求,但是Fisher判别法未考虑各总体出现概率的大小,不能给出后验概率以及错判造成的损失。
Bayes判别法可以给出后验概率以及错判造成的损失。但是要求即各种变量必须服从多元正态分布、各组协方差矩阵必须相等、各组变量均值均有显著性差异。②LDA缺点
LDA有两个突出缺点:(1)处理高维图像时容易产生“小样本问题”, 即样本维数大大超过训练图像个数的问题;(2)由此引发的边缘类主导特征空间分解的问题。(3)LDA的其余缺点(限制):
LDA至多可生成C-1维子空间。
LDA不适合对非高斯分布的样本进行降维。
LDA在样本分类信息依赖方差而不是均值时,效果不好。
LDA可能过度拟合数据。
③针对“小样本问题”的改进方法
可以利用本文设计的改进PCA 算法与LDA 算法相结合来解决小样本问题,即将结合了基于标准差和局部均值的图像增强处理算法的PCA 算法与LDA 算法相结合。具体的应用过程即为: 先采用改进的PCA 算法对样本进行降维处理,以便确保样本的类内离散度矩阵为非奇异的,利用改进的PCA 算法将原始样本图像往一个特征子空间中投影,从而使得样本的类内离散度矩阵是非奇异的。再利用LDA 算法在次特征子空间中求得最优变换。
LDA与PCA的比较
两者都是为了在对原始数据降维之后进行分类。PCA(Principal Component Analysis,主成分分析)是无监督的方式,它没有分类标签,降维之后需要采用K-Means或自组织映射网络等无监督的算法进行分类。LDA是有监督的方式,它先对训练数据进行降维,然后找出一个线性判别函数。(8)k-NN(k-Nearest Neighbor for classifier,分类最近邻估计)①算法思想:(1)k-NN介绍
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。(2)k-NN概念
k-NN算法通常以“欧氏距离(Euclidean Distance)”为其分类模型, 欧氏距离公式的定义如下: 设在n 维空间中有两个点X =(x1,x2,„,xn)和Y =(y1,y2,„,yn), 它们之间的欧氏距离定义为:
其中, n是维数, Xi和Yi分别是X和Y的第k个属性值。②优点
(1)简单,易于理解,易于实现,无需估计参数,无需训练
(2)适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)
(3)特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好.③缺点
(1)计算量大,由于要逐个计算到每条记录的欧氏距离, 对于海量数据, 该算法时间效率非常低。它在对每一个查询实例(Query Instance)进行分类时, 都需要搜索整个训练集来寻找最近邻, 所以它的运算开销巨大, 时间代价高昂, 这导致了它的运行速度非常低下。
(2)可解释性较差,无法给出决策树那样的规则。
(3)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。(4)由于所有属性均等地参与计算, 没有突出属性的重要程度, 分类结果易受单个属性的影响;④改进
缺点1:目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。缺点4:利用信息增益来衡量属性的重要程度(即属性权重系数),将属性划分为关键属性、次要属性及无关属性, 解决属性均等用力的问题;缺点3,可考虑从K值设定回答
1、k值设定为多大?
k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。(对距离加权,可以降低k值设定的影响)
k值通常是采用交叉检验来确定(以k=1为基准)经验规则:k一般低于训练样本数的平方根
补充去年相关习题:
请阐述 kNN近邻分类算法的基本思想,并分析它的主要优缺点。关于 k 的取值,你有什么合理的建议(至少 1 条)。优点
(1)简单,易于理解,易于实现,无需估计参数,无需训练
(2)适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)(3)特别适合于多分类问题,例如根据基因特征来判断其功能分类,kNN比SVM的表现要好 缺点
(1)懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢
(2)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有 可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数;
(3)可解释性较差,无法给出决策树那样的规则。k值设定
k值选择过小,得到的近邻数过少,会降低分类精度,同时也会放大噪声数据的干扰;而如果k值选择过大,并且待分类样本属于训练集中包含数据数较少的类,那么在选择k个近邻的时候,实际上并不相似的数据亦被包含进来,造成噪声增加而导致分类效果的降低。
k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。(对距离加权,可以降低k值设定的影响)K值设定的建议
k值通常是采用交叉检验来确定(以k=1为基准)k一般低于训练样本数的平方根
(9)贝叶斯决策方法(Bayesian Decision Method)①贝叶斯决策概念
贝叶斯决策(Bayesian Decision Theory)就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。贝叶斯决策属于风险型决策,决策者虽不能控制客观因素的变化,但却掌握其变化的可能状况及各状况的分布概率,并利用期望值即未来可能出现的平均状况作为决策准则。
贝叶斯决策理论方法是统计模型决策中的一个基本方法,其基本思想是:
已知类条件概率密度参数表达式和先验概率。
利用贝叶斯公式转换成后验概率。
根据后验概率大小进行决策分类。②贝叶斯决策方法优缺点 优点:
贝叶斯决策能对信息的价值或是否需要采集新的信息做出科学的判断
它能对调查结果的可能性加以数量化的评价,而不是像一般的决策方法那样,对调查结果或者是完全相信,或者是 完全不相信
如果说任何调查结果都不可能完全准确,先验知识或主观概率也不是完全可以相信的,那么贝叶斯决策则巧妙地将这两种信息有机地结合起来了
它可以在决策过程中根据具体情况下不断地使用,使决策逐步完善和更加科学 缺点:
它需要的数据多,分析计算比较复杂,特别在解决复杂问题时,这个矛盾就更为突出
有些数据必须使用主观概率,有些人不太相信,这也妨碍了贝叶斯决策方法的推广使用 ③贝叶斯决策改进方法
将决策问题转化成收益矩阵,通过对收益矩阵的分析,得出各行动方案的期望值,按照一定的准则选出最优方案。
以各状况下最大收益值或效用值为基础,求出MaxE(x),以此作为完全确定情况下的收益值,用该值减去最优方案的期望值得出完全信息价值(EVPⅠ),根据完全信息期望值判断是否需要补充信息量。
在第2步得到肯定回答后,首先在预先后验分析中从理论上把各种可能的抽样方案及结果列举出来,计算各种抽样方案的抽样信息期望值EVSI=EVPI-R(n),其中R(n)为抽样风险,其大小是样本大小的函数。
以EVSI-C(其中C为抽样成本)作为标准选取最大值对应的抽样方案为最优抽样方案。
按照理论上得出的最优抽样方案进行抽样,然后,根据贝叶斯理论公式推导出后验概率分布的数字描述,最后,以此为依据按照贝叶斯决策准则选出最优方案。补充朴素贝叶斯
朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。
同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。
补充朴素贝叶斯优点:
1)朴素贝叶斯算法是基于贝叶斯理论,逻辑清楚明了
2)本算法进行分类是,时间快,在内存上需要的也不大
3)本算法鲁棒性高,即使数据包含的噪声点,无关属性和缺失值的属性,分类性能不好又 太大的变化,健壮性好
补充朴素贝叶斯算法缺点:
1)朴素贝叶斯算法要求样本各属性直接是独立的,而真实的数据符合这个条件很少。
2)当样本数据少时,分类器可能会无法正确分类
Lecture 2 Feed-forward Neural Networks and BP Algorithm(1)Multilayer Perceptron(多层感知器)①算法思想
多层感知器(Multilayer Perceptron,缩写MLP)是一种前向结构的人工神经网络。MLP算法一般包括三层,分别是一个输入层,一个输出层和一个或多个隐藏层的神经网络组成。一个“神经元”的输出就可以是另一个“神经元”的输入。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个神经元都有几个输入和输出神经元,每个神经元通过输入权重加上偏置计算输出值,并选择一种激活函数进行转换。一种被称为反向传播算法(BP)的监督学习方法常被用来训练MLP。MLP是感知器的推广,克服了感知器不能对线性不可分数据进行识别的弱点。
激活函数
若每个神经元的激活函数都是线性函数,那么,任意层数的MLP都可被约简成一个等价的单层感知器。实际上,MLP本身可以使用任何形式的激活函数,但为了使用反向传播算法进行有效学习,激活函数必须限制为可微函数。由于具有良好可微性,很多乙形函数,尤其是双曲正切函数(Hyperbolic tangent)及逻辑乙形函数(logistic sigmoid function),被采用为激活函数。激活函数常见的有三种,分别是恒等函数,Sigmoid函数和高斯函数。
②优点:
(1)高度的并行性
人工神经网络是由许多相同的简单处理单元并联组合而成,虽然每个单元的功能简单,但大量简单单元的并行活动,使其对信息的处理能力与效果惊人。(2)高度的非线性全局作用
神经网络系统是由大量简单神经元构成的,每个神经元接受大量其他神经元的输入,通过非线性输入、输出关系,产生输出影响其它神经元。网络就是这样互相制约相互影响,实现从输入状态空间到输出状态空间非线性映射的。网络的演化遵从全局性作用原则,从输入状态演化到终态而输出。从全局观点来看,网络整体性能不是网络局部性能的简单迭加,而表现某种集体性行为;而电脑遵从串行式局域性操作原则,每一步计算与上一步计算紧密相关,并对下一步产生影响,问题是通过算法逐步进行处理的。(3)良好的容错性与联想记忆功能
人工神经网络通过自身的网络结构能够实现对信息的记忆,而所记忆的信息是存储在神经元之间的权值中。从单个权值中看不出所储存的信息内容,因而是分布式的存储方式。这使得网络具有良好的容错性,并能进行聚类分析、特征提取、缺损模式复原等模式信息处理工作。
(4)十分强的自适应、自学习功能人工神经网络可以通过训练和学习来获得网络的权值与结构,呈现出很强的自学习能力和对环境的自适应能力。③缺点
(1)网络的隐含节点个数选取问题至今仍是一个 世界难题;
(2)停止阈值、学习率、动量常数需要采用”trial-and-error”法,极其耗时(动手实验);(3)学习速度慢;
(4)容易陷入局部极值,学习不够充分。④改进
(1)改进BP算法(见bp)(2)权值初始化
在初始化权值的时候,我们一般需要它们在0附近,要足够小(在激活函数的近似线性区域可以获得最大的梯度)。另一个特性,尤其对深度网络而言,是可以减小层与层之间的激活函数的方差和反向传导梯度的方差。这就可以让信息更好的向下和向上的传导,减少层间差异。(3)学习率
随着时间的推移减小学习速率有时候也是一个好主意。一个简单的方法是使用这个公式:u/(1+d*t),u是初始速率(可以使用上面讲的网格搜索选择),d是减小常量,用以控制学习速率,可以设为0.001或者更小,t是迭代次数或者时间。可以基于分类错误率自适应的选择学习率。(4)隐藏节点数 这个参数是非常基于数据集的。模糊的来说就是,输入分布越复杂,去模拟它的网络就需要更大的容量,那么隐藏单元的数目就要更大。(5)正则化参数
典型的方法是使用L1/L2正则化。
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。
过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
L1正则化项就是在原始的代价函数后面加上一个正则化项,即所有权重w的绝对值的和,乘以λ/n(这里不像L2正则化项那样):
比原始的更新规则多出了η * λ * sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。
(2)BP Algorithm ①算法思想
BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。②优点:
(1)网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题;
(2)网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力;(3)网络具有一定的推广、概括能力。③缺点
主要包括以下几个方面的问题。
(1)由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,BP算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的。
(2)BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值
(3)网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。
(4)网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。
(5)网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。(6)网络训练失败的可能性较大,其原因有:
a 从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;
b 网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。④改进.变步长法
BP算法的有效性和收敛性在很大程度上取决于学习步长η的值。采用一般的固定长梯度下降法求解时,起码可能导致两个主要问题:局部极小解;收敛速度慢。所以,一般要求是,当训练到误差曲面的平坦区时,梯度较小,为加快收敛应使η增大;当训练到深而窄的误差曲面时,应使η减小,以免因步长过大而出现振荡现象。为加快收敛,应使η合理化,可采用变步长算法。变步长算法的基本思想是,先设一个初始步长η,若一次迭代后误差增大,则将步长乘以β(<1),沿原方向重新计算该迭代点;若一次迭代后误差减小,则将步长乘以α(>1),计算下一个迭代点,以缩短学习时间。2.加动量项法
为了加速BP算法的收敛,可考虑在权值调整算式中加入动量项,即
式中,α为动量因子,一般取0.1~0.8。这时权值修正量加上了有关上一时刻权值修改方向的记忆,加速了网络的收敛。加动量项法的具体原理:若相邻两次迭代点处的梯度方向是一致的,引入动量项可使权值的调整量增大,从而加速收敛;若相邻两次迭代点处的梯度方向相反,引入动量项可使权值的调整量减小,避免了来回振荡,加快了收敛。3.串连法
BP算法的收敛速度主要取决于输入-输出模式间非线性映射的复杂程度。显然,这种非线性映射关系越复杂,收敛时间越长。因此,对那些高度复杂的非线性问题,用两个串连的BP网络代替一个BP网络,能够有效地缩短训练时间。4.利用遗传算法优化BP算法
BP算法的优点是寻优具有精确性,但它易陷入局部极小、收敛速度慢,而遗传算法(GeneticAlgorithm,GA)是基于自然选择和遗传规律的全局优化搜索算法,具有很强的宏观搜索能力和寻优全局性。因此,在BP神经网络理论中引入遗传算法的思想,则可以很好地达到全局寻优和快速高效的目的。
Lecture 3 Rudiments of Support Vector Machine(1)Support Vector Machine(支持向量机)(此算法是重点,必考题)
①算法思想
SVM的主要思想是针对两类分类问题,寻找一个超平面作为两类训练样本点的分割,以保证最小的分类错误率。在线性可分的情况下,存在一个或多个超平面使得训练样本完全分开,SVM的目标是找到其中的最优超平面,最优超平面是使得每一类数据与超平面距离最近的向量与超平面之间的距离最大的这样的平面,对于线性不可分的情况,通过使用核函数(一种非线性映射算法)将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分。②优点
(1)小样本,并不是说样本的绝对数量少(实际上,对任何算法来说,更多的样本几乎总是能带来更好的效果),而是说与问题的复杂度比起来,SVM算法要求的样本数是相对比较少的。
(2)非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也有人叫惩罚变量)和核函数技术来实现,(3)高维模式识别是指样本维数很高,例如文本的向量表示,如果没有经过降维处理,出现几万维的情况很正常,其他算法基本就没有能力应付了,SVM却可以,主要是因为SVM 产生的分类器很简洁,用到的样本信息很少(仅仅用到那些称之为“支持向量”的样本,此为后话),使得即使样本维数很高,也不会给存储和计算带来大麻烦(相对照而言,kNN算法在分类时就要用到所有样本,样本数巨大,每个样本维数再一高,这日子就没法过了„„)。③缺点
(1)SVM算法对大规模训练样本难以实施 由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。(2)用SVM解决多分类问题存在困难 ④改进:
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有
一对多组合模式、一对一组合模式和SVM决策树; 再就是通过构造多个分类器的组合来解决。
主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:
与粗集理论结合,形成一种优势互补的多类问题的组合分类器。此处有一道必考题
Lecture 4 Introduction to Decision Rule Mining(1)ID3 Algorithm ①算法思想:
补充:
ID3算法(Iterative Dichotomiser 3 迭代二叉树3代)是一个由Ross Quinlan发明的用于决策树的算法。这个算法便是:
从信息论知识中我们知道,期望信息越小,信息增益越大,从而纯度越高。ID3算法的核心思想就是以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂。该算法采用自顶向下的贪婪搜索遍历可能的决策树空间。
所以,ID3的思想便是:
自顶向下的贪婪搜索遍历可能的决策树空间构造决策树(此方法是ID3算法和C4.5算法的基础); 从“哪一个属性将在树的根节点被测试”开始;
使用统计测试来确定每一个实例属性单独分类训练样例的能力,分类能力最好的属性作为树的根结点测试(如何定义或者评判一个属性是分类能力最好的呢?这便是下文将要介绍的信息增益,or 信息增益率)。
然后为根结点属性的每个可能值产生一个分支,并把训练样例排列到适当的分支(也就是说,样例的该属性值对应的分支)之下。重复这个过程,用每个分支结点关联的训练样例来选取在该点被测试的最佳属性。
②优点:
(1)分类精度高;
(2)实现比较简单,产生的规则如果用图表示出来的话,清晰易懂;
优点补充:
(4)ID3算法的假设空间包含了所有的决策树,不存在无解风险
(5)ID3算法非常适合处理离散样本数据,利用属性结果提取分类规则,且容易理解(6)引进了信息论的中的熵,使得算法得到结点最少的决策树 ③缺点:
(1)ID3算法往往偏向于选择取值较多的属性,而在很多情况下取值较多的属性并不总是最重要的属性,即按照使熵值最小的原则被ID3算法列为应该首先判断的属性在现实情况中却并不一定非常重要。例如:在银行客户分析中,姓名属性取值多,却不能从中得到任何信息。(简略写:由于使用信息增益,会在属性选择时偏向选择取值多的属性)
(2)ID3算法对于噪声数据敏感,ID3算法不能处理具有连续值的属性,也不能处理具有缺失数据的属性。
(3)用互信息作为选择属性的标准存在一个假设,即训练子集中的正、反例的比例应与实际问题领域中正、反例的比例一致。一般情况很难保证这两者的比例一致,这样计算训练集的互信息就会存在偏差。
(4)在建造决策树时,每个结点仅含一个属性,是一种单变元的算法,致使生成的决策树结点之间的相关性不够强。虽然在一棵树上连在一起,但联系还是松散的。
(5)ID3算法虽然理论清晰,但计算比较复杂,在学习和训练数据集的过程中机器内存占用率比较大,耗费资源。(计算复杂,有很多对数计算)
(6)ID3不够健壮,当有一个项数据有改变时,整棵树的结构可能改变很大。
改进:用R-C4.5的思想,在进行测试属性选择时,合并分类贡献小的分支,避免出现过细的分枝,提高树的健壮性。补充:
(7)当训练集增加或减少的时候,决策树都会随之改变,对渐进学习不方便。
④改进:(1)对决策树进行剪枝。可以采用交叉验证法和加入正则化的方法。
(2)使用基于决策树的combination算法,如bagging算法,randomforest算法,可以解决过拟合的问题(3)引入用户兴趣度
给定a(0≤a≤1)为用户对不确定知识的兴趣度,a的大小由决策者根据先验知识或领域知识来确定。它是一个模糊的概念,通常指关于某一事务的先验知识,包括领域知识和专家建议,具体到决策树学习中则是指在决策树训练过程中除了用于生成和修改决策树的实例集之外的所有影响决策树规则生成和选择的因素。
(2)C4.5 Algorithm 补充:
既然说C4.5算法是ID3的改进算法,那么C4.5相比于ID3改进的地方有哪些呢?
用信息增益率来选择属性。ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵(entropy,熵是一种不纯度度量准则),也就是熵的变化值,而C4.5用的是信息增益率。对,区别就在于一个是信息增益,一个是信息增益率。(因此,C4.5克服了ID3用信息增益选择属性时偏向选择取值多的属性的不足。)在树构造过程中进行剪枝,在构造决策树的时候,那些挂着几个元素的节点,不考虑最好,不然容易导致overfitting。对非离散数据也能处理。能够对不完整数据进行处理 ①算法思想:
②优点:
(1)产生的分类规则易于理解,准确率较高。(2)对非离散数据也能处理。
C4.5既可以处理离散型描述属性,也可以处理连续性描述属性。在选择某节点上的分枝属性时,对于离散型描述属性,C4.5的处理方法与ID3相同,按照该属性本身的取值个数进行计算;对于某个连续性描述属性Ac,假设在某个结点上的数据集的样本数量为total,C4.5将作以下处理。
1)将该结点上的所有数据样本按照连续型描述属性的具体数值,由小到大进行排序,得到属性值的取值序列{A1c,A2c,„„Atotalc}。
2)在取值序列中生成total-1个分割点。第i(0
3)从total-1个分割点中选择最佳分割点。对于每一个分割点划分数据集的方式,C4.5计算它的信息增益比,并且从中选择信息增益比最大的分割点来划分数据集。(3)能够对不完整数据进行处理。
在某些情况下,可供使用的数据可能缺少某些属性的值。假如〈x,c(x)〉是样本集S中的一个训练实例,但是其属 性A的值A(x)未知。处理缺少属性值的一种策略是赋给它结点n所对应的训练实例中该属性的最常见值;另外一种更复杂的策略是为A的每个可能值赋予一个概率。例如,给定一个布尔属性A,如果结点n包含6个已知A=1和4个A=0的实例,那么A(x)=1的概率是0.6,而A(x)=0的概率是0.4。于是,实例x的60%被分配到A=1的分支,40%被分配到另一个分支。这些片断样例(fractional examples)的目的是计算信息增益,另外,如果有第二个缺少值的属性必须被测试,这些样例可以在后继的树分支中被进一步细分。C4.5就是使用这种方法处理缺少的属性值。(4)克服了用信息增益来选择属性时偏向选择值多的属性的不足。(5)采用了一种后剪枝方法
避免树的高度无节制的增长,避免过度拟合数据,该方法使用训练样本集本身来估计剪枝前后的误差,从而决定是否真正剪枝。方法中使用的公式如下:
其中N是实例的数量,f=E/N为观察到的误差率(其中E为N个实例中分类错误的个数),q为真实的误差率,c为置信度(C4.5算法的一个输入参数,默认值为0.25),z为对应于置信度c的标准差,其值可根据c的设定值通过查正态分布表得到。通过该公式即可计算出真实误差率q的一个置信度上限,用此上限为该节点误差率e做一个悲观的估计:
通过判断剪枝前后e的大小,从而决定是否需要剪枝。
树剪枝
在决策树的创建时,由于数据中的噪声和离群点,许多分枝反映的是训练数据中的异常。剪枝方法是用来处理这种过分拟合数据的问题。通常剪枝方法都是使用统计度量,剪去最不可靠的分枝。
剪枝一般分两种方法:先剪枝和后剪枝。
先剪枝方法中通过提前停止树的构造(比如决定在某个节点不再分裂或划分训练元组的子集)而对树剪枝。一旦停止,这个节点就变成树叶,该树叶可能取它持有的子集最频繁的类作为自己的类。先剪枝有很多方法,比如(1)当决策树达到一定的高度就停止决策树的生长;(2)到达此节点的实例具有相同的特征向量,而不必一定属于同一类,也可以停止生长(3)到达此节点的实例个数小于某个阈值的时候也可以停止树的生长,不足之处是不能处理那些数据量比较小的特殊情况(4)计算每次扩展对系统性能的增益,如果小于某个阈值就可以让它停止生长。先剪枝有个缺点就是视野效果问题,也就是说在相同的标准下,也许当前扩展不能满足要求,但更进一步扩展又能满足要求。这样会过早停止决策树的生长。
另一种更常用的方法是后剪枝,它由完全成长的树剪去子树而形成。通过删除节点的分枝并用树叶来替换它。树叶一般用子树中最频繁的类别来标记。
C4.5采用悲观剪枝法,它使用训练集生成决策树又用它来进行剪枝,不需要独立的剪枝集。
悲观剪枝法的基本思路是:设训练集生成的决策树是T,用T来分类训练集中的N的元组,设K为到达某个叶子节点的元组个数,其中分类错误地个数为J。由于树T是由训练集生成的,是适合训练集的,因此J/K不能可信地估计错误率。所以用(J+0.5)/K来表示。设S为T的子树,其叶节点个数为L(s),个数总和,为到达此子树的叶节点的元组 为此子树中被错误分类的元组个数之和。在分类新的元组时,则其错误分类个数为,其标准错误表示为:。当用此树分类训练集时,设E为分类错误个数,当下面的式子成立时,则删掉子树S,用叶节点代替,且S的子树不必再计算。
③缺点:
(1)构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
(2)C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。(3)在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。④改进:
(1)SLIQ算法
SLIQ算法对C4.5决策树分类算法的实现方法进行了改进,在决策树的构造过程中采用了“预排序”和“广度优先策略”两种技术。
1)预排序。对于连续属性在每个内部结点寻找其最优分裂标准时,都需要对训练集按照该属性的取值进行排序,而排序是很浪费时间的操作。为此,SLIQ算法 采用了预排序技术。所谓预排序,就是针对每个属性的取值,把所有的记录按照从小到大的顺序进行排序,以消除在决策树的每个结点对数据集进行的排序。具体实 现时,需要为训练数据集的每个属性创建一个属性列表,为类别属性创建一个类别列表。
2)广度优先策略。在C4.5算法中,树的构造是按照深度优先策略完成的,需要对每个属性列表在每个结点处都进行一遍扫描,费时很多,为此,SLIQ采用 广度优先策略构造决策树,即在决策树的每一层只需对每个属性列表扫描一次,就可以为当前决策树中每个叶子结点找到最优分裂标准。
SLIQ算法由于采用了上述两种技术,使得该算法能够处理比C4.5大得多的训练集,在一定范围内具有良好的随记录个数和属性个数增长的可伸缩性。
然而它仍然存在如下缺点:
1)由于需要将类别列表存放于内存,而类别列表的元组数与训练集的元组数是相同的,这就一定程度上限制了可以处理的数据集的大小。
2)由于采用了预排序技术,而排序算法的复杂度本身并不是与记录个数成线性关系,因此,使得SLIQ算法不可能达到随记录数目增长的线性可伸缩性。(2)SPRINT算法
为了减少驻留于内存的数据量,SPRINT算法进一步改进了决策树算法的数据结构,去掉了在SLIQ中需要驻留于内存的类别列表,将它的类别列合并到每个 属性列表中。这样,在遍历每个属性列表寻找当前结点的最优分裂标准时,不必参照其他信息,将对结点的分裂表现在对属性列表的分裂,即将每个属性列表分成两 个,分别存放属于各个结点的记录。
SPRINT算法的优点是在寻找每个结点的最优分裂标准时变得更简单。其缺点是对非分裂属性的属性列表进行分裂变得很困难。解决的办法是对分裂属性进行分 裂时用哈希表记录下每个记录属于哪个孩子结点,若内存能够容纳下整个哈希表,其他属性列表的分裂只需参照该哈希表即可。由于哈希表的大小与训练集的大小成 正比,当训练集很大时,哈希表可能无法在内存容纳,此时分裂只能分批执行,这使得SPRINT算法的可伸缩性仍然不是很好。
(3)随机森林(Random Forest)(对C4.5,ID3改进,提高准确率)
随机森林是一个最近比较火的算法,它有很多的优点: 在数据集上表现良好
在当前的很多数据集上,相对其他算法有着很大的优势
它能够处理很高维度(feature很多)的数据,并且不用做特征选择 在训练完后,它能够给出哪些feature比较重要
在创建随机森林的时候,对generlization error使用的是无偏估计 训练速度快
在训练过程中,能够检测到feature间的互相影响 容易做成并行化方法 实现比较简单
随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。在建立每一棵决策树的过程中,有两点需要注意 – 采样与完全分裂。首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。然后进行列采样,从M个feature中,选择m个(m << M)。之后就 是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都一个重要的步骤 – 剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。
按这种算法得到的随机森林中的每一棵都是很弱的,但是大家组合起来就很厉害了。我觉得可以这样比喻随机森林算法:每一棵决策树就是一个精通于某一个窄领域的专家(因为我们从M个feature中选择m让每一棵决策树进行学习),这样在随机森林中就有了很多个精通不同领域的专家,对一个新的问题(新的输入数据),可以用不同的角度去看待它,最终由各个专家,投票得到结果。随机森林的过程请参考Mahout的random forest。这个页面上写的比较清楚了,其中可能不明白的就是Information Gain,可以看看之前推荐过的Moore的页面。
Lecture 5 Classifier Assessment and Ensemble Methods
1、bagging bagging是一种用来提高学习算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将它们组合成一个预测函数。• 基本思想
1.给定一个弱学习算法,和一个训练集;2.单个弱学习算法准确率不高;3.将该学习算法使用多次,得出预测函数序列,进行投票;4.最后结果准确率将得到提高.Bagging要求“不稳定”(不稳定是指数据集的小的变动能够使得分类结果的显著的变动)的分类方法。比如:决策树,神经网络算法
2、Booting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。Boosting是一种提高任意给定学习算法准确度的方法。他是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。可以用来提高其他弱分类算法的识别率。
Bagging与Boosting的区别
二者的主要区别是取样方式不同。Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的各轮训练集的选择与前面各轮的学习结果有关;Bagging的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。Bagging可通过并行训练节省大量时间开销。
bagging和boosting都可以有效地提高分类的准确性。在大多数数据集中,boosting的准确性比bagging高。在有些数据集中,boosting会引起退化---Overfit。
Boosting思想的一种改进型AdaBoost方法在邮件过滤、文本分类方面都有很好的性能。
3、Adaboost(Adaptive Boosting) 算法简介
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用adaboost分类器可以排除一些不必要的训练数据特征,并放在关键的训练数据上面。 算法分析
该算法其实是一个简单的弱分类算法提升过程,这个过程通过不断的训练,可以提高对数据的分类能力。整个过程如下所示:
1.先通过对N个训练样本的学习得到第一个弱分类器; 2.将分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过对这个样本的学习得到第二个弱分类器 ; 3.将1和2都分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器;
4.最终经过提升的强分类器。即某个数据被分为哪一类要由各分类器权值决定。
算法优点: 高精度;简单,无需做特征筛选;可以使用各种方法构建子分类器,Adaboost算法提供的是框架;当使用简单分类器时,计算出的结果是可以理解的,而且弱分类器构造极其简单;不会过度拟合。
对于boosting算法,存在两个问题:
1.如何调整训练集,使得在训练集上训练的弱分类器得以进行; 2.如何将训练得到的各个弱分类器联合起来形成强分类器。针对以上两个问题,Adaboost算法进行了调整:
1.使用加权后选取的训练数据代替随机选取的训练样本,这样将训练的焦点集中在比较难分的训练数据样本上; 2.将弱分类器联合起来,使用加权的投票机制代替平均投票机制。让分类效果好的弱分类器具有较大的权重,而分类效果差的分类器具有较小的权重。
与Boosting算法不同的是,Adaboost算法不需要预先知道弱学习算法学习正确率的下限即弱分类器的误差,并且最后得到的强分类器的分类精度依赖于所有弱分类器的分类精度,这样可以深入挖掘弱分类器算法的能力。
算法缺点: 训练时间过长,执行效果依赖于弱分类器的选择。对噪声数据和离群值敏感。 改进:限制样本权重的调整在各目标类内部进行
1、权值更新方法的改进
Allende等人提出了RADA算法,该算法是对原算法中误分类样本权值抑制的方法。算法最突出的贡献有三点:第一点是对的抑制,第二点,用当前层分类器来判断样本是否分类正
确,而非原算法中的当前弱分类器,第三点,增加 age变量记录误分类情况,并作了阈值限制,这里有效缓解了过拟合的问题。RADA 比传统 AdaBoost 算法更加稳定,有效解决了误分类样本权值偏高的问题。
2、训练方法的改进
Merler等人提出了AdaBoost的并行计算方法P-AdaBoost算法。其主要思想是,将AdaBoost训练过程分为两个阶段,第一阶段和原算法一样,经过多轮训练,获得一个较为可靠的样本分布ωi(s),第二阶段采用并行方法提高训练效率,训练中不再对样本权值进行更新,而统一采用ωi(s),最后输出为。
采用这种方法能大大减少训练成本,与原算法相比,多了S 轮的样本分布初始化工作,并且避免了差样本因多次分类而造成权值过大的问题。
3、多算法结合的改进
Yunlong提出了EAdaBoost算法,是AdaBoost结合k近邻算法的产物。AdaBoost算法具有高度拟合的特点,噪声会对训练产生很大的影响,Yunlong等人在AdaBoost算法的基础之上加入了kNN算法,对噪声样本进行了有效处理,提高了算法的精确度。EAdaBoost算法的主要过程如下:
(a)准备训练样本,对样本权值进行初始化。(b)计算训练误差,并挑选最优的弱分类器。(c)更新样本权值。
(d)用 KNN 算法排除噪声样本,将权值设为 0。
该算法中有两个非常关键的问题,什么样的样本称为噪声样本和每次要处理多少个噪声样本的问题,原文中称之为 suspect sample,算法中取的是那种难于学习、让分类器出错过多的样本。
4、综合方法的改进
Rong Xiao等人提出了Boosting Chain算法,用链表的方式来组织分类器,算法先用boosting特征快速排除 大量非人脸窗口,再用boosting chain和SVM分类器进行再判别,实验效果相比FloatBoost还要略好。
Adaboosting
Lecture 6 Introduction to Association Rule Mining(1)Apriori Algorithms ①算法思想:Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法Apriori使用一种称作逐层搜索的迭代方法,“K-1项集”用于搜索“K项集”。首先,找出频繁“1项集”的集合,该集合记作L1。L1用于找频繁“2项集”的集合L2,而L2用于找L3。如此下去,直到不能找到“K项集”。找每个Lk都需要一次数据库扫描。
一、挖掘步骤:
1.依据支持度找出所有频繁项集(频度)2.依据置信度产生关联规则(强度)二、一些定义: 对于A->B ①支持度:P(A∩B),既有A又有B的概率
②置信度:P(B|A),在A发生的事件中同时发生B的概率p(AB)/P(A)③如果事件A中包含k个元素,那么称这个事件A为k项集事件A满足最小支持度阈值的事件称为频繁k项集。④同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。⑤候选集:通过向下合并得出的项集。
⑥频繁集:支持度大于等于特定的最小支持度(Minimum Support/minsup)的项集。注意,频繁集的子集一定是频繁集。核心思想:连接步和剪枝步。连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从CK中删除。简单的讲,1、发现频繁项集,过程为(1)扫描(2)计数(3)比较(4)产生频繁项集(5)连接、剪枝,产生候选项集,重复步骤(1)~(5)直到不能发现更大的频集
2、产生关联规则,过程为:根据前面提到的置信度的定义,关联规则的产生如下:(1)对于每个频繁项集L,产生L的所有非空子集;(2)对于L的每个非空子集S,如果 P(L)/P(S)≧minsup 则输出规则“SàL-S”
注:L-S表示在项集L中除去S子集的项集
②优点: Apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。
③缺点:此算法的的应用非常广泛,但是他在运算的过程中会产生大量的侯选集,而且在匹配的时候要进行整个数据库的扫描(重复扫描),因为要做支持度计数的统计操作,在小规模的数据上操作还不会有大问题,如果是大型的数据库上呢,他的效率还是有待提高的。④改进:
方法
一、Apriori优化:Fp-tree 算法
关键点:以树形的形式来展示、表达数据的形态;可以理解为水在不同河流分支的流动过程; 生成Fp-tree的几个点: 1.扫描原始项目集; 2.排列数据;
3.创建ROOT节点;
4.按照排列的数据进行元素的流动; 5.节点+1;
方法
二、Apriori优化:垂直数据分布
关键点:相当于把原始数据进行行转列的操作,并且记录每个元素的个数 Lecture 6有5种改进方法:
1.基于哈希的项集数:小于阈值的哈希桶数的k项集不是频繁的
2.缩减事务:在子频繁集中扫描时,不包含任何k项频繁集的事务是无用的 3.划分DB:DB中的任何频繁项集在部分DB中也一定是频繁的 4.采样:用一个小的支持阈值和方法挖掘给定数据的子集
5.动态规划项集数:只有当他们的所有子集预计为频繁时才添加一个新的候选项(1)基于hash的方法。基于哈希的算法仍是将所有所有数据放入内存的方法。只要在计算的过程中能够满足算法对内存的大量需求,针对C2候选项对过大,一些算法提出用来减少C2的大小。这里我们首先考虑PCY算法,这个算法使用了在Apriori算法的第一步里大量没使用的内存。接着,我们考虑Multistage(多步哈希)算法,这个算法使用PCY的技巧,但插入了额外的步骤来更多的减少C2的大小。类似的还有Multihash。
(2)基于划分的方法。Savasere等设计了一个基于划分(partition)的算法.这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。
(3)基于采样的方法。基于前一遍扫描得到的信息,对此仔细地作组合分析,可以得到一个改进的算法,Mannila等先考虑了这一点,他们认为采样是发现规则的一个有效途径。
(2)FP-tree Algorithms ①算法思想:
参考http://blog.csdn.net/sealyao/article/details/6460578 FP-tree 在不生成候选项的情况下,完成Apriori算法的功能。通过合并一些重复路径,实现了数据的压缩,从而使得将频繁项集加载到内存中成为可能。之后以树遍历的操作,替代了 Apriori 算法中最耗费时间的事务记录遍历,从而大大提高了运算效率。算法步骤如下:
1.扫描一遍数据库,删除频率小于最小支持度的项,并降序排列。并将每个事务中的项都要按照这个顺序进行排列。处理后的数据库记录为:
2.构建 FP-Tree,把每个事务中的数据项按降序依次插入到一棵以NULL为根结点的树中,同时在每个结点处记录该结点出现的支持度。如果插入时频繁项节点已经存在了,则把该频繁项节点支持度加1;如果该节点不存在,则创建支持度为1的节点,并把该节点链接到项头表中。
3.求出每个节点的条件模式基
4.为每个节点建立FP-Tree
5.递归 调用FP-growth(Tree,null)开始进行挖掘。伪代码如下: procedure FP_growth(Tree, a)if Tree 含单个路径P then{
for 路径P中结点的每个组合(记作b)
产生模式b U a,其支持度support = b 中结点的最小支持度; } else {
for each a i 在Tree的头部(按照支持度由低到高顺序进行扫描){ 产生一个模式b = a i U a,其支持度support = a i-support;
构造b的条件模式基,然后构造b的条件FP-树Treeb; if Treeb 不为空 then 调用 FP_growth(Treeb, b); } }
FP-growth的执行过程:
1)在FP-growth递归调用的第一层,模式前后a=NULL,得到的其实就是频繁1-项集。2)对每一个频繁1-项,进行递归调用FP-growth()获得多元频繁项集。②优点:
(ppt翻译)
1.算法结构拥有完整性:
1)没有破坏事务的长模式;
2)能保留频繁模式挖掘的完整信息。2.算法结构拥有紧凑性:
1)不相关的项被删除;
2)事务项按照频率降序排列,因为更频繁的项更可能被找到;
3)如果不计算链接和节点数目,存储空间小于原始数据库。
3.FP算法的效率比Apriori算法快一个数量级,效率快的原因有以下4个:
1)没有候选集,没有候选测试
2)有紧凑的数据结构
3)消除重复的数据库遍历
4)基础操作是计数和FP-Tree的建立 ③缺点:
(参考http://www.xiexiebang.com/wiki/Covariance_matrix
我们认为bi代表B的第i行,那么由协方差矩阵
推知
<>表示向量的内积,也就是每一项的积之和。⑤ 计算协方差矩阵C的特征值和特征向量
若XA=aA,其中A为一列向量,a为一实数。那么a就被称为矩阵X的特征值,而A则是特征值a对应的特征向量。
顺便扯一下,在matlab里面,求解上述A以及a,使用eig函数。如[D,V] = eig(C),那么D就是n个列特征向量,而V是对角矩阵,对角线上的元素就是特征值。⑥ 排序
将特征值按从大到小的顺序排列,并根据特征值调整特征向量的排布。
D'=sort(D);V'=sort(V);
⑦ 计算总能量并选取其中的较大值
若V'为C的对角阵,那么总能量为对角线所有特征值之和S。
由于在步骤⑥里面已对V进行了重新排序,所以当v'前几个特征值之和大于等于S的90%时,可以认为这几个特征值可以用来“表征”当前矩阵。
假设这样的特征值有L个。⑧ 计算基向量矩阵W
实际上,W是V矩阵的前L列,所以W的大小就是 MxL。⑨ 计算z-分数(这一步可选可不选)
Z[i,j]=B[i,j]/sqrt(D[i,i])⑩ 计算降维后的新样本矩阵
W*表示W的转置的共轭矩阵,大小为 LxM , 而Z的大小为 MxN , 所以Y的大小为 LxN , 即降维为 N 个 L 维向量。
②优点: 该算法可以消除数据间的冗余,以简化数据,提高计算效率。③缺点:缺乏主成分的物理解释,也就是缺乏有效的语义解释。
PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。
PCA技术的一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
但是,这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高
PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关
④改进:
第四篇:机器学习面试题目
1、有监督学习和无监督学习的区别
有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。(LR,SVM,BP,RF,GBDT)
无监督学习:对未标记的样本进行训练学习,比发现这些样本中的结构知识。(KMeans,DL)
2、正则化
正则化是针对过拟合而提出的,以为在求解模型最优的是一般优化最小的经验风险,现在在该经验风险上加入模型复杂度这一项(正则化项是模型参数向量的范数),并使用一个rate比率来权衡模型复杂度与以往经验风险的权重,如果模型复杂度越高,结构化的经验风险会越大,现在的目标就变为了结构经验风险的最优化,可以防止模型训练过度复杂,有效的降低过拟合的风险。
奥卡姆剃刀原理,能够很好的解释已知数据并且十分简单才是最好的模型。
过拟合
如果一味的去提高训练数据的预测能力,所选模型的复杂度往往会很高,这种现象称为过拟合。所表现的就是模型训练时候的误差很小,但在测试的时候误差很大。产生的原因过拟合原因: 1.样本数据的问题。样本数量太少;
抽样方法错误,抽出的样本数据不能有效足够代表业务逻辑或业务场景。比如样本符合正态分布,却按均分分布抽样,或者样本数据不能代表整体数据的分布; 样本里的噪音数据干扰过大 2.模型问题
模型复杂度高、参数太多 决策树模型没有剪枝
权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.解决方法
1.样本数据方面。
增加样本数量,对样本进行降维,添加验证数据 抽样方法要符合业务场景 清洗噪声数据 2.模型或训练问题
控制模型复杂度,优先选择简单的模型,或者用模型融合技术。
利用先验知识,添加正则项。L1正则更加容易产生稀疏解、L2正则倾向于让参数w趋向于0.4、交叉验证 不要过度训练,最优化求解时,收敛之前停止迭代。
决策树模型没有剪枝 权值衰减
5、泛化能力
泛化能力是指模型对未知数据的预测能力
6、生成模型和判别模型
1.生成模型:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。(朴素贝叶斯、Kmeans)
生成模型可以还原联合概率分布p(X,Y),并且有较快的学习收敛速度,还可以用于隐变量的学习
2.判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。(k近邻、决策树、SVM)
直接面对预测,往往准确率较高,直接对数据在各种程度上的抽象,所以可以简化模型
7、线性分类器与非线性分类器的区别以及优劣
如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。常见的线性分类器有:LR,贝叶斯分类,单层感知机、线性回归 常见的非线性分类器:决策树、RF、GBDT、多层感知机 SVM两种都有(看线性核还是高斯核)线性分类器速度快、编程方便,但是可能拟合效果不会很好 非线性分类器编程复杂,但是效果拟合能力强
8、特征比数据量还大时,选择什么样的分类器?
线性分类器,因为维度高的时候,数据一般在维度空间里面会比较稀疏,很有可能线性可分 对于维度很高的特征,你是选择线性还是非线性分类器? 理由同上
对于维度极低的特征,你是选择线性还是非线性分类器?
非线性分类器,因为低维空间可能很多特征都跑到一起了,导致线性不可分
1.如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM 2.如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel 3.如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
9、ill-condition病态问题
训练完的模型测试样本稍作修改就会得到差别很大的结果,就是病态问题(这简直是不能用啊)
10、L1和L2正则的区别,如何选择L1和L2正则 http://blog.csdn.NET/xbmatrix/article/details/61624196 他们都是可以防止过拟合,降低模型复杂度
L1是在loss function后面加上 模型参数的1范数(也就是|xi|)
L2是在loss function后面加上 模型参数的2范数(也就是sigma(xi^2)),注意L2范数的定义是sqrt(sigma(xi^2)),在正则项上没有添加sqrt根号是为了更加容易优化 L1 会产生稀疏的特征
L2 会产生更多地特征但是都会接近于0 L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。L1在特征选择时候非常有用,而L2就只是一种规则化而已。L1求解
最小角回归算法:LARS算法
11、越小的参数说明模型越简单
过拟合的,拟合会经过曲面的每个点,也就是说在较小的区间里面可能会有较大的曲率,这里的导数就是很大,线性模型里面的权值就是导数,所以越小的参数说明模型越简单。
12、为什么一些机器学习模型需要对数据进行归一化? http://blog.csdn.net/xbmatrix/article/details/56695825 归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。
1)归一化后加快了梯度下降求最优解的速度。等高线变得显得圆滑,在梯度下降进行求解时能较快的收敛。如果不做归一化,梯度下降过程容易走之字,很难收敛甚至不能收敛 2)把有量纲表达式变为无量纲表达式, 有可能提高精度。一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)3)逻辑回归等模型先验假设数据服从正态分布。哪些机器学习算法不需要做归一化处理?
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。而像adaboost、gbdt、xgboost、svm、lr、KNN、KMeans之类的最优化问题就需要归一化。特征向量的归一化方法
线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue)对数函数转换,表达式如下:y=log10(x)反余切函数转换,表达式如下:y=arctan(x)*2/PI 减去均值,乘以方差:y=(x-means)/ variance 标准化与归一化的区别
简单来说,标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。规则为l2的归一化公式如下:
13、特征向量的缺失值处理
1.缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的noise,对结果造成不良影响。
2.缺失值较少,其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理: 1)把NaN直接作为一个特征,假设用0表示; 2)用均值填充;
3)用随机森林等算法预测填充
随机森林如何处理缺失值(http://charleshm.github.io/2016/03/Random-Forest-Tricks/)方法一(na.roughfix)简单粗暴,对于训练集,同一个class下的数据,如果是分类变量缺失,用众数补上,如果是连续型变量缺失,用中位数补。
方法二(rfImpute)这个方法计算量大,至于比方法一好坏?不好判断。先用na.roughfix补上缺失值,然后构建森林并计算proximity matrix,再回头看缺失值,如果是分类变量,则用没有缺失的观测实例的proximity中的权重进行投票。如果是连续型变量,则用proximity矩阵进行加权平均的方法补缺失值。然后迭代4-6次,这个补缺失值的思想和KNN有些类似12。
随机森林如何评估特征重要性(http://charleshm.github.io/2016/03/Random-Forest-Tricks/)衡量变量重要性的方法有两种,Decrease GINI 和 Decrease Accuracy:
1)Decrease GINI: 对于回归问题,直接使用argmax(Var−VarLeft−VarRight)作为评判标准,即当前节点训练集的方差Var减去左节点的方差VarLeft和右节点的方差VarRight。
2)Decrease Accuracy:对于一棵树Tb(x),我们用OOB样本可以得到测试误差1;然后随机改变OOB样本的第j列:保持其他列不变,对第j列进行随机的上下置换,得到误差2。至此,我们可以用误差1-误差2来刻画变量j的重要性。基本思想就是,如果一个变量j足够重要,那么改变它会极大的增加测试误差;反之,如果改变它测试误差没有增大,则说明该变量不是那么的重要。
14、优化Kmeans 使用kd树或者ball tree(这个树不懂)将所有的观测实例构建成一颗kd树,之前每个聚类中心都是需要和每个观测点做依次距离计算,现在这些聚类中心根据kd树只需要计算附近的一个局部区域即可 KMeans初始类簇中心点的选取
k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。
1.从输入的数据点集合中随机选择一个点作为第一个聚类中心
2.对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)3.选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大 4.重复2和3直到k个聚类中心被选出来
5.利用这k个初始的聚类中心来运行标准的k-means算法
15、解释对偶的概念
一个优化问题可以从两个角度进行考察,一个是primal 问题,一个是dual 问题,就是对偶问题,一般情况下对偶问题给出主问题最优值的下界,在强对偶性成立的情况下由对偶问题可以得到主问题的最优下界,对偶问题是凸优化问题,可以进行较好的求解,SVM中就是将primal问题转换为dual问题进行求解,从而进一步引入核函数的思想。
16、如何进行特征选择?
特征选择是一个重要的数据预处理过程,主要有两个原因:一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;二是增强对特征和特征值之间的理解 常见的特征选择方式: 1.去除方差较小的特征
2.正则化。1正则化能够生成稀疏的模型。L2正则化的表现更加稳定,由于有用的特征往往对应系数非零。
3.随机森林,对于分类问题,通常采用基尼不纯度或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。一般不需要feature engineering、调参等繁琐的步骤。它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。
4.稳定性选择。是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。理想情况下,重要特征的得分会接近100%。稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。
17、数据预处理
1.缺失值,填充缺失值fillna: i.离散:None, ii.连续:均值。
iii.缺失值太多,则直接去除该列
2.连续值:离散化。有的模型(如决策树)需要离散值
3.对定量特征二值化。核心在于设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0。如图像操作
4.皮尔逊相关系数,去除高度相关的列 #correlation matrix corrmat = df_train.corr()f, ax = plt.subplots(figsize=(12, 9))sns.heatmap(corrmat, vmax=.8, square=True);1.去除噪声点。通过matplotlib.scatter函数图示某一特征与预测特征的点分布图,明显看出噪声点,去除即可
#bivariate analysis saleprice/grlivareavar = 'GrLivArea' data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));df_train.sort_values(by = 'GrLivArea', ascending = False)[:2] df_train = df_train.drop(df_train[df_train['Id'] == 1299].index)df_train = df_train.drop(df_train[df_train['Id'] == 524].index)1.标签编码,把字符类别特征编码成数值类型,如红绿蓝编码为0、1、2 2.归一化。将数据按比例缩放,使这些数据落入到一个较小的特定的区间之内。最小最大缩放:
当使用基于距离的算法时,我们必须尝试将数据缩放,这样较不重要的特征不会因为自身较大的范围而主导目标函数。如KNN。
在逻辑回归中,每个特征都被分配了权重或系数(Wi)。如果某个特征有相对来说比较大的范围,而且其在目标函数中无关紧要,那么逻辑回归模型自己就会分配一个非常小的值给它的系数,从而中和该特定特征的影响优势,而基于距离的方法,如KNN,没有这样的内置策略,因此需要缩放。Z-score标准化: 很多的机器学习技巧/模型(例如L1,L2正则项,向量空间模型-Vector Space Model,欧几里得距离测量的KNN、k-均值、SVM、感知器、神经网络、线性判别分析、主成分分析)都基于这样的假设:所有的属性取值都差不多是以0为均值且取值范围相近的,标准化数据帮助我们提高预测模型的精度。
备注:在缩放和标准化中二选一是个令人困惑的选择,你必须对数据和要使用的学习模型有更深入的理解,才能做出决定。对于初学者,你可以两种方法都尝试下并通过交叉验证精度来做出选择。
18、什么是偏差与方差?
泛化误差可以分解成偏差的平方加上方差加上噪声。偏差度量了学习算法的期望预测和真实结果的偏离程度,刻画了学习算法本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响,噪声表达了当前任务上任何学习算法所能达到的期望泛化误差下界,刻画了问题本身的难度。偏差和方差一般称为bias和variance,一般训练程度越强,偏差越小,方差越大,泛化误差一般在中间有一个最小值,如果偏差较大,方差较小,此时一般称为欠拟合,而偏差较小,方差较大称为过拟合。偏差: 方差:
解决bias和Variance问题的方法: 交叉验证
High bias解决方案:Boosting、复杂模型(非线性模型、增加神经网络中的层)、更多特征 High Variance解决方案:agging、简化模型、降维
19、采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
用EM算法求解的模型一般有GMM或者协同过滤,k-means其实也属于EM。EM算法一定会收敛,但是可能收敛到局部最优。由于求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦。
20、SVM、LR、决策树的对比?
模型复杂度:SVM支持核函数,可处理线性非线性问题;LR模型简单,训练速度快,适合处理线性问题;决策树容易过拟合,需要进行剪枝
损失函数:SVM hinge loss;LR L2正则化;adaboost 指数损失
数据敏感度:SVM添加容忍度对outlier不敏感,只关心支持向量,且需要先做归一化;LR对远点敏感
数据量:数据量大就用LR,数据量小且特征少就用SVM非线性核
21、GBDT 和随机森林的区别?
随机森林采用的是bagging的思想,bagging又称为bootstrap aggreagation,通过在训练样本集中进行有放回的采样得到多个采样集,基于每个采样集训练出一个基学习器,再将基学习器结合。随机森林在对决策树进行bagging的基础上,在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性的时候是在当前节点属性集合中选择最优属性,而随机森林则是对结点先随机选择包含k个属性的子集,再选择最有属性,k作为一个参数控制了随机性的引入程度。
另外,GBDT训练是基于Boosting思想,每一迭代中根据错误更新样本权重,因此是串行生成的序列化方法,而随机森林是bagging的思想,因此是并行化方法。
22、xgboost怎么给特征评分?
在训练的过程中,通过Gini指数选择分离点的特征,一个特征被选中的次数越多,那么该特征评分越高。
[python] view plain copy print? 1.# feature importance
2.print(model.feature_importances_)
3.# plot
4.pyplot.bar(range(len(model.feature_importances_)), model.feature_importances_)
5.pyplot.show()
6.==========
7.# plot feature importance
8.plot_importance(model)
9.pyplot.show()
# feature importance print(model.feature_importances_)# plot pyplot.bar(range(len(model.feature_importances_)), model.feature_importances_)pyplot.show()========== # plot feature importance plot_importance(model)pyplot.show()
23、什么是OOB?随机森林中OOB是如何计算的,它有什么优缺点?
bagging方法中Bootstrap每次约有1/3的样本不会出现在Bootstrap所采集的样本集合中,当然也就没有参加决策树的建立,把这1/3的数据称为袋外数据oob(out of bag),它可以用于取代测试集误差估计方法。
袋外数据(oob)误差的计算方法如下:
对于已经生成的随机森林,用袋外数据测试其性能,假设袋外数据总数为O,用这O个袋外数据作为输入,带进之前已经生成的随机森林分类器,分类器会给出O个数据相应的分类,因为这O条数据的类型是已知的,则用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目,设为X,则袋外数据误差大小=X/O;这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。
24、解释置信区间
置信区间不能用贝叶斯学派的概率来描述,它属于频率学派的范畴。真值要么在,要么不在。由于在频率学派当中,真值是一个常数,而非随机变量(后者是贝叶斯学派),所以我们不对真值做概率描述。比如,95%置信区间,并不是真值在这个区间内的概率是95%,而应该为100次随机抽样中构造的100个区间如果95次包含了参数真值,那么置信度为95%。
25、监督学习一般使用两种类型的目标变量:标称型和数值型
标称型:标称型目标变量的结果只在有限目标集中取值,如真与假(标称型目标变量主要用于分类)数值型:数值型目标变量则可以从无限的数值集合中取值,如0.100,42.001等(数值型目标变量主要用于回归分析)
26、为什么说朴素贝叶斯是高偏差低方差?
它简单的假设了各个特征之间是无关的,是一个被严重简化了的模型。所以,对于这样一个简单模型,大部分场合都会bias部分大于variance部分,也就是高偏差,低方差
1.什么是机器学习
机器学习是为了应对系统程序设计,属于计算机科学类的学科,它能根据经验进行自动学习和提高。例如:一个由程序操纵的机器人,它能根据从传感器搜集到的数据,完成一系列的任务和工作。它能根据数据自动地学习应用程序。
2.机器学习与数据挖掘的区别
机器语言是指在没有明确的程序指令的情况下,给予计算机学习能力,使它能自主的学习、设计和扩展相关算法。数据挖掘则是一种从非结构化数据里面提取知识或者未知的、人们感兴趣的图片。在这个过程中应用了机器学习算法。
3.什么是机器学习的过度拟合现象
在机器学习中,当一个统计模型首先描述随机误差或噪声,而不是自身的基本关系时,过度拟合就会出现。当一个模型是过于复杂,过拟合通常容易被发现,因为相对于训练数据类型的数量,参数的数量过于五花八门。那么这个模型由于过度拟合而效果不佳。
4.过度拟合产生的原因
由于用于训练模型的标准并不等同于判断模型效率的标准,这导致了产生过度拟合的可能性。
5.如何避免过度拟合
当你使用较小的数据集进行机器学习时,容易产生过度拟合,因此使用较大的数据量能避免过度拟合现象。但是,当你不得不使用小型数据集进行建模时,可以使用被称为交叉验证的技术。在这种方法中数据集被分成两节,测试和训练数据集,测试数据集只测试模型,而在训练数据集中,数据点被用来建模。
在该技术中,一个模型通常是被给定有先验知识的数据集(训练数据集)进行训练,没有先验知识的数据集进行测试。交叉验证的思想是:在训练阶段,定义一个数据集用来测试模型。
6.什么是感应式的机器学习?
感应机器学习涉及由实践进行学习的过程,能从一组可观测到的例子的尝试推导出普遍性规则。
7.什么是机器学习的五个流行的算法?
1.决策树2.神经网络(反向传播)3.概率网络4.最邻近法5.支持向量机
8.机器学习有哪些不同的算法技术? 在机器学习不同类型的算法技术是:
1.监督学习2.非监督学习3.半监督学习4.转导推理(Transduction)5.学习推理(Learning to Learn)。
9.在机器学习中,建立假设或者模型的三个阶段指的是什么? 1.建模2.模型测试3.模型应用。
10.什么是监督学习的标准方法?
监督学习的标准方法是将一组示例数据的分成训练数据集和测试数据集。
11.什么是训练数据集和测试数据集?
在类似于机器学习的各个信息科学相关领域中,一组数据被用来发现潜在的预测关系,称为“训练数据集”。训练数据集是提供给学习者的案例,而试验数据集是用于测试由学习者提出的假设关系的准确度。
12.下面列出机器学习的各种方法? 机器学习的各种方法如下“
1.概念与分类学习(Concept Vs Classification Learning)。2.符号与统计学习(Symbolic Vs Statistical Learning)。3.归纳与分析学习(Inductive Vs Analytical Learning)。
13.非机器学习有哪些类型? 人工智能、规则推理。
14.什么是非监督学习的功能?
1.求数据的集群2.求出数据的低维表达3.查找数据有趣的方向4.有趣的坐标和相关性5.发现显著的观测值和数据集清理
15.什么是监督学习的功能?
1.分类、2.语音识别3.回归4.时间序列预测5.注释字符串
16.什么是算法独立的机器学习?
机器学习在基础数学领域独立于任何特定分类器或者学习算法,被称为算法独立的机器学习。
17.人工智能与机器学习的区别?
基于经验数据的特性而设计和开发的算法被称为机器学习。而人工智能不但包括机器学习,还包括诸如知识表示,自然语言处理,规划,机器人技术等其它方法。
18.在机器学习中分类器指的是什么?
在机器学习中,分类器是指输入离散或连续特征值的向量,并输出单个离散值或者类型的系统。
19.朴素贝叶斯方法的优势是什么?
朴素贝叶斯分类器将会比判别模型,譬如逻辑回归收敛得更快,因此你只需要更少的训练数据。其主要缺点是它学习不了特征间的交互关系。
20.在哪些领域使用模式识别技术? 模式识别被应用在:
1.计算机视觉2.语言识别3.统计4.数据挖掘5.非正式检索6.生物信息学。
21.什么是遗传编程?
遗传编程的机器学习中两种常用的方法之一。该模型是基于测试,并在一系列的结果当中,获取最佳选择。
22.在机器学习中归纳逻辑程序设计是指什么?
归纳逻辑程序设计(ILP)是利用逻辑程序设计表达的背景知识和实例,它是机器学习的一个分支。
23.在机器学习中,模型的选择是指?
在不同的数学模型中,选择用于描述相同的数据集的模型的过程被称为模型选择。模型选择吧被应用于统计,机器学习和数据挖掘的等相关领域。
24.用于监督学习校准两种方法是什么?
在监督学习中,用于预测良好概率的两种方法是: 1.普拉特校准,2.保序回归。
这些方法被设计为二元分类,而且有意义的。
25.什么方法通常用于防止过拟合?
当有足够的数据进行等渗回归时,这通常被用来防止过拟合问题。
26.规则学习的启发式方法和决策树的启发式方法之间的区别是什么?
决策树的启发式方法评价的是一系列不相交的集合的平均质量;然而规则学习的启发式方法仅仅评价在候选规则覆盖下的实例集。
27.什么是感知机器学习?
在机器学习,感知器是一种输入到几个可能的非二进制输出的监督分类算法。
28.贝叶斯逻辑程序的两个组成部分是什么?
贝叶斯逻辑程序由两部分组成。第一成分由一组贝叶斯条款组成,能捕捉特定域的定性结构。第二组分是定量的,它能对域的量化信息进行编码。
29.什么是贝叶斯网络?
贝叶斯网络是用来表示一组变量之间为概率关系的图像模型。
30.为什么基于实例的学习算法有时也被称为懒惰学习算法?
基于实例的学习算法也被称为懒惰学习算法,因为它们延缓诱导或泛化过程,直到分类完成。
31.支持向量机能处理哪两种分类方法? 1.结合二分类法2.修改二进制纳入多类学习法。
32.什么是集成学习?
为了解决特定的计算程序,如分类器或专家知识等多种模式,进行战略性生产和组合。这个过程被称为集成学习。
33.为什么集成学习被应用?
集成学习能提高模型的分类,预测,函数逼近等方面的精度。
34.什么使用集成学习?
当你构建一个更准确,相互独立的分类器时,使用集成学习。
35.什么是集成方法的两种范式? 集成方法的两种范式是:
1.连续集成方法2.并行集成方法。
36.什么是集成方法的一般原则,在集成方法中套袋(bagging)和爆发(boosting)指的是什么?
集成方法的一般原则是要结合定的学习算法多种预测模型,相对于单一模型,其有更强的健壮性。套袋是一种能提高易变的预测或分类方案集成方法。爆发方法被依次用来减少组合模型的偏差。爆发和装袋都可以通过降低方差减少误差。
37.什么是集成方法分类错误的偏置方差分解?
学习算法的期望误差可以分解为偏差和方差。偏置项衡量由学习方法产生的平均分类器与目标函数是否匹配。
38.在集成方法中什么是增量合成方法?
增量学习方法是一种从新数据进行学习,并能应用于后续由现有的数据集生成的分类器的算法。
39.PCA,KPCA和ICE如何使用?
PCA(主成分分析),KPCA(基于内核主成分分析)和ICA(独立成分分析)是用于降维的重要特征提取技术。
40.在机器学习中降维是什么意思?
在机器学习和统计应用中,降维是指在计算时减少随机变量数目的处理过程,并且可以分为特征选择和特征提取。
41.什么是支持向量机?
支持向量机是一种监督学习算法,适用于分类和回归分析。
42.关系评价技术的组成部分是什么? 关系评价技术的重要组成部分如下:
1.数据采集2.地面实况采集3.交叉验证技术4.查询类型5.评分标准6.显着性检验。
43.连续监督学习有什么不同方法? 连续监督学习问题的不同解决办法如下:
1.滑动窗口方法2.复发性推拉窗3.隐藏马尔科夫模型4.最大熵马尔科夫模型5.条件随机域6.图变换网络。
44.在机器人技术和信息处理技术的哪些方面会相继出现预测问题? 在机器人技术和信息处理技术中,相继出现预测问题的是: 1.模仿学习2.结构预测3.基于模型的强化学习。
45.什么是批量统计学习?
统计学习技术允许根据一组观察到的数据进行学习功能和预测,这可以对无法观察和未知的数据进行预测。这些技术提供的学习预测器对未来未知数据的预测提供性能保证。
46什么是PAC学习?
可能近似正确模型(PAC)学习是一个已经被引入到分析学习算法和统计效率的学习框架。
47有哪些不同的类别可以分为序列学习过程? 序列预测2.序列生成3.序列识别4.顺序决定.48什么是序列学习?
序列学习是一种以合乎逻辑的方式进行教学和学习的方法。
49.机器学习的两种技术是什么? 机器学习的两种技术是: 1.遗传编程2.归纳学习
50.你在日常工作中看到的机器学习的一个流行应用是什么? 各大电商网站上已部署好的推荐引擎使用的是机器学习。
问1:你会在时间序列数据集上使用什么交叉验证技术?是用k倍或LOOCV?
答:都不是。对于时间序列问题,k倍可能会很麻烦,因为第4年或第5年的一些模式有可能跟第3年的不同,而对数据集的重复采样会将分离这些趋势,而我们最终可能只是需要对过去几年的进行验证,这就不能用这种方法了。相反,我们可以采用如下所示的5倍正向链接策略:
fold 1 : training [1], test [2]
fold 2 : training [1 2], test [3]
fold 3 : training [1 2 3], test [4]
fold 4 : training [1 2 3 4], test [5]
fold 5 : training [1 2 3 4 5], test [6]
1,2,3,4,5,6代表的是年份。
问2:你是怎么理解偏差方差的平衡的?
答:从数学的角度来看,任何模型出现的误差可以分为三个部分。以下是这三个部分:
偏差误差在量化平均水平之上,预测值跟实际值相差多远时有用。高偏差误差意味着我们的模型表现不太好,因为没有抓到重要的趋势。而另一方面,方差量化了在同一个观察上进行的预测是如何彼此不同的。高方差模型会过度拟合你的训练集,而在训练集以外的数据上表现很差。
问3:给你一个有1000列和1百万行的训练数据集,这个数据集是基于分类问题的。经理要求你来降低该数据集的维度以减少模型计算时间,但你的机器内存有限。你会怎么做?(你可以自由做各种实际操作假设。)
答:你的面试官应该非常了解很难在有限的内存上处理高维的数据。以下是你可以使用的处理方法:
1.由于我们的RAM很小,首先要关闭机器上正在运行的其他程序,包括网页浏览器等,以确保大部分内存可以使用。
2.我们可以随机采样数据集。这意味着,我们可以创建一个较小的数据集,比如有1000个变量和30万行,然后做计算。
3.为了降低维度,我们可以把数值变量和分类变量分开,同时删掉相关联的变量。对于数值变量,我们将使用相关性分析;对于分类变量,我们可以用卡方检验。
4.另外,我们还可以使用PCA(主成分分析),并挑选可以解释在数据集中有最大偏差的成分。
5.利用在线学习算法,如VowpalWabbit(在Python中可用)是一个不错的选择。
6.利用Stochastic GradientDescent(随机梯度下降法)建立线性模型也很有帮助。
7.我们也可以用我们对业务的理解来估计各预测变量对响应变量的影响的大小。但是,这是一个主观的方法,如果没有找出有用的预测变量可能会导致信息的显著丢失。
问4:全球平均温度的上升导致世界各地的海盗数量减少。这是否意味着海盗的数量减少引起气候变化?
答:不能够这样说。这是一个“因果关系和相关性”的经典案例。全球平均温度和海盗数量之间有可能有相关性,但基于这些信息,我们不能说因为全球平均气温的上升而导致了海盗的消失。我们不能断定海盗的数量减少是引起气候变化的原因,因为可能有其他因素(潜伏或混杂因素)影响了这一现象。
问5:给你一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有1个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?
答:约有32%的数据将不受缺失值的影响。因为,由于数据分布在中位数附近,让我们先假设这是一个正态分布。我们知道,在一个正态分布中,约有68%的数据位于跟平均数(或众数、中位数)1个标准差范围内,那么剩下的约32%的数据是不受影响的。因此,约有32%的数据将不受缺失值的影响。
问6:你意识到你的模型受到低偏差和高方差问题的困扰。那么,应该使用哪种算法来解决问题呢?为什么?
答:可以使用bagging算法(如随机森林)。因为,低偏差意味着模型的预测值接近实际值,换句话说,该模型有足够的灵活性,以模仿训练数据的分布。这样貌似很好,但是别忘了,一个灵活的模型没有泛化能力,意味着当这个模型用在对一个未曾见过的数据集进行测试的时候,它会令人很失望。在这种情况下,我们可以使用bagging算法(如随机森林),以解决高方差问题。bagging算法把数据集分成重复随机取样形成的子集。然后,这些样本利用单个学习算法生成一组模型。接着,利用投票(分类)或平均(回归)把模型预测结合在一起。另外,为了应对大方差,我们可以:
1.使用正则化技术,惩罚更高的模型系数,从而降低了模型的复杂性。
2.使用可变重要性图表中的前n个特征。可以用于当一个算法在数据集中的所有变量里很难寻找到有意义信号的时候。
问7:协方差和相关性有什么区别?
答:相关性是协方差的标准化格式。协方差本身很难做比较。例如:如果我们计算工资($)和年龄(岁)的协方差,因为这两个变量有不同的度量,所以我们会得到不能做比较的不同的协方差。为了解决这个问题,我们计算相关性来得到一个介于-1和1之间的值,就可以忽略它们各自不同的度量。
问8:真阳性率和召回有什么关系?写出方程式。
答:真阳性率=召回。它们有相同的公式(TP / TP + FN)。
问9:Gradient boosting算法(GBM)和随机森林都是基于树的算法,它们有什么区别?
答:最根本的区别是,随机森林算法使用bagging技术做出预测;而GBM是采用boosting技术做预测的。在bagging技术中,数据集用随机采样的方法被划分成n个样本。然后,使用单一的学习算法,在所有样本上建模。接着利用投票或者求平均来组合所得到的预测。bagging是平行进行的,而boosting是在第一轮的预测之后,算法将分类出错的预测加高权重,使得它们可以在后续一轮中得到校正。这种给予分类出错的预测高权重的顺序过程持续进行,一直到达到停止标准为止。随机森林通过减少方差(主要方式)提高模型的精度。生成树之间是不相关的,以把方差的减少最大化。在另一方面,GBM提高了精度,同时减少了模型的偏差和方差。
问10:你认为把分类变量当成连续型变量会更得到一个更好的预测模型吗?
答:为了得到更好的预测,只有在分类变量在本质上是有序的情况下才可以被当做连续型变量来处理。
问11:“买了这个的客户,也买了......”亚马逊的建议是哪种算法的结果?
答:这种推荐引擎的基本想法来自于协同过滤。协同过滤算法考虑用于推荐项目的“用户行为”。它们利用的是其他用户的购买行为和针对商品的交易历史记录、评分、选择和购买信息。针对商品的其他用户的行为和偏好用来推荐项目(商品)给新用户。在这种情况下,项目(商品)的特征是未知的。
问12:在k-means或kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?
答:我们不用曼哈顿距离,因为它只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧氏距离是更可行的选择。例如:想象一下国际象棋棋盘,象或车所做的移动是由曼哈顿距离计算的,因为它们是在各自的水平和垂直方向做的运动。
问13:我知道校正R2或者F值是用来评估线性回归模型的。那用什么来评估逻辑回归模型?
答:我们可以使用下面的方法:
1.由于逻辑回归是用来预测概率的,我们可以用AUC-ROC曲线以及混淆矩阵来确定其性能。
2.此外,在逻辑回归中类似于校正R2的指标是AIC。AIC是对模型系数数量惩罚模型的拟合度量。因此,我们更偏爱有最小AIC的模型。
3.空偏差指的是只有截距项的模型预测的响应。数值越低,模型越好。残余偏差表示由添加自变量的模型预测的响应。数值越低,模型越好。
问14:为什么朴素贝叶斯如此“朴素”?
答:因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”。
问15:花了几个小时后,现在你急于建一个高精度的模型。结果,你建了5 个GBM(Gradient Boosted Models),想着boosting算法会展现“魔力”。不幸的是,没有一个模型比基准模型表现得更好。最后,你决定将这些模型结合到一起。尽管众所周知,结合模型通常精度高,但你就很不幸运。你到底错在哪里?
答:据我们所知,组合的学习模型是基于合并弱的学习模型来创造一个强大的学习模型的想法。但是,只有当各模型之间没有相关性的时候组合起来后才比较强大。由于我们已经试了5个GBM也没有提高精度,表明这些模型是相关的。具有相关性的模型的问题是,所有的模型提供相同的信息。例如:如果模型1把User1122归类为1,模型2和模型3很有可能会做同样的分类,即使它的实际值应该是0,因此,只有弱相关的模型结合起来才会表现更好。
第五篇:总结备用
“知荣明耻,我们先行”系列活动之 “美好生活,健康先行”义诊活动总结
[日期:2006/5/12] 来源: 作者:第一临床医学院研究生团总支、研究会
4月27日下午第一临床医学院研究生团总支、研究生会联合暨南大学社区卫生服务中心在邵逸夫体育馆前成功举行了主题为“美好生活,健康先行”的义诊活动。
这次义诊活动得到了华侨医院和暨南大学社区卫生服务中心多个科室的大力支持,心血管科,儿科,传染科,老龄病科,眼科,外科等多个科室都参与了本次义诊活动。各科专家都对每个前来咨询就诊者进行了耐心详细地回答及诊治,并且按照相应病症发送了免费药品,受到了大家的好评。活动中最引人注意的是血压血糖测试与血型检验,参加测试者也呈现出不同的年龄分布,其中血压血糖测试者多是年龄较大的长者,进行测试的医师与研究生分别就高血压、糖尿病的预防以及诊治耐心解答了测试者的疑问;而广大同学则对血型的检验产生出浓厚的兴趣,希望快速准确地知道自己的血型。义诊活动的同时,在校医室二楼的健康教育宣教室,还进行了两场题为“中风的早期识别与预防”与“老年性白内障的预防与治疗”的专题讲座。
本次服务社区义诊活动,使同学们又一次得到锻炼,不仅再一次在实践中深切体会到了“八荣八耻”的内涵,使我们的荣辱观有了更新更深刻地认识,还为我院研究生暑期“送医送药三下乡”实践活动积累了宝贵经验。本次活动,从前期策划、宣传,中期活动部署、现场组织,及后期宣传、总结都落实到部门,责任到个人,使我们学生干部在活动中得到了锻炼,提高了能力,加强了凝聚力。宣传部担负着本次系列活动的前期宣传,及后期网络宣传,宣传及时,力度及覆盖面达到了预期效果,在本次活动中工作重,表现出色。学术部在每次活动后,能即时做出活动总结;综合活动部、社会实践部,在活动组织、筹办中也起到了积极作用。
在各部门的积极配合协作下我们的工作得以圆满完成,但是我们的工作中也存在着许多不足之处,需要我们进一步思考。首先,奖励及惩罚机制不明确,个别学生干部推脱工作,造成工作延误,影响大局。今后需要进一步明确奖罚制度,建立更好的约束和鼓励机制,使工作踏实、负责的干部脱颖而出。
二、对工作部署和责任分配不够明晰,沟通不够,造成工作中出现死角。今后要加强学生干部之间的交流,有问题,有困难都要沟通,要交流,将不良情绪疏导,将困难化解,相信领导、老师和集体的力量,大家一起努力把问题解决。
三、还需进一步加大动员广大研究生同学参加学生活动的力度。从实际出发,为广大同学着想,开展真正服务于广大研究生同学的活动,加大在广大同学重的宣传和号召力,吸引更多同学参加到我们的活动中来,让他们在活动中收获友谊、成就感和欢笑。
感谢第一临床医学院领导、老师的大力支持,我们的活动得以圆满完成。在将来的工作中,我们将继续发扬第一临床医学院研究生团总支、研究生会团结一致、踏踏实实、甘于奉献的优良作风,改进我们的工作方法,提高我们的工作效率,更加务实,更加积极地为我院研究生服务。
第一临床医学院研究生团总支、研究生会
顺义区民政局:
为了更好的贯彻落实党的十七大精神,积极推动社会主义新农村建设,构建社会主义和谐社会,我院根据中央宣传部、中央文明办、卫生部等十四部委关于深入开展文化科技卫生“三下乡”活动的通知精神,积极响应顺义区文明办、卫生局“深入开展卫生下乡活动”的号召,分别于2010年4月、5月、6月、10月和11月,为牛栏山镇、赵全营镇、天竺镇、后沙峪镇、马坡镇、高丽营镇、北石槽镇、李桥镇、仁和镇九镇村民进行免费义诊的活动。此次活动是我院积极响应顺义区文明办、卫生局“开展送医下乡活动”号召所组织的一次为民举措,受到了广大农民朋友的热烈欢迎,赢得了良好的社会口碑。现将这二次次卫生下乡活动情况作总结报告:
一、义诊队组织构成和作用
在100天的“送医下乡”活动中我院始终坚持每天出动医疗车二辆,15人组成的义诊医疗队,义诊队医师均系我医院医疗骨干,从医多年,他们之中有学科带头人及我院各科先进医务人员。
在此次活动中部分义诊专家不顾年迈体弱,不顾寒热风雨,坚持下乡(如外科专家陆世英主任,70多岁,副主任医师),为解除农民疾苦做出了无私的奉献,得到各级领导的支持和村民们的认可,是当前我区一支医术精湛、服务热情的义诊队伍,为社会所瞩目、所称赞。
这次开展的义诊活动我们主要服务对象为顺义城区周边九个乡镇,据统计,其中咨询检查人数12827人、体检人数10323人,此次活动费用均由我院出资,为病人节省各种医疗诊疗费900160元(见附表一)。卫生下乡活动深受广大村民的欢迎,不但解除了村民疾病隐患,减轻了他们的经济负担,同时也强化了村民卫生健康意识,使广大村民积极主动参与疾病检查。使他们认识到只有定期进行身体检查,才能预防疾病,健康的体魄才能全身心的投入到生产建设中,更好的为社会主义建设服务,实现全面小康社会。
二、2010义诊人数统计(见附表二)
三、各科诊治情况
在12827个咨询人数和10323个体检人数中:内科12322例;外科12242例;妇科8376例;血糖检测8280例;心电图检查10172例;肝、胆、脾、胰、肾等腹部b超检查10036例。
四、统计病例
义诊活动中,常见疾病比例:高血压3562例;脂肪肝2976例;糖尿病1982例;妇科疾病2322例;肩周炎颈椎病1237例;腰椎肩盘突出腰肌劳损1263例;胆肾结石471例;心肌缺血心肌炎219例;子宫肌瘤136例等。
五、义诊活动敲响健康检查警钟
在这次义诊活动中,我们感觉到了人们的健康意识和以前相比有了很大的提高,很多村民都积极的参加了检查。但也普遍存在很多问题引起了我们的注意:
1、健康意识差;
我们进行检查,主要目的是为了通过检查发现是否有潜在的疾病,以便及时采取预防和治疗措施。健康体检不是指在我们生病之后做的各种检查,而是应该定期的去做全面的身体检查。在4月30日赵全营马家堡村义诊中,81岁的村民李卫琴在进行妇科检查时,医生发现宫颈息肉建议她进行治(转载自本网http://www.xiexiebang.com,请保留此标记。)疗,通过医生询问,老人之前没有做过身体检查,对自己的病情也一无所知,而且觉得自己已经这么大岁数了,有点小病也就每必要去医院了,直到现在,老人依然没有来医院就诊;在5月13日后沙峪回民营清岚花园小区义诊中,村民刘明芹在进行妇科检查时,医生发现她的腹部按下去非常硬,通过b超检查后发现,里面己被疑似瘤状的不明实体物填满(大13.5cm,初诊为子宫肌瘤),医生建议到医院做全面检查进行确诊。经过了解得知她只是感觉腹部胀满,没有食欲,所以一直没有放在心上,如果不是这次义诊活动可能还不会认识到病情的严重性。所以,当专家告知其病情后,她第二天就去医院做了全面检查被确诊为特大子宫肌瘤并进行了手术。
2、亚健康人群较多;
针对本次体检,我们发现农村有相当多的一部分人已处在临床疾病边缘,亚健康人群较多,但往往这部分人对此漠不关心,对于健康的人而言,必须依据年龄和性别的不同对身体实行定期检查。例如每年至少就要进行一次身体全面检查。
3、妇科检查怕羞;
活动中,有些村的村民不太愿意做妇科检查,还有些女性认为自
己都六十多岁了,没有必要在做什么检查了。其实这些认识都是存在误区的,只有提高健康检查意识,才能做到防患于未然。
4、自恃身体好不用再检查;
很多人将健康体检视为可有可无,还有的人自恃身体好对体检不以为然,其实健康体检是对身体健康状况的一次核实,不仅要按时做,而且检查出有问题后,要及时去医院治疗,不要等到病情严重后才追悔未及。
六、“送医下乡”义诊活动真诚为民,在社会上赢得了广泛赞誉
我院积极响应顺义区文明办、卫生局“深入开展卫生下乡活动”的号召,组织了此次送医下乡义诊活动。通过深入开展卫生下乡活动,及时发现了广大村民的潜在病情,并向村民普及健康知识,在一定程度上提高了村民对健康的重视。
这次义诊活动是社会主义和谐新农村建设的生动体现,是贯彻落实党的十七大精神的具体实践,是积极响应顺义区政府为民举措的实际表现,充分发挥了医疗卫生单位联系党和人民群众的纽带作用,使广大人民群众真正感到了党的关怀。
这次活动既收集了农民群众健康信息基本的情况,又切实为农民群众,特别是中老年群众提供了优质的医疗保健服务,促进了农民群众对疾病的重视。这次活动充分体现了顺义区精神文明办公室和卫生局对农民的关心,加深了相关部门与农民的关系,同时也为顺义农村医疗卫生事业的进一步发展奠定了良好的基础。当然活动中也有一些不足之处,也有一定局限性,如由于时间限制不能每个镇(村)都去,有的镇(村)会有看法;由于每天工作量的限制,去的村也不能把村上所有村民都检查,有些村民会有不满的情绪等,所以这就要求我们与各村委会、村民之间多沟通与交流,并争取在09年继续开展“送医下乡”活动,到其它镇(村)进行义诊为更多村民体检。
总之,这次“送医下乡”义诊活动受到了广大农民群众的欢迎和赞赏,得到了农民群众的认可,为保障人民群众健康、创建和谐社会、建设社会主义新农村,做出了应有的贡献。
您可以访问本网(www.xiexiebang.com)查看更多与本文《2010医院“送医下乡”义诊活动总结》相关的文章。
临床系义诊活动总结
一、活动目的及意义 :
在临床系老师的正确指导下,在学生会各个部门的关心下,在青协和实践部的大力配合下,通过全体成员的共同努力工作,此次活动取得圆满成功!
这次临床系出队义诊意义重大。活动受到敬老院老人的好评,同时,在活动期间,宣传了我校的中医药文化,以及对我校的学生提供了一个锻炼的平台,增强了学生的责任心,团体意识,以及增强了推拿手法以及医学知识的进一步掌握,同时锻炼出一班骨干人才。
对我们而言,义诊活动使我们医学生有了可以进一步掌握测血压,听心肺音法„„的锻炼,同时使我们提高了与人交流的表达能力。大学是一个小社会,步入大学就等于步入半个社会。我们不再是象牙塔里不能受风吹雨打的花朵,通过社会实践的磨练,我们深深地认识到社会实践是一笔财富。
大学学什么?肯定不只是专业知识,另一方面更要学会怎么融入这个大时代大背景。别人总是戏称没读大学出来打工的叫读“社会大学”,但是我觉得“社会大学”也是我们这些含着大学金钥匙的人必须要修读的。
二、活动优势:
通过开展义诊社会实践活动,使我们逐步了解了社会,开阔了视野,增长了才干,并在社会实践活动中认清了自己的位置,发现了自己的不足,对自身价值能够进行客观评价。这在无形中使我们对自己有一个正确的定位,增强了我们努力学习的信心和毅力。在此次实践过程中我们学到在书本中学不到的知识,它让你开阔视野、了解社会、深入生活、回味无穷。
“纸上得来终觉浅,绝知此事要躬行”。社会实践使同学们找到了理论与实践的最佳结合点。尤其是我们医学生,只重视理论学习,忽视实践环节,往往在实际工作岗位上发挥的不很理想,所以以后的实习课显得十分重要,而我们作为大一新生离实习还有大段时间,义诊就成为我们实习的第一个平台。通过实践所学的专业理论知识得到巩固和提高。就是紧密结合自身专业特色,在实践中检验自己的知识和水平。通过实践,原来理论上模糊和印象不深的得到了巩固,原先理论上欠缺的在实践环节中得到补偿,加深了对基本原理的理解和消化。
三、活动中的不足及改进的方法
“天将降大任于斯人也。必先苦其心志,劳其筋骨,饿其体肤„„”。尽管义诊结束后,手法理疗进行了长时间后,大家都十分累,但是因为能为人民服务,同时,提高了自己而乐此不疲。
但是,此行还暴露了一些问题。例如:开始,义诊中个别表现出来手法不够熟悉,有些同学有点紧张。但在老师的指导下,很快同学们操作起来就得心应手了。
作为医学生的我们,应该重视平时实验课的操作和要理,加强课后练习,多向老师进行请教和加强经验交流,熟悉和掌握一些基本操作!
四、感想和期望
社会是一所更能锻炼人的综合性大学,只有正确的引导我们深入社会,了解社会,服务于社会,投身到社会实践中去,才能使我们发现自身的不足,为今后走出校门,踏进社会创造良好的条件;才能使我们学有所用,在实践中成才,在服务中成长,并有效的为社会服务,体现大学生的自身价值。
今后的工作中,是在过去社会实践活动经验的基础上,不断拓展社会实践活动范围,挖掘实践活动培养人才的潜力,坚持社会实践与了解国情,服务社会相结合,为国家与社会的全面发展出谋划策。坚持社会实践与专业特点相结合,为地方经济的发展贡献力量为社会创造了新的财富。
此次实践之行,是临床系给了我们学习实践的机会,是学校给了我们极大的支持和信任,我们作为国家的后继力量,只有懂得全面的发展自己,把理论与实际相结合,才能更好地投入到祖国的医疗事业中去,“艰辛知人生,实践长才干”!
临床系义诊活动总结的延伸内容:工作总结的结构形式是什么?它的内容又包括哪些?
年终总结(含综合性总结)或专题总结,其标题通常采用两种写法,一种是发文单位名称+时间+文种,如《铜仁地区烟草专卖局2004年工作总结》;另一种是采用新闻标题的形式,如松桃县大兴访送部的卷烟零售户诚信等级管理专题总结:《客户争等级,诚信稳销量》。
正文一般分为如下三部分表述:
1、情况回顾 这是总结的开头部分,叫前言或小引,用来交代总结的缘由,或对总结的内容、范围、目的作限定,对所做的工作或过程作扼要的概述、评估。这部分文字篇幅不宜过长,只作概括说明,不展开分析、评议。
2、经验体会 这部分是总结的主体,在第一部分概述情况之后展开分述。有的用小标题分别阐明成绩与问题、做法与体会或者成绩与缺点。如果不是这样,就无法让人抓住要领。专题性的总结,也可以提炼出几条经验,以起到醒目、明了。运用这种方法要注意各部分之间的关系。各部分既有相对的独立性,又有密切的内在联系,使之形成合力,共同说明基本经验。
3、今后打算 这是总结的结尾部分。它是在上一部分总结出经验教训之后,根据已经取得的成绩和新形势、新任务的要求,提出今后的设法、打算,成为新一年制订计划的依据。内容包括应如何发扬成绩,克服存在问题及明确今后的努力方向。也可以展望未来,得出新的奋斗目标。
From: 两全其美网校城(http://www.lqqm.net)Url:http://www.lqqm.net/article-187947-1.html