监督/非监督学习
监督学习
K近邻算法
线性回归
逻辑回归
支持向量机(SVM)
决策树和随机森林
神经网络
非监督学习
聚类
K 均值
层次聚类分析(Hierarchical Cluster Analysis,HCA)
期望最大值(Experimental Maximization EM)
可视化和降维
主成分分析(Principal Component Analysis,PCA)
核主成分分析(Kernel PCA)
局部线性嵌入(Locally-Linear Embedding,LLE)
t-分布邻域嵌入算法(t-distributed Stochastic Neighbor Embedding,t-SNE)
关联性规则学习(Associatation rule learning)
Apriori 算法
Eclat 算法
半监督学习
一些算法可以处理部分带标签的训练数据,通常是大量不带标签数据加上小部分带标签数据。这称作半监督学习。
深度信念网络(deep belief networks)
是基于被称为互相叠加的受限玻尔兹曼机(restricted Boltzmann machines,RBM)的非监督组件。
RBM
是先用非监督方法进行训练,再用监督学习方法进行整个系统微调。
强化学习
学习系统在这里被称为智能体(agent),可以对环境进行观察,选择和执行动作,获得奖励(负奖励是惩罚)。然后它必须自己学习哪个是最佳方法(称为策略,policy),以得到长久的最大奖励。策略决定了智能体在给定情况下应该采取的行动。
批量和在线学习
Batch learning
在批量学习中,系统不能进行持续学习:必须用所有可用数据进行训练。这通常会占用大量
时间和计算资源,所以一般是线下做的。首先是进行训练,然后部署在生产环境且停止学
习,它只是使用已经学到的策略。这称为离线学习。
在线学习 Online Learning
在在线学习中,是用数据实例持续地进行训练,可以一次一个或一次几个实例(称为小批量)。每个学习步骤都很快且廉价,所以系统可以动态地学习到达的新数据。
在线学习很适合系统接收连续流的数据(比如,股票价格),且需要自动对改变作出调整。如果计算资源有限,在线学习是一个不错的方案:一旦在线学习系统学习了新的数据实例,它就不再需要这些数据了,所以扔掉这些数据(除非你想滚回到之前的一个状态,再次使用数据)。这样可以节省大量的空间。
在线学习算法也可以当机器的内存存不下大量数据集时,用来训练系统(这称作核外学习,out-of-core learning)。算法加载部分的数据,用这些数据进行训练,重复这个过程,直到用所有数据都进行了训练。
在线学习系统的一个重要参数是,它们可以多快地适应数据的改变:这被称为学习速率。如果你设定一个高学习速率,系统就可以快速适应新数据,但是也会快速忘记老数据(你可不想让垃圾邮件过滤器只标记最新的垃圾邮件种类)。相反的,如果你设定的学习速率低,系统的惰性就会强:即,它学的更慢,但对新数据中的噪声或没有代表性的数据点结果不那么敏感。
基于实例/基于模型的学习
基于实例 (Instance Based)
系统先用记忆学习案例,然后使用相似度测量推广到新的例子。
Model Based
从样本集进行归纳的方法是建立这些样本的模型,然后使用这个模型进行预测。