细分客户群,并未每个群体设置最佳的市场策略;
基于相似度来为每个顾客推荐产品;
检测哪些交易最有可能是欺诈性的;
预测下一年的收入;
机器学习系统的种类
- 是否在人类监督下训练(监督式学习、无监督式学习、半监督式学习和强化学习)
- 是否可以动态地进行增量学习(在线学习和批量学习)
- 是简单地将信的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测,然后建立一个预测模型(基于实例的学习和基于模型的学习)
监督式/无监督式学习
根据训练期间接受的监督数量和监督类型,可以将机器学习系统分为以下四个主要类别:
-
监督式学习
在监督式学习中,提供给算法的包含所需解决方案的训练数据,称为标签或标记。a. 分类任务
b. 回归任务:通过预测变量,一组给定的特征来预测一个目标数值监督式学习的算法: K-近邻算法(k-Nearest Neighbors) 线性回归(Linear Regression) 逻辑回归(Logistic Regression) 支持向量机(Support Vector Machines,SVM) 决策树和随机森林(Decision Trees and Random Forests) 神经网络(Neural networks)
-
无监督式学习
无监督式学习的训练数据都是未经标记,系统会在没有老师的情况下进行学习。
a.聚类算法:k-平均算法(k-Means) 分层聚类分析(Hierarchical Cluster Analysis,HCA) 最大期望算法(Expectation Maximization)
b.可视化和降维:
主成分分析(PCA) 核主成分分析(Kernel PCA) 局部线性嵌入(LLE) t-分布随机近临嵌入(t-SNE)
c.关联规则:
Apriori Eclat
- 半监督式学习
处理部分标记的训练数据——通常是大量未标记数据和少量的标记数据。大多数半监督式学习算法是无监督式和监督式算法的结合。
深度信念网络(DBN),基于互相堆叠的无监督式组件,这个组件叫做受限玻尔兹曼机(RBM)。受限玻尔兹曼机以无监督的方式进行训练,然后使用监督式学习对整个系统进行微调。 - 强化学习
它的学习系统(智能体)能够观察环境,做出选择,执行操作,并获得回报(reward),或者是以负面回报的形式获得惩罚。所以它必须自行学习什么是最好的策略,从而随着时间推移获得最大的回报。策略代表智能体在特定情况下应该选择的操作。
批量学习和在线
- 批量学习
在批量学习中,系统无法进行增量学习一一即必须使用所有可用数据进行训练。所以通常情形下,都是离线完成的。离线学习就是先训练系统,然后将其投入生产环境,这时学习过程停止,它只是将其所学到的应用出来。 - 在线学习
在在线学习中,你可以循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的, 可以采用小批量(mini-batches)的小组数据来进行训练。对于这类系统一-需要接收持续的数据流同时对数据流的变化做出快速或自主的反应,使用在线学习系统是 个非常好的方式。在线学习系统的一个重要参数是其适应不断变化的数据的速度,这就是所谓的学习率。如果设置的学习率很高,那么系统将会迅速适应新数据,但同时也会很快忘记旧数据。反过来,如果学习率很低,系统会有更高的惰性,也就是说,学习会更缓慢,同时也会对新数据中的噪声或者非典型数据点的序列更不敏感。
基于实例于基于模型的学习
- 基于实例的学习
系统先完全记住学习示例(example),然后通过某种相似度度量方式将其泛化到新的实例 - 基于模型的学习
从一组示例集中实现泛化的另一种方怯是构建这些示例的模型,然后使用该模型进行预测。
线性回归:clf = sklearn.linear_model.LinearRegression()
k-近邻回归:clf = sklearn.linear_model.KNeighborsRegressor(n_neighbors=3)
机器学习的主要挑战
训练数据的数量不足
训练数据不具代表性
使用具有代表性的训练集,这一点至关重要。如果样本集太小,将会出现采样噪声(即非代表性数据被选中);而即便是非常大的样本数据,如果采样方式欠妥,也同样可能导致非代表性数据集,这就是所谓的采样偏差。
质量差的数据
无关特征
一个成功的机器学习项目,关键部分是提取出好的用来训练的特征集,这个过程叫作恃征工程,包括以下几点:
- 持征选择:从现有特征中选择最有用的特征进行训练;
- 持征提取:将现有特征进行整合,产生更有用的特征(降维算法);
- 通过收集新数据创造新特征。
训练数据过度拟合
模型在训练数据上表现良好,但是泛化时却不尽如人意。
当模型相对于训练数据的数量和噪度都过于复杂时,会发生过度拟合。可能的解决方案如下:
- 简化模型:可以选择较少参数的模型(例如,选择线性模型而不是高阶项式模型),可以减少训练数据中的属性数量,又或者是约束模型;
通过正则化降低过度拟台的风险:
应用正则化的程度可以通过一个超参数来控 。超参数是学习算法(不是模型)的参数。它不受算法本身的影响;它必须训练之前设置好,并且在训练期间保持不变。如果将正则化超参数设置为非常大的值,会得一个几乎平坦的模型(斜率接近零);学习算法虽然肯定不会过度拟合训练数据,但是也更加不可能找到一个好的解决方案。调整超参数是构建机器学习系统非常重要的组成部分。 - 收集更多的训练数据;
- 减少训练数据中的噪声(例如,修复数据错误和消除异常值)。
测试与验证
应对新场景的误差率称为泛化误差(例外误差)),通过测试集来评估你的模型,就可以得到对这个误差的评估。这个估值可以告诉你,你的模型在处理新场景时的能力如何。
如果训练误差很低(模型对于训练集来说很少出错),但是泛化误差很高,那说明你的模型对于训练数据存在过度拟合。
通常使用80%的数据进行训练,保留另外的20%来做测试。
交叉验证:将训练集分成若干个互补子集,然后每个模型都通过这些子集的不同组合来进行训练,之后用剩余的子集进行验证。一旦模型和超参数都被选定,最终的模型会带着这些超参数对整个训练集进行一次训练,最后再用测试集测量泛化误差。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。