可以利用无监督学习解决的问题,大致分为两类:
关联分析:发现不同事物之间同时出现的概率。在购物篮分析中被广泛地应用。如果发现买面包的客户有百分之八十的概率买鸡蛋,那么商家就会把鸡蛋和面包放在相邻的货架上。
聚类问题:将相似的样本划分为一个簇(cluster)。与分类问题不同,聚类问题预先并不知道类别,自然训练数据也没有类别的标签。
维度约减:顾名思义,维度约减是指减少数据的维度同时保证不丢失有意义的信息。利用特征提取方法和特征选择方法,可以达到维度约减的效果。特征选择是指选择原始变量的子集。特征提取是将数据从高纬度转换到低纬度。广为熟知的主成分分析算法就是特征提取的方法。
下面介绍的第六-第八(Apriori算法,K-means算法,PCA主成分分析)都属于无监督学习。
3. 强化学习
通过学习可以获得最大回报的行为,强化学习可以让agent(个体)根据自己当前的状态,来决定下一步采取的动作。
强化学习算法通过反复试验来学习最优的动作。这类算法在机器人学中被广泛应用。在与障碍物碰撞后,机器人通过传感收到负面的反馈从而学会去避免冲突。在视频游戏中,我们可以通过反复试验采用一定的动作,获得更高的分数。Agent能利用回报去理解玩家最优的状态和当前他应该采取的动作。
1.常见机器学习算法概念简介:
1、监督学习(SupervisedLearning):有类别标签的学习,基于训练样本的输入、输出训练得到最优模型,再使用该模型预测新输入的输出;
代表算法:决策树、朴素贝叶斯、逻辑回归、KNN、SVM、神经网络、随机森林、AdaBoost、遗传算法;
2、半监督学习(Semi-supervisedLearning):同时使用大量的未标记数据和标记数据,进行模式识别工作;
代表算法:self-training(自训练算法)、generative models生成模型、SVMs半监督支持向量机、graph-basedmethods图论方法、 multiviewlearing多视角算法等;
3、无监督学习(UnsupervisedLearning):无类别标签的学习,只给定样本的输入,自动从中寻找潜在的类别规则;
代表算法:主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法、局部切空间排列方法等;
4、HOG特征:全称Histogram of Oriented Gradient(方向梯度直方图),由图像的局部区域梯度方向直方图构成特征;
5、LBP特征:全称Local Binary Pattern(局部二值模式),通过比较中心与邻域像素灰度值构成图像局部纹理特征;
6、Haar特征:描述图像的灰度变化,由各模块的像素差值构成特征;
7、核函数(Kernels):从低维空间到高维空间的映射,把低维空间中线性不可分的两类点变成线性可分的;
8、SVM:全称Support Vector Machine(支持向量机),在特征空间上找到最佳的超平面使训练集正负样本的间隔最大;是解决二分类问题的有监督学习算法,引入核方法后也可用来解决非线性问题;
9、Adaboost:全称Adaptive Boosting(自适应增强),对同一个训练集训练不同的弱分类器,把这些弱分类器集合起来,构成一个更强的强分类器;
10、决策树算法(Decision Tree):处理训练数据,构建决策树模型,再对新数据进行分类;
11、随机森林算法(Random Forest):使用基本单元(决策树),通过集成学习将多棵树集成;
12、朴素贝叶斯(Naive Bayes):根据事件的先验知识描述事件的概率,对联合概率建模来获得目标概率值;
13、神经网络(Neural Networks):模仿动物神经网络行为特征,将许多个单一“神经元”联结在一起,通过调整内部大量节点之间相互连接的关系,进行分布式并行信息处理。
2.其余理论知识
偏差
偏差度量了模型的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力。偏差则表现为在特定分布上的适应能力,偏差越大越偏离真实值。
方差
方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响。方差越大,说明数据分布越分散。
噪声
噪声表达了在当前任务上任何模型所能达到的期望泛化误差的下界, 即刻画了学习问题本身的难度 。
过拟合的原因在于:
参数太多,模型复杂度过高;
建模样本选取有误,导致选取的样本数据不足以代表预定的分类规则;
样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
假设的模型无法合理存在,或者说是假设成立的条件实际并不成立。
欠拟合的原因在于:
特征量过少;
模型复杂度过低。
Q3怎么解决欠拟合?
增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间;
添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强;
减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数;
使用非线性模型,比如核SVM 、决策树、深度学习等模型;
调整模型的容量(capacity),通俗地,模型的容量是指其拟合各种函数的能力;
容量低的模型可能很难拟合训练集。
Q4怎么解决过拟合?(重点)
获取和使用更多的数据(数据集增强)——解决过拟合的根本性方法
特征降维:人工选择保留特征的方法对特征进行降维
加入正则化,控制模型的复杂度
Dropout
Early stopping
交叉验证 增加噪声
因此,逻辑回归的目标便是训练数据找到适当的参数的值,使得预测的输出和实际的输出最小。我们使用最大似然估计来对参数进行估计。
分类回归树是诸多决策树模型的一种实现,类似还有ID3、C4.5、CART等算法。
非终端节点有根节点(Root Node)和内部节点(Internal Node)。终端节点是叶子节点(Leaf Node)。每一个非终端节点代表一个输出变量X和一个分岔点,叶叶子节点代表输出变量Y,见图3。沿着树的分裂(在分岔点做一次决策)到达叶子节点,输出便是当前叶子节点所代表的值。
P(h|d)=后验概率。这是在给定数据d的前提下,假设h为真的概率。
P(d|h)=可能性。这是在给定假设h为真的前提下,数据d的概率。
P(h)=类先验概率。这是假设h为真时的概率(与数据无关)
P(d)=预测器先验概率。这是数据的概率(与假设无关)
K最近邻算法是利用整个数据集作为训练集,而不是将数据集分成训练集和测试集。
当要预测一个新的输入实体的输出时,k最近邻算法寻遍整个数据集去发现k个和新的实体距离最近的实体,或者说,k个与新实体最相似的实体,然后得到这些输出的均值(对于回归问题)或者最多的类(对于分类问题)。而k的值一般由用户决定。
不同实体之间的相似度,不同的问题有不同的计算方法,包括但不限于:Euclidean distance 和Hamming distance。
无监督学习算法
6. 关联规则算法
关联规则算法在数据库的候选项集中用来挖掘出现频繁项集,并且发现他们之间的关联规则。关联规则算法在购物篮分析中得到了很好的应用。所谓的购物篮分析,是指找到数据库中出现频率最高的事物的组合。通常,如果存在关联规则:“购买了商品x的人,也会购买商品y”,我们将其记作:x–y。
比如,如果一个人购买了牛奶和糖,那么他很有可能会购买咖啡粉。在充分考虑了支持度(support)和置信度(confidence)后,得到关联规则。
支持度(support)检验项目集是否频繁。支持度的检验是符合Apriori原理的,即当一个项目集是频繁的,那么它所有的子集一定也是频繁的。
我们通过置信度(confidence)的高低,从频繁项集中找出强关联规则。
根据提升度(lift),从强关联规则中筛选出有效的强关联规则。
主成分分析是通过减少变量的维度,去除数据中冗余的部分或实现可视化。基本的思路将数据中最大方差的部分反映在一个新的坐标系中,这个新的坐标系则被称为“主要成分”。其中每一个成分,都是原来成分的线性组合,并且每一成分之间相互正交。正交性保证了成分之间是相互独立的。
第一主成分反映了数据最大方差的方向。第二主成分反映了数据中剩余的变量的信息,并且这些变量是与第一主成分无关的。同样地,其他主成分反映了与之前成分无关的变量的信息。
集成学习是一种将不同学习模型(比如分类器)的结果组合起来,通过投票或平均来进一步提高准确率。一般,对于分类问题用投票;对于回归问题用平均。这样的做法源于“众人拾材火焰高”的想法。
集成算法主要有三类:Bagging,Boosting 和Stacking。本文将不谈及stacking。
9. 使用随机森林Bagging
随机森林算法(多个模型)是袋装决策树(单个模型)的提升版。
Bagging的第一步是针对数据集,利用自助抽样法(Bootstrap Sampling method)建造多个模型。
所谓的自助抽样,是指得到一个由原始数据集中随机的子集组成的新的训练集。每一个这样的训练集都和原始训练集的大小相同,但其中有一些重复的数据,因此并不等于原始训练集。并且,我们将原始的数据集用作测试集。因此,如果原始数据集的大小为N,那么新的训练集的大小也为N(其中不重复的数据数量为2N/3),测试集的大小为N。
Bagging的第二步是在抽样的不同的训练集上,利用相同的算法建造多个模型。
在这里,我们以随机森林为例。决策树是靠每一个节点在最重要的特征处分离来减小误差的,但与之不同,随机森林中,我们选择了随机塞选的特征来构造分裂点。这样可以减小所得预测之间的相关性。
每一个分裂点搜索的特征的数量,是随机森林算法的参数。
因此,用随机森林算法实现的Bagging,每一个树都是用随机样本构造的,每一个分裂点都是用随机的预测器构造的。
线性模型
数据预处理:
一般的线性回归模型要求属性的数据类型为连续值,故需要对离散属性进行连续化。
离散属性连续化
分两种情况
属性值之间有序:也即属性值有明确的大小关系,比方说把二值属性“身高”的取值 {高,矮} 可转化为 {1.0,0.0},三值属性 “高度”的取值 {高,中,低} 转换(编码)为 {1.0,0.5,0.0};
属性值之间无序:若该属性有 k个属性值,则通常把它转换为 k 维向量,比方说把无序离散属性 “商品” 的取值 {牙膏,牙刷,毛巾} 转换为 (0,0,1),(0,1,0),(1,0,0)。 这种做法在 自然语言处理和推荐系统 实现中很常见,属性 “单词” 和 “商品” 都是无序离散变量,在建模前往往需要把这样的变量转换为哑变量,否则会引入不恰当的序关系,从而影响后续处理(比如距离的计算)。
最大化对数似然函数求θ \thetaθ,相当于最小化对数似然函数的相反数。
求解模型,就是要求解参数的取值
这个是直接求解
这个就是模型训练的