细分客户群,并未每个群体设置最佳的市场策略;
基于相似度来为每个顾客推荐产品;
检测哪些交易最有可能是欺诈性的;
预测下一年的收入;

机器学习系统的种类

  • 是否在人类监督下训练(监督式学习、无监督式学习、半监督式学习和强化学习)
  • 是否可以动态地进行增量学习(在线学习和批量学习)
  • 是简单地将信的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测,然后建立一个预测模型(基于实例的学习和基于模型的学习)

监督式/无监督式学习
根据训练期间接受的监督数量和监督类型,可以将机器学习系统分为以下四个主要类别:

  1. 监督式学习
    在监督式学习中,提供给算法的包含所需解决方案的训练数据,称为标签或标记。

    a. 分类任务
    b. 回归任务:通过预测变量,一组给定的特征来预测一个目标数值

     监督式学习的算法:
     K-近邻算法(k-Nearest Neighbors)
     线性回归(Linear Regression)
     逻辑回归(Logistic Regression)
     支持向量机(Support Vector Machines,SVM)
     决策树和随机森林(Decision Trees and Random Forests)
     神经网络(Neural networks)
    
  2. 无监督式学习
    无监督式学习的训练数据都是未经标记,系统会在没有老师的情况下进行学习。
    a.聚类算法:

     k-平均算法(k-Means)
     分层聚类分析(Hierarchical Cluster Analysis,HCA)
     最大期望算法(Expectation Maximization)

    b.可视化和降维:

     主成分分析(PCA)
     核主成分分析(Kernel PCA)
     局部线性嵌入(LLE)
     t-分布随机近临嵌入(t-SNE)
    

    c.关联规则:

     Apriori
     Eclat
    
  3. 半监督式学习
    处理部分标记的训练数据——通常是大量未标记数据和少量的标记数据。大多数半监督式学习算法是无监督式和监督式算法的结合。
    深度信念网络(DBN),基于互相堆叠的无监督式组件,这个组件叫做受限玻尔兹曼机(RBM)。受限玻尔兹曼机以无监督的方式进行训练,然后使用监督式学习对整个系统进行微调。
  4. 强化学习
    它的学习系统(智能体)能够观察环境,做出选择,执行操作,并获得回报(reward),或者是以负面回报的形式获得惩罚。所以它必须自行学习什么是最好的策略,从而随着时间推移获得最大的回报。策略代表智能体在特定情况下应该选择的操作。

批量学习和在线

  1. 批量学习
    在批量学习中,系统无法进行增量学习一一即必须使用所有可用数据进行训练。所以通常情形下,都是离线完成的。离线学习就是先训练系统,然后将其投入生产环境,这时学习过程停止,它只是将其所学到的应用出来。
  2. 在线学习
    在在线学习中,你可以循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的, 可以采用小批量(mini-batches)的小组数据来进行训练。对于这类系统一-需要接收持续的数据流同时对数据流的变化做出快速或自主的反应,使用在线学习系统是 个非常好的方式。

    在线学习系统的一个重要参数是其适应不断变化的数据的速度,这就是所谓的学习率。如果设置的学习率很高,那么系统将会迅速适应新数据,但同时也会很快忘记旧数据。反过来,如果学习率很低,系统会有更高的惰性,也就是说,学习会更缓慢,同时也会对新数据中的噪声或者非典型数据点的序列更不敏感。

基于实例于基于模型的学习

  1. 基于实例的学习
    系统先完全记住学习示例(example),然后通过某种相似度度量方式将其泛化到新的实例
  2. 基于模型的学习
    从一组示例集中实现泛化的另一种方怯是构建这些示例的模型,然后使用该模型进行预测。
    线性回归:clf = sklearn.linear_model.LinearRegression()
    k-近邻回归:clf = sklearn.linear_model.KNeighborsRegressor(n_neighbors=3)

机器学习的主要挑战

训练数据的数量不足

训练数据不具代表性
使用具有代表性的训练集,这一点至关重要。如果样本集太小,将会出现采样噪声(即非代表性数据被选中);而即便是非常大的样本数据,如果采样方式欠妥,也同样可能导致非代表性数据集,这就是所谓的采样偏差。
质量差的数据
无关特征
一个成功的机器学习项目,关键部分是提取出好的用来训练的特征集,这个过程叫作恃征工程,包括以下几点:

  1. 持征选择:从现有特征中选择最有用的特征进行训练;
  2. 持征提取:将现有特征进行整合,产生更有用的特征(降维算法);
  3. 通过收集新数据创造新特征。

训练数据过度拟合
模型在训练数据上表现良好,但是泛化时却不尽如人意。
当模型相对于训练数据的数量和噪度都过于复杂时,会发生过度拟合。可能的解决方案如下:

  1. 简化模型:可以选择较少参数的模型(例如,选择线性模型而不是高阶项式模型),可以减少训练数据中的属性数量,又或者是约束模型;
    通过正则化降低过度拟台的风险:
    应用正则化的程度可以通过一个超参数来控 。超参数是学习算法(不是模型)的参数。它不受算法本身的影响;它必须训练之前设置好,并且在训练期间保持不变。如果将正则化超参数设置为非常大的值,会得一个几乎平坦的模型(斜率接近零);学习算法虽然肯定不会过度拟合训练数据,但是也更加不可能找到一个好的解决方案。调整超参数是构建机器学习系统非常重要的组成部分。
  2. 收集更多的训练数据;
  3. 减少训练数据中的噪声(例如,修复数据错误和消除异常值)。

测试与验证
应对新场景的误差率称为泛化误差(例外误差)),通过测试集来评估你的模型,就可以得到对这个误差的评估。这个估值可以告诉你,你的模型在处理新场景时的能力如何。
如果训练误差很低(模型对于训练集来说很少出错),但是泛化误差很高,那说明你的模型对于训练数据存在过度拟合。
通常使用80%的数据进行训练,保留另外的20%来做测试。
交叉验证:将训练集分成若干个互补子集,然后每个模型都通过这些子集的不同组合来进行训练,之后用剩余的子集进行验证。一旦模型和超参数都被选定,最终的模型会带着这些超参数对整个训练集进行一次训练,最后再用测试集测量泛化误差。


布still
461 声望32 粉丝

数据挖掘、用户行为研究、用户画像