使用机器学习方法挖掘大量数据来帮助发现不太明显的规律,这称作数据挖掘。
一、有监督学习和无监督学习
1.有监督学习:提供带标签的训练集
·k-近邻算法·线性回归·逻辑回归
·支持向量机(SVM) ·决策树和随机森林 ·神经网络
2.无监督学习:提供不带标签的训练集
·聚类算法·k-均值算法·DBSCAN ·分层聚类分析(HCA) ·异常检测和新颖性检测 ·单类SVM ·孤立森林·可视化和降维 ·主成分分析(PCA) ·核主成分分析 ·局部线性嵌入(LLE) ·t-分布随机近邻嵌入(t-SNE) ·关联规则学习·Apriori·Eclat
3.半监督学习:训练数据部分带标记
4.强化学习:学习系统(在其语境中称为智能体) 能够观察环境,做出选择,执行动作,并获得回报
二、批量学习和在线学习
1.批量学习:系统无法进行增量学习——即必须使用所有可用数据进行训练。 如果希望批量学习系统学习新数据(例如新型垃圾邮件),需要在完整数据集(包括新数据和旧数据)的基础上重新训练系统的新版本,然后停用旧系统,用新系统取而代之。
2.在线学习:在在线学习中,你可以循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。适用于计算资源有限。
三、基于实例的学习与基于模型的学习
1.基于实例的学习:系统用心学习这些示例,然后通过使用相似度度量来比较 新实例和已经学习的实例(或它们的子集),从而泛化新实例
2.基于模型的学习:构建这些示例的模型,然后使用该模型进行 预测
如果设置的学习率很高,那么系统将会迅速适应新数据,但同时也会很快忘记旧数据。
如果学习率很低,系统会有更高的惰性,也就是说,学习会更缓慢,同时也会对新数据中的噪声或者非典型数据点(离群值)的序列更不敏感。
模型相对于训练数据的数量和噪度都过于复杂时,会发生过拟合。可能的解决方案如下:
·简化模型:可以选择较少参数的模型(例如,选择线性模型而不是高阶多项式模 型)也可以减少训练数据中的属性数量,或者是约束模型。
·收集更多的训练数据。
·减少训练数据中的噪声(例如,修复数据错误和消除异常值)。
通过约束模型使其更简单,并降低过拟合的风险,这个过程称为正则化。
超参数是学习算法(不是 模型)的参数。因此,它不受算法本身的影响。超参数必须在训练之前设置好,并且在训 练期间保持不变。
解决方法:
·选择一个带有更多参数、更强大的模型。
·给学习算法提供更好的特征集(特征工程)。
·减少模型中的约束(例如,减少正则化超参数)。
在简化的训练集上(即完整训练集减去验证集)训练具有各种超参数的多个模 型,并且选择在验证集上表现最佳的模型。在此保持验证之后,你在完整的训练集(包括验证集)上训练最佳模型,这就是你的最终模型。最后,你在测试集上评估这个模型以获 得泛化误差的估计值。