精华内容
下载资源
问答
  • 继续是机器学习课程的笔记,本节课的内容主要是一些机器学习应用的建议,包括对假设的评估,如何处理过拟合和欠拟合等。

    继续是机器学习课程的笔记,本节课的内容主要是一些机器学习应用的建议,包括对假设的评估,如何处理过拟合和欠拟合等。

    觉得下一步做什么

    到目前为止,我们已经学习了线性回归,逻辑回归以及神经网络,梯度下降等算法,我们已经可以对给定一个训练集使用上述一种算法来训练,得到模型,然后进行预测,但是接着问题就来了,如果得到的预测结果误差很大,那么应该如何减少误差,提高准确率呢?

    这里还是使用房价问题作为例子,当使用一个线性回归模型来预测房价,但是发现训练好的模型来预测未知数据的时候,发现有较大误差,那么接下来可以采取的办法有以下几种:

    1. 获得更多的实例——通常是有效的,但是代价比较大,有时候有些数据是不容易采集的,所以可以先考虑后面几种方法
    2. 减少特征的数量
    3. 增加更多的特征
    4. 增加二项式特征,如x21,x22,x1x2
    5. 减小归一化因子λ
    6. 增大归一化因子λ

    虽然有这么多方法,但是我们不应该随机选择上面的某种方法来改进我们的算法,而是运用一些机器学习诊断法来帮助我们知道上面哪些方法对我们的算法是有效的。

    误差分析

    这里主要介绍如何检验算法是否过拟合了。

    首先是将数据分成训练集和测试集,通常用70%的数据作为训练集,剩余的30%的数据做为测试集。注意,训练集和测试集均要包括有各种类型的数据,而且通常要对数据进行打乱顺序,然后随机生成训练集和测试集。

    在通过训练集学习到模型的参数后,就需要使用测试集来使用该模型进行预测并计算误差。这里分为线性回归和逻辑回归两种情况:

    1. 对于线性回归模型,利用测试集数据计算代价函数Jtest(θ)=12mtestmtesti=1(hθ(x(i)test)y(i)test)2
    2. 对于逻辑回归模型,同样可以用测试集数据集来计算代价函数:
      Jtest(θ)=1mtesti=1mtesty(i)testloghθ(x(i)test)+(1y(i)test)loghθ(x(i)test)

      还可以计算误分类的比率,对于每一个测试集实例,计算:
      err(hθ(x),y)={1 if h(x)0.5 and y=0,or if h(x)<0.5,and y=10 Otherwise

      然后对结果计算平均:error=1mtestmtesti=1err(hθ(x(i)test),y(i))

    这里误分类的计算是由于在之前的[逻辑回归][1]中,我们是如此定义分类的:

    • hθ0.5,预测y=1
    • hθ<0.5,预测y=0

    模型选择(交叉验证集)

    假设对一个特定的数据集,要确定最合适的多项式次数,或者是怎么选用正确的特征,或者是选择正则化参数λ来构建学习算法,这些问题都称之为模型选择

    这里举例说明如何进行模型选择。假设我们要在10个不同次数的二项次模型之间进行选择:

    1.hθ(x)=θ0+θ1x2.hθ(x)=θ0+θ1x+θ2x23.hθ(x)=θ0+θ1x++θ3x310.hθ(x)=θ0+θ1x++θ10x10

    显然越高次数的二项式模型能够适应训练数据集,但是这种情况就可能是过拟合,也就是不能推广至一般情况,因此我们需要选择的是一个更能适应一般情况,即泛化能力更好的模型,这里就需要使用交叉验证集来帮助选择模型。

    所以一般将数据集按下列方式分成训练集,交叉验证集以及测试集:

    • 使用60%的数据作为训练集
    • 使用20%的数据作为交叉验证集
    • 使用20%的数据作为测试集

    上述方法是一个比较经典的分法,可以按照实际需要调整比例。

    所以模型选择的方法为:

    1. 使用训练集训练出10个模型
    2. 用10个模型分别对交叉验证集计算得出交叉验证误差,即代价函数的值
    3. 选择代价函数值最小的模型
    4. 使用上一步中选择的模型对测试集计算得到推广误差,即代价函数的值

    偏倚和偏差诊断(Diagnosis Bias Vs Variance)

    高偏倚和高偏差的问题基本上就是低拟合和过拟合的问题。

    假设还是房价问题,有以下三种模型,分别对应下面三幅图,其分别就是低拟合,刚刚好以及过拟合三种情况:
    这里写图片描述

    通常我们会将训练集和交叉验证集的代价函数误差与多项式的次数绘制在同一张图表上来帮助分析,如下所示:
    这里写图片描述

    由上图可以得知:

    • 对于训练集,当多项式次数d较小时,误差比较大,模型拟合程度很低;随着d的增大,误差减小,拟合程度提高;
    • 对于交叉验证集,当d较小时,误差比较大,模型拟合程度低;当d开始增大时,误差会呈现先减小后增大的趋势,转折点就是模型开始过拟合训练集的时候。

    此外,通过上图也可以进行判断是偏倚还是偏差:

    • 训练集误差和交叉验证集误差比较接近时:偏倚/低拟合
    • 交叉验证集误差远大于训练集误差时:偏差/过拟合

    归一化与偏倚/偏差

    在训练模型的时候,我们一般会使用到归一化方法来防止过拟合的发生。假设有一个线性回归模型hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44,然后使用归一化,则其代价函数为J(θ)=12m[mi=1((hθ(x(i))y(i))2+λnj=1θ2j)],但是这里归一化会由于λ的取值大小而导致低拟合或者过拟合的情况,如下图所示:
    这里写图片描述

    所以当λ过大,就会导致上图中第一幅图的情形,也就是低拟合的状况,此时就是对多次的参数惩罚过大;而如果λ过小,则是导致如第三幅图的情况,会过拟合。

    只有中间一幅图选择的λ是刚刚好,所以这里面临的问题就是选择合适的归一化因子λ。首先是选择一系列的想要测试的λ值,通常是0-10之间的呈现2倍关系的值(如:0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,2.56,5.12,10总共12个)。

    然后同样把数据分为训练集、交叉验证集和测试集。然后按照下列方法:

    1. 使用训练集训练出12个不同程度归一化的模型
    2. 用12个模型分别对交叉验证集计算出交叉验证误差
    3. 选择得出交叉验证误差最小的模型
    4. 使用上述得到的模型对测试集计算得到推广误差

    同样,可以将训练集和交叉验证集的误差和λ的值绘制在同一张图表上:
    这里写图片描述

    由上图可以得到:

    • λ较小时,训练集误差较小而交叉验证集误差较大,此时是过拟合;
    • 随着λ的增大,训练集误差不断增加,这是因为处于低拟合的情况,而交叉验证集误差则是先减小后增加。

    所以此时刚刚合适的λ值就是图中红色抛物线的最低点,也就是交叉验证误差减小到最低点然后开始增加的转折点了。

    学习曲线

    学习曲线是学习算法的一个很好的合理检验。它是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。

    假设现在有100行数据,我们从第1行数据开始,逐渐学习更多行的数据。如下图所示的学习曲线,分别是训练集和交叉验证集的误差随着使用的数据量增加而变化的曲线。
    这里写图片描述

    对于训练集,当刚开始训练的时候,数据量很小,所以得到的模型可以很好的拟合训练数据,但随着数据增大,得到的模型就很难非常完美地拟合训练集数据,所以误差是逐渐增大。
    对于交叉验证集,一开始是用在训练集中训练好的模型,交叉验证集对于它就是一个陌生的数据集,所以初始误差会比较大,随着交叉验证集中数据量增大,这个初始的模型也会随之逐渐调整参数,所以误差就会逐渐减小。

    那么如何利用学习曲线来识别高偏倚和或者是高偏差呢?

    对于高偏倚/低拟合,首先假设这里使用一条曲线,即一个模型hθ(x)=θ0+θ1x来训练数据,由下图所示。
    这里写图片描述

    这里可以看到当训练集增加到多大,误差都没有多大改变。即在低拟合/高偏倚的情况下,增加训练集数据并不会有多大帮助

    对于高偏差/过拟合,这里使用一个非常高次的多项式模型hθ(x)=θ0+θ1x++θ100x100,且归一化因子λ非常小。
    这里写图片描述

    由上图得知,在交叉验证集误差远大于训练集误差的时候,增加训练集数据是可以提高模型的效果的。

    所以,在高偏差/过拟合的情况下,增加训练集数据是可以提高算法效果的

    小结

    回顾下一开始选择的六种方法,这里给出在不同情况下应该怎么选择:

    1. 解决高偏差/过拟合:

      • 增加训练集数据
      • 较少特征的数量
      • 增大归一化因子λ
    2. 解决高偏倚/低拟合:

      • 增加特征的数量
      • 减小归一化因子λ
      • 增加二项式特征

    而对于神经网络的偏倚和偏差,分别如下所示:

    1. 使用较小的神经网络,类似于参数较少的情况,容易导致高偏倚和低拟合,但计算代价较小
    2. 使用较大的神经网络,类似于参数较多的情况,容易导致高偏差和过拟合,虽然计算代价大,但是可以通过归一化手段来调整而更加适应数据。

    所以,通常选择较大的神经网络并采用归一化处理会比较小的神经网络效果要更好。

    对于神经网络中的隐藏层的层数的选择,通常从一层开始逐渐增加层数。
    为了更好作选择,可以把数据分为训练集、交叉验证集和测试集,针对不同隐藏层层数的神经网络选择神经网络,然后选择交叉验证集代价最小的神经网络。

    所以这节课主要就是介绍了如何找出所使用学习算法的问题,可以通过误差分析,模型选择,学习曲线来判断是低拟合还是过拟合从而选择不同的方法,最终是继续提高算法的效果。

    展开全文
  • 流行的机器学习应用模式与算法本文将围绕 机器学习的概念,尽可能归纳总结当前流行的机器学习应用模式及相关算法。 “对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么...

    流行的机器学习应用模式与算法

    本文将围绕机器学习的概念,尽可能归纳总结当前流行的机器学习应用模式及相关算法。

    “对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。”

    机器学习的各类算法之间,重叠交叉又各自不同,既然是从软件工程的角度来写,我们会先介绍机器学习算法所依存的框架,再在这个框架下介绍有哪些算法,算法详情不做介绍,只力图说明这些算法用来做什么。

    矩阵范式

    这是现在主流的机器学习应用框架,我这里姑且给它命名为矩阵范式,它的核心思想是把问题映射为矩阵,用机器学习算法学习矩阵,再将模型预测出的矩阵映射为问题的解决方案。
    Simple
    1.描述问题。
    2.样本表达,收集并标注 x-y 形式的样本。x表示已知元素,y表示预测的元素,y可以为空。它们合并起来,是样本集 X-Y
    3.设计特征提取方案,把每个X中的样本x映射为相同维度的向量vx,合并即矩阵MX,y映射为向量vy,合并为矩阵MY。
    4.使用基于矩阵输入的机器学习算法,得到基于MX预测MY的模型M。
    5.预测时,先提取特征,再套用模型预测MY,最后将MY反映射为Y。

    图像识别的示例:
    图像识别

    应用场景

    人脸识别、图像识别、欺诈分析、文本识别、推荐系统、天气预测、医疗用于各类拟合预测、金融高频交易等等,目前企业用到机器学习算法的,经常制造新闻博人眼球的,基本上都是这个范式。
    这里写图片描述

    具体实现

    这个范式下,可分为浅层学习(由于深度学习的兴起而变成了“浅层”)和深度学习两种具体实现:

    浅层学习

    着重于特征提取这一步,设计特征是最繁琐困难的工作。后续的学习算法基本上固定。

    深度学习

    简化特征提取(比如图像识别,只需要固定到某一个大小,然后把像素全部输入),着重学习算法(具体来说是一系列的神经网络,最后一层加个逻辑回归/SVM之类的监督学习算法)的拼合设计。它实际上是用无监督算法对特征进行预处理,得到新的特征之后,再做监督学习,因此也被称为让计算机去自动学习特征。

    注:从软件工程的角度看,深度学习只是矩阵范式的一种表现形式,而非一种单独的算法,RBM、Auto-Encoding、CNN这些才能叫学习算法。

    基于矩阵输入的机器学习算法

    python 的机器学习工具包scikit-learn,把机器学习学习算法分为分类、回归、聚类、降维四大类,这个工具包里面的算法,基本上都是基于矩阵输入的。
    scikit

    由于Java有接口和类这个语法,有类型要求但不用纠结指针,描述问题方便一些,因此下面用Java代码作下示意。

    所有机器学习算法,最终需要获得这么一个模型类:

    public interface Model {
        public Matrix vPredict(Matrix X);
    };

    这个模型的作用是把一个矩阵X,转变为与之同高但不一定同宽的另一个矩阵。
    矩阵Matrix数据每一行是一条样本,此外Matrix中包含一个 meta 的成员变量,用来描述每一列的数据是离散值还是连续值。(底层存储往往是列存或压缩的,但这没关系,理解意思就行)。

    监督学习

    这类学习算法需要实现如下接口:

    public interface SupervisedLearning{
        public Model vTrain(Matrix X, Matrix Y);/*X.height() == Y.height()*/
    };

    回归

    1、线性回归
    2、分类回归树(CART,Classification And Regression Tree)
    3、BP神经网络
    4、符号回归

    分类

    1、贝叶斯网络
    2、K近邻算法KNN
    3、支持向量机SVM
    注:去给机器学习/数据挖掘方向的人做面试,SVM确实是最适合问的一个算法,这一个算法几乎就把机器学习的全部步骤涵盖进来了:核函数变换、梯度下降、二次规划、交叉验证、网络搜索。
    4、决策树
    5、逻辑回归

    修饰算法

    之所以叫修饰算法,是指这类算法是一种聚合算法,可以由上面所述的分类/回归算法按一定规则生成新的算法。
    在写代码时,我们应当是实现一个工厂,由原先的监督学习算法创建新的算法:

    public interface AlgorithmFactory{
        public SupervisedLearning vGenerate(SupervisedLearning origin);
    };

    1、Boost/AdaBoost
    2、随机森林
    在绝大多数的文献和大部分的开源代码库实现中,这些算法都是以决策树为原始算法的。不过为了可扩展起见,还是建议是写一个工厂,将原始监督学习算法扩充而来。

    无监督学习

    在实际工作情况下,标注样本是非常耗人力的工作,为了利用浩如烟海的无标注样本,无监督学习还是很有用武之地的。它的作用一般在于预处理,生成新的特征。

    public interface UnSupervisedLearning{
        Model vTrain(Matrix X);
    };

    无监督学习所得的Model,一般用于对数据作预处理。

    聚类

    1、K-Means
    2、高斯混合模型 GMM

    降维/特征提取

    1、流形学习
    2、主成分分析PCA(尽管PCA可以说是流形学习的一种,但研究流形学习的人应该不屑于提PCA吧)
    3、RBM神经网络
    4、自动编码器

    基于时间序列的机器学习算法

    在语音识别、语义识别、视频分析以及股价预测中,我们会遇到动态数据,

    对于这种时间序列/动态数据的输入,可以将其扩展为矩阵,套用基于矩阵的机器学习的算法,但也有一些特殊算法就是基于时间序列而设计的,如:
    1、隐马尔可夫模型HMM
    2、条件随机场CRF
    3、递归神经网络RNN
    4、滑动平均模型MA
    注:AR自回归模型就是先扩展为矩阵,再套用线性回归,因此不列进来。

    尽管理论上,它们可以处理任意的回溯深度,但在实际应用中,出于效率考虑,往往都会限制回溯深度,因此这些算法归根结底还是基于矩阵的机器学习算法。

    其他学习算法

    遗传规划/自动编程

    Genetic Programming 的目标是自动生成计算机程序,这个学习过程一般来说就没办法用矩阵范式描述了。比如用 GP 生成 sql 语句来作数据挖掘。(A Genetic Programming Framework for Two Data Mining Tasks: Classification and Generalized Rule Induction.)

    参数优化算法

    遗传算法/粒子群算法/梯度下降/EM算法往往也被列进机器学习算法,但从工程角度而言,它们是机器学习算法中所用到的参数优化算法,并不是一种学习算法。

    参考资料

    介绍Haar特征比较详细的一篇文章:
    http://blog.sina.com.cn/s/blog_4e6680090100d2sd.html
    介绍词向量的一篇文章:
    http://blog.csdn.net/zhoubl668/article/details/23271225
    介绍典型相关分析的文章:
    http://blog.csdn.net/statdm/article/details/7585113
    流形学习:
    http://www.cnblogs.com/tornadomeet/archive/2012/03/29/2422878.html
    主成分分析PCA:
    http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html

    展开全文
  • 机器学习之——机器学习应用建议

    千次阅读 2016-07-11 17:24:10
    机器学习应用建议 好久没有更新机器学习的学习笔记了,上一次还是更新的神经网络的部分。这一次我们来聊一聊,机器学习应用建议。 决定下一步做什么 假设我们需要用一个线性回归模型(Linear Regression)...

    机器学习的应用建议

    好久没有更新机器学习的学习笔记了,上一次还是更新的神经网络的部分。这一次我们来聊一聊,机器学习的应用建议。


    决定下一步做什么

    假设我们需要用一个线性回归模型(Linear Regression)来预测房价,当我们运用训练好了的模型来预测未知数据的时候,发现有较大的误差,我们下一步可以做什么?

    1. 获得更多的训练实例——通常是有效的,但是代价较大,下面的方法也可能有效,可以考虑优先采用下面的几种方法。
    2. 尝试减少特征的数量
    3. 尝试获得更多的特征
    4. 尝试增加二项式特征
    5. 尝试减少归一化程度λ
    6. 尝试增加归一化程度λ
    我们不应该随机选择上面的某种方法来改进我们的算法,而是运用一些机器学习诊断法来帮助我们知道上面哪些方法对我们的算法是有效的。


    假设的评估(Evaluating A Hypothesis)

    过拟合检验

    为了检验算法是否过拟合,我们将数据分成训练集和测试集,通常用70%的数据作为训练集,剩下30%的数据作为测试集。很重要的一点是,训练集和测试集均要含有各种类型的数据,通常我们对数据要进行“洗牌”,然后再分成训练集和测试集。

    测试集评估

    在通过训练集让我们的模型学习得出其参数后,对测试集运用该模型,我们有两种方式计算误差:

    • 对于线性回归模型,我们利用测试集数据计算代价函数J
    • 对于逻辑回归模型,我们除了可以利用测试数据集来计算代价函数外:还可以计算错误分类的比率,对于每一个测试集实例,计算:然后对计算结果求平均。

    模型选择(交叉验证集)

    假设我们要在10个不同次数的二项式模型之间进行选择:


    显然越高次数的二项式模型越能够适应我们的训练数据集,但是适应训练数据集并不代表着能推广至一般情况,我们应该选择一个更能适应一般情况的模型。我们需要使用交叉验证集来帮助选择模型,即:

    • 使用60%的数据作为训练集
    • 使用20%的数据作为交叉验证集
    • 使用20%的数据作为测试集
    模型选择的方法为:

    1. 使用训练集训练出10个模型
    2. 用10个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)
    3. 选取代价函数值最小的模型
    4. 用上面步骤3中选出的模型对测试集计算得出推广误差(代价函数的值)

    偏倚和偏差诊断(Diagnosis Bias VS. Variance)

    高偏倚和高偏差的问题基本上来说就是低拟合和过拟合的问题。


    我们通常会通过将训练集和交叉验证集的代价函数误差与多项式的次数绘制在同一张图表上来帮助分析:


    • 对于训练集,当d较小时,模型拟合程度更低,误差较大;随着d的增长,拟合程度提高,误差减小。
    • 对于交叉验证集,当d较小时,模型拟合程度低,误差较大;随着d的增长,误差呈现先减小后增大的趋势,转折点是我们的模型开始过拟合训练数据集的时候。
    如果我们的交叉验证集误差较大,我们如何判断是偏倚还是偏差呢?

    根据上面的图表,我们知道:

    • 训练集误差和交叉验证集误差相近时:偏倚/低拟合
    • 交叉验证集误差远大于训练集误差时:偏差/过拟合

    归一化与偏倚/偏差

    在我们在训练模型的过程中,一般会使用一些归一化的方法来防止过拟合。但是我们可能归一化的程度太高或太小了,即我们再选择λ的值时也需要思考与刚才选择多项式模型次数类似的问题。


    我们选择一系列的想要测试的λ值,通常是在0-10之间的呈现2倍关系的值,如:0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10 共12个。

    我们同样把数据分为训练集、交叉验证集和测试集。

    选择λ的方法为:

    1. 使用训练集训练处12个不同程度归一化的模型
    2. 用12个模型分别对交叉验证集计算得出交叉验证误差
    3. 选择得出交叉验证误差最小的模型
    4. 运用步骤3中选出的模型对测试及计算得出推广误差
    • 当λ较小时,训练集误差较小(过拟合)而交叉验证集误差较大
    • 随着λ的增加,训练集误差不断增加(低拟合),而交叉验证集误差则是先减小后增加

    学习曲线(Learning Curves)
    学习曲线是学习算法的一个很好的合理检验(Sanity Check),学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。
    即,如果我们有100个数据,我们从第1个数据开始,逐渐学习更多的数据。思想是:当训练较少数据的时候,训练的模型将能够非常完美的适应较少的训练数据,但是训练出来的模型却不能很好的适应交叉验证集数据或测试数据集。

    如何利用学习曲线识别高偏倚/低拟合:
    作为例子,我们尝试用一条直线来适应下面的数据,可以看出,无论训练集有多么大误差都不会有太大改观:

    也就是说在高偏倚/低拟合的情况下,增加数据到训练集不一定能有帮助。
    如何利用学习曲线识别高偏差/过拟合:
    假设我们使用一个非常高次的多项式模型,并且归一化非常小,可以看出,当交叉验证集误差远大于训练集误差时,往训练集增加更多数据可以提高模型的效果。

    也就是说,在高偏差/过拟合的情况下,增加更多数据到训练集可能提高算法效果。

    决定下一步做什么
    回顾之前提出的六种可选的下一步,让我们来看一看我们在什么情况下应该怎样选择:
    1. 获得更多的训练实例——解决高偏差
    2. 尝试减少特征的数量——解决高偏差
    3. 尝试获得更多的特征——解决高偏倚
    4. 尝试增加二项式特征——解决高偏倚
    5. 尝试减少归一化程度——解决高偏倚
    6. 尝试增加归一化程度——解决高偏差
    神经网络的偏倚和偏差
    • 使用较小的神经网络,类似于参数较少的情况,容易导致高偏倚和低拟合,但计算代价较小
    • 使用较大的神经网络,类似于参数较多的情况,容易导致高偏差和过拟合,虽然计算代价比较大,但是可以通过归一化手段来调整而更加适应数据
    通常选择较大的神经网络并采用归一化处理会比采用较小的神经网络效果要好。
    对于神经网络中的隐藏层的层数的选择,通常从一层开始逐渐增加层数,为了更好地做选择,可以把数据分为训练集、交叉验证集和测试集,针对不同隐藏层层数的神经网络训练神经网络,然后选择交叉验证集代价最小的神经网络。

    展开全文
  • 机器学习应用方向

    千次阅读 2018-09-18 09:11:05
    知识点1:决策树 随机森林、GBDT、模型评估、ROC、机器学习的流程 实战项目:利用随机森林进行Kinect手势判断 第3课 特征工程与模型调优 知识点1:数据获取、数据清洗、特征抽取、特征选择与融合、模型调参 第4课 ...

    第1课 数学基础

    • 知识点1:必要的微积分、概率统计基础
    • 知识点2:必要的矩阵、凸优化基础

    第2课 随机森林及其应用

    • 知识点1:决策树 随机森林、GBDT、模型评估、ROC、机器学习的流程
    • 实战项目:利用随机森林进行Kinect手势判断

    第3课 特征工程与模型调优

    • 知识点1:数据获取、数据清洗、特征抽取、特征选择与融合、模型调参

    第4课 推荐系统与案例

    • 知识点1:基于内容的推荐,协同过滤,隐语义模型,排序模型
    • 实战项目:基于用户打分的电影推荐系统

    第5课 CTR预估

    • 知识点1:分类问题与LR, SVM, Random Forest,GBDT;从分类到CTR预估与排序
    • 实战项目:电商分类与各种模型融合,CTR预估

    第6课 NLP应用基础

    • 知识点1:文本的表示,文本分类,朴素贝叶斯,语言模型,HMM介绍,TFIDF
    • 实战项目:用朴素贝叶斯实现新闻数据的自动分类

    第7课 深度学习在NLP中的应用

    • 知识点1:自编码网络:简单粗暴的文本向量化方法
    • 知识点2:语义网络:文本算法在工业上上的应用
    • 知识点3:卷积神经网络:CNN在自然语言处理中的应用
    • 实战项目:从每日新闻中预测金融市场变化

    第8课 图像检索与相关应用

    • 知识点1:图像与特征提取,卷积神经网络与图像特征表示,近似最近邻
    • 实战项目:基于卷积神经网络和近似最近邻的图像检索

    第9课 计算机视觉中的物体检测

    • 知识点1:物体检测问题介绍与一般流程
    • 知识点2:关键技术分析(特征提取、目标框提取、NMS等)
    • 知识点3:最新论文选讲:从RNN到Faster-RCNN, GNN, FCN等
    • 实战项目:在PASCAL数据库上训练一个Faster-RCNN模型

    第10课 社交网络在工业界的应用

    • 知识点1:互联网金融反欺诈介绍
    • 知识点2:探索社交网络算法
    • 实战项目:社交网络算法在金融反欺诈中的应用
    展开全文
  • NG说: 我想介绍这部分内容的原因主要有以下三个: 第一,我想向你展示一个复杂的机器学习系统是如何被组合起来的。 第二,我想介绍一下机器学习流水线...其中之一是如何将机器学习应用到计算机视觉问题中,
  • 如何将机器学习应用到测试领域

    千次阅读 2012-12-03 10:38:29
    如何将机器学习应用到测试领域 随着机器学习这个话题越来越热,人们都在思考如何利用机器学习帮助解决本领域的问题。有了机器学习这个热门技术,以前不能完成或者不能很好的完成的任务可以得到不错的解决。在测试...
  • 从一开始对“机器学习”这个名词的敬畏,到现在的疑惑,算是稍微能够提出点自己的问题了,在准备应用机器学习解决实际问题之前,在认识方面,先想想,机器学习的概念有多宽?人脑认知与特征构造,也许是绕不过的坎儿...
  • 开发机器学习应用程序的步骤总概

    千次阅读 2013-12-29 16:27:42
    1.5 开发机器学习应用程序的步骤 本书学习和使用机器学习算法开发应用程序,通常遵循以下的步骤。 (1) 收集数据。我们可以使用很多方法收集样本数据,如:制作网络爬虫从网站上抽取数据、从RSS反馈或者API中...
  • Python机器学习应用 | 监督学习

    千次阅读 2017-06-23 09:41:47
    1 监督学习的目标利用一组带有标签的数据,学习从输入到输出的映射,然后将这种映射关系应用到未知数据上,达到分类或回归的目的。 分类:当输出是离散的,学习任务为分类任务。 回归:当输出是连续的,学习任务为...
  • 机器学习应用场景

    千次阅读 2016-08-30 13:10:35
    实际上按我们的学习经验,从一个数据源开始,即使是用最传统,已经应用多年的机器学习算法,先完整地走完机器学习的整个工作流程,不断尝试各种算法深挖这些数据的价值,在运用过程中把数据、特征和算法搞透,真正...
  • 机器学习应用嵌入到Web应用中

    千次阅读 2018-03-05 23:38:07
    Ch9:Embedding a Machine Learning Model into a Web ... 这一章主要偏机器学习功能Web的简单开发,与算法关系不大。没有跳过反而收获不少。不得不佩服作者在构思’算法+系统‘时所作出的为读者充分考虑的思想 本...
  • 机器学习应用之WebShell检测

    千次阅读 2017-12-09 11:51:22
    本文主要参考自兜哥的《Web安全之机器学习入门》 前段时间在研究WebShell的检测查杀,然后看到兜哥的著作中提到的几个机器学习算法中也有实现WebShell检测的,主要有朴素贝叶斯分类、K邻近算法、图算法、循环神经...
  • 01 关于NLTK的认知 很多介绍NLP的,都会提到NLTK库。还以为NLTK是多牛逼的必需品。... 《NLTK基础教程--用NLTK和Python库构建机器学习应用》虽然是2017年6月第一版。但内容大部分还是很陈旧的。基本都是采
  • Python机器学习应用 | 无监督学习

    千次阅读 2017-06-27 14:13:58
    无监督学习最常应用的场景是聚类(clustering)和降维(DimensionReduction)2 聚类(clustering)聚类(clustering),就是根据数据的“相似性”将数据分为多类的过程。 评估两个不同样本之间的“相似性” ,通常使用的方
  • 今日,中科院计算所研究员徐君在微博上宣布「中科院计算所开源了 Easy Machine Learning 系统,其通过交互式图形化界面让机器学习应用开发变得简单快捷,系统集成了数据处理、模型训练、性能评估、结果复用、任务...
  • 本文主要记录我在学习Standford Andrew Ng老师的“Advice for Applying Machine Learning”课程时的笔记,包括假设函数的评估指标、数据集划分、模型选择问题、过拟合与欠...,以及机器学习算法的诊断与调试法等方面...
  • 前几讲学习了很多机器学习的算法,但是在实际的应用中会遇到很多过拟合和欠拟合的问题,这些问题都会导致测试结果不理想。用什么方法解决这些问题,是本讲研究的主题。 举一个房价预测的例子,如果学习了一个模型,...
  • 本文主要整理自“Advice for Applying Machine Learning”课程的笔记资料,包括假设函数的评估、数据集划分、模型选择问题、过拟合与欠拟合,偏差和方差,数据的重要性,以及机器学习算法的诊断与调试法等方面。
  • 本文主要整理自“Advice for Applying Machine Learning”课程的笔记资料,包括假设函数的评估、数据集划分、模型选择问题、过拟合与欠拟合,偏差和方差,数据的重要性,以及机器学习算法的诊断与调试法等方面。
  • 最近一段时间,小编有点迷茫,不知道各位小伙伴们有没有...通过自己的整理,我大致了解了机器学习应用领域和各领域的研究目的。为了帮助可能对此也有迷茫的小伙伴,下面我简单介绍几个应用领域。 一、推荐系统 ...
  • import numpy as np #导入numpy工具包 from os import listdir #使用listdir模块,用于访问本地文件 from _________ import MLPClassifier clf = MLPClassifier(hidden_layer_sizes=(100,), activation='logistic...
  • 用Azure快速创建机器学习应用

    千次阅读 2017-12-05 14:53:24
    最近看了一些Azure上面做大数据分析和机器学习模型的框架和工具,感觉挺好的,已经形成了一个闭环,可以非常快捷的创建机器学习应用。这里通过一个虚构的例子,简单列举一下相关的几个技术。有兴趣的可以阅读微软...
  • 开发机器学习应用程序的步骤

    千次阅读 2017-05-03 19:45:04
    通常从数据的提炼,到最后算法的应用,遵循如下几个步骤: 1、收集数据。 收集我们关心的数据,方法如:网络爬虫,一些设备发送过来的数据,如从物联网设备获取来的数据。 2、准备输入数据。 得到数据之后,我们要...
  • Python机器学习应用 | 多项式回归

    千次阅读 2017-06-24 14:16:17
    我们在前面已经根据已知的房屋成交价和房屋的尺寸进行了线性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行了成交价格的预测,但是在实际的应用中这样的拟合往往不够好,因此我们在此对该数据集进行...
  • from ________ import load_boston data, target = load_boston(return_X_y=True) print(data.shape) print(target.shape)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,465
精华内容 16,586
关键字:

机器学习应用