【机器学习】补完计划

机器学习补完计划

发现之前的帖子太长了,拆了整理一下,理一理以前的笔记,其实代码实现和数学推导更加有助于理解
PS:任天堂特邀嘉宾来举例子
波克基斯玛狃拉比卡超
波克基斯、玛狃拉,比卡超


四个主要任务

分类(classification):将实例数据划分到合适的类别中。应用实例:判断辣鸡邮件(二分类 ),手写数字的自动识别(多分类)
回归(regression):主要用于预测数值型数据。应用实例:股票价格波动的预测,房屋价格的预测等。
聚类:在无监督学习中,将数据集分成由类似的对象组成多个类的过程称为聚类。
密度估计:在无监督学习中,通过样本分布的紧密程度,来估计与分组的相似性。

一些衍生的算法

强化学习
这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。 属于这一类算法的有马尔可夫决策过程。


1.k-近邻(kNN, k-NearestNeighbor)分类与回归

主要思想: k 近邻算法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类。k 近邻算法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其 k 个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此,k近邻算法不具有显式的学习过程。

算法实现: k 近邻算法实际上利用训练数据集对特征向量空间进行划分,并作为其分类的“模型”。 k值的选择、距离度量以及分类决策规则是k近邻算法的三个基本要素。举个例子,要把口袋妖怪分类,可爱型和凶残型的。那么据此分类的一些已知的特征有有尖爪的数量,暖色调的颜色的数量。(1)求得未知妖怪的这些特征和已知类型妖怪的距离,(2)排序,(3)假定K=3,选取这K个中最多的分类类别,就是选出距离最近的三个妖怪,(4)假如都是可爱型的,那么这个妖怪就是可爱型的。以上就是一个伪代码的实现过程。

一些实现时候的注意:

  • 距离度量 通常为 欧式距离(Euclidean distance),还可以是 Minkowski 距离 或者 曼哈顿距离。
  • 算法(sklearn 上有三种):Brute Force 风暴计算/线性扫描;KD Tree 使用二叉树根据数据维度来平分参数空间;Ball Tree 使用一系列的超球体来平分训练数据集。树结构的算法都有建树和查询两个过程,Brute Force 没有建树的过程。
  • 缺点: 时间和空间复杂度高(相对的就是准确率高)

2.决策树(Decision Tree)分类与回归

主要思想: 决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。决策树学习通常包括 3 个步骤:特征选择、决策树的生成和决策树的修剪。

补充信息论(information theory)中的熵(香农熵): 是一种信息的度量方式,表示信息的混乱程度,也就是说:信息越有序,信息熵越低。例如:火柴有序放在火柴盒里,熵值很低,相反,熵值很高。

伪代码:
收集数据:可以使用任何方法。
准备数据:树构造算法 (这里使用的是ID3算法,只适用于标称型数据,这就是为什么数值型数据必须离散化。 还有其他的树构造算法,比如CART)
分析数据:可以使用任何方法,构造树完成之后,我们应该检查图形是否符合预期。
训练算法:构造树的数据结构。
测试算法:使用训练好的树计算错误率。
使用算法:此步骤可以适用于任何监督学习任务,而使用决策树可以更好地理解数据的内在含义。

3.朴素贝叶(Naive Bayesian Model)分类

主要思想: 在每个特征同等,且相互独立这两重要的条件下,选择概率高的那一类。


4.逻辑回归(Logistic regression)其实是分类的。

回归的概念: 假设现在有一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归。
主要思想是: 根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。在实现上主要是依Sigmoid函数引入非线性因素来实现拟合的过程,但是不是避免的,就有可能会陷入局部最优的尴尬境地,错失最优解。

解疑:(来自学习资料)
梯度上升法和梯度下降法:其实这个两个方法在此情况下本质上是相同的。关键在于代价函数(cost function)或者叫目标函数(objective function)。如果目标函数是损失函数,那就是最小化损失函数来求函数的最小值,就用梯度下降。 如果目标函数是似然函数(Likelihood function),就是要最大化似然函数来求函数的最大值,那就用梯度上升。在逻辑回归中, 损失函数和似然函数无非就是互为正负关系。

伪代码:
每个回归系数初始化为 1
重复 R 次:
    计算整个数据集的梯度
    使用 步长 x 梯度 更新回归系数的向量
返回回归系数

Q&A:

logistic回归为什么要用sigmoid函数推荐回答1 这个问题好比为什么圆可以用标准方程来表示一样而已,LR就是sigmoid函数的一个应用而已。LR用来处理预测结果为0-1的二值分类问题,这里假设了二值满足了伯努利分布(即零一分布),而伯努利分布是满足指数族分布的。

线性回归适用于因变量(随自变量而变)是连续的模型,即特征和结果满足线性,但是实际有的因变量是离散型机率分布。
随机变量X服从逻辑斯蒂分布,即X的累积分布函数为上文提到过的logistic function。对分布函数求导得到了概率密度函数。
如果对分布函数求导得到了概率密度函数,做累加就会得到sigmoid function。而且又对一个二分类事件发生的几率odds的对数有线性的关系,输出Y=1的对数几率是由输入x的线性函数表示的模型,所以适合用来做线性的描述。
(这里解释的是为什么可以做成概率模型)线性回归是连续型模型,用于分类的问题时受噪声影响比较大,logistic回归是非线性模型(上文),本质上是线性回归模型,但logistic回归巧妙之处在于其将结果值经一层函数映射在0-1上,即在特征到结果的映射中加入了一层函数映射(对数损失函数),也就是本文的sigmoid function。
推荐回答2这里的角度2,从贝叶斯概率模型来看,是可以用sigmoid function来逼近后验概率P=(y=1|X)的。


5.支持向量机(Support Vector Machines, SVM) 监督学习

主要思想: 支持向量(Support Vector)就是离分隔超平面最近的那些点,算法的核心就是找这个超平面。

解疑:
数据可以通过画一条直线就可以将它们完全分开,这组数据叫线性可分(linearly separable)数据,而这条分隔直线称为分隔超平面(separating hyperplane)
如果数据集上升到1024维呢?那么需要1023维来分隔数据集,也就说需要N-1维的对象来分隔,这个对象叫做超平面(hyperlane),也就是分类的决策边界

常用解法:(这个还是单独写个帖子八)

  • 拉格朗日乘子法
  • SMO 高效优化算法

6.集成学习 ensemble method

主要思想: 没错就是字面意思,第一步:(bagging: 自举汇聚法 bootstrap aggregating): 是基于数据随机重抽样分类器构造的方法,第二步:(boosting): 是基于所有分类器的加权求和的方法。

解疑: bagging 和 boosting 区别是什么?

  • bagging 是一种与 boosting 很类似的技术, 所使用的多个分类器的类型(数据量和特征量)都是一致的。
  • bagging 是由不同的分类器(1.数据随机化 2.特征随机化)经过训练,综合得出的出现最多分类结果;boosting
    是通过调整已有分类器错分的那些数据来获得新的分类器,得出目前最优的结果。
  • bagging 中的分类器权重是相等的;而 boosting
    中的分类器加权求和,所以权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。

随机森林:利用多棵树对样本进行训练并预测的一种分类器。决策树多了就变森林。。。关键的是, 在处理数据的时候,数据的随机性化,待选特征的随机化,这样就可以增强鲁棒性,同时也提升分类性能。

AdaBoost (adaptive boosting: 自适应 boosting) :使用弱分类器和多个实例来构建一个强分类器,最后再加权得出结果。


7.回归(Regression)

主要思想:之前提到的分类的目标变量是标称型数据,而回归则是对连续型的数据做出处理,回归的目的是预测数值型数据的目标值。
回归系数(regression weights):求这些回归系数的过程就是回归。一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值
待续。。。


8. K-Means(K-均值)聚类算法

主要思想: 将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。聚类与分类算法的最大区别在于, 分类的目标类别已知, 而聚类的目标类别是未知的(K是未知的)。


9.树回归 CART(Classification And Regression Trees, 分类回归树)

主要思想:


学习资料出处:AiLearning

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值