首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用于数据分类的无监督学习-1

用于数据分类的无监督学习-1

在无监督学习中,一个算法会对数据集中的数据进行分离,该数据集中的数据没有基于其隐含特征进行标记。此功能可能对发现数据的隐含结构和异常检测等任务很有用。本教程将解释无监督学习背后的概念和它的应用,然后在数据探索情景中演示这些概念。
无监督学习算法基于数据中的基础隐含特征对未标记的数据集中的数据进行分组(参见图                1)。由于没有标签,所以无法评估结果(这是与监督学习算法的一个关键区别)。通过无监督学习对数据分组,您会了解原始数据中平常可能看不见的信息。在高维或大型数据集中,此问题更加显著。
图 1. 无监督学习算法除了对数据进行分组之外,该算法还可以使用这些分组挖掘隐含的特征。
特征向量考虑一个按用户评分排列电影的数据集。用户为观看的每部电影分配 1-5 的评分(1 表示最差,5                表示最好)。每个用户由一个特征向量表示,该矢量包含用户提供的电影评分。通过将用户集中到分组中,您可以找到对电影有相似偏好(或相似厌恶)的人(参见图                2)。通过分析一个集群,可以在特征向量中找到可能适合推荐的差异(一部电影在集群中很常见,但该集群中的一些成员可能未看过这部电影)。
图 2. 一个用于电影评分的简单特征向量集考虑用户 A 和 D。根据他们的评分,他们具有类似的电影品味,可能属于同一个用户集群。从图 2 可以看到,用户 A 喜欢“Movie B”,但用户 D                还未对该电影进行评分。因此,根据用户 D 的类似品味(以及他或她的差异),“Movie B”似乎适合推荐给该用户。
请注意,在这里,特征向量可能很大。例如,Amazon Prime 中有超过 20,000                个标题。此问题的一个解决方案是,通过降维来减少考虑的特征数。使用现有的示例,您可以通过不表示各个评分本身,而是表示给定类型或标题(计算机高手、美国西部片或日本恐怖片)的评分总和或平均值,从而手动缩小特征向量的大小。一些技术可以使用主成份分析等计算方法来降维。
这是一个人为设计的示例,将介绍如何基于用户的集群成员关系和特征向量差异,使用集群向用户推荐内容。现在,让我们深入分析一些用于无监督学习的方法。
集群方法对数据划分集群的一种流行算法是自适应共振理论 (ART) 系列算法 - 一组可用于识别模式和执行预测的神经网络模型。ART1                算法通过一个权矢量,将一个输入矢量映射到一个识别字段中的神经元。ART                的一个关键优势是,它提供了一个警戒参数来确定某个特征向量必须离一个集群多近才能属于该集群。否则,它可以自动为该特征向量创建一个新集群。警戒参数表明有许多与输入矢量更接近的集群(高度警戒),还是少量包含更多特征向量示例的一般集群(低度警戒)。
另一种神经网络方法称为自组织映射                (SOM),它将多维特征向量转换为一种称为映射的低维表示。此方法通过矢量量化来实现一种数据压缩形式。该映射由神经网络构成,通常是一种常规的晶格形状(表示矩形网格的                NxM 个神经元)。映射中的每个神经元都有一个与输入矢量维数相匹配的权矢量(如图 2、图 3 中的示例所示)。
图 3. 一种典型的自组织映射输入矢量连接到映射中的每个神经元。在训练期间,每个观察值都会应用于输入矢量,而且会为映射的每个权矢量计算该观察值的欧几里德距离。权矢量离输入矢量最近(距离最小)的神经元被声明为获胜者,然后会向输入矢量更新权值。对数据集中的每个观察值都执行此过程。训练完成时,可以对网络应用一个新观察值,获胜的神经元表示该观察值的集群。
对数据划分集群的最简单最有效的算法之一是 k 均值算法。SOM 类似于 k 均值(对于少量神经元而言),但 SOM                有一个优势,因为映射实质上是拓扑结构形式的,并且很容易可视化,即使对于高维数据也是如此。让我们分析一下 k                均值算法和它针对一个简单数据集的实现。
k 均值集群k 均值集群背后的概念很容易可视化和理解。k                均值算法基于相似性将一组表示为特征向量的观察值组织到集群中。这种相似性是基于一个距离指标 - k                个质心(质心是基于集群成员均值的集群中心)。欧几里德距离被用作相似性指标;最接近的质心(也表示为一个特征向量)是一个应该包含特征向量的集群。
现在让我们看看 k 均值的训练算法。有 3                个基本步骤(初始化、更新和分配),第一步有很大的差异。对于初始化,我将演示随机分区方法,该方法将来自数据集的每个观察值随机分配给                    k 个集群中的一个。另一种方法称为 Forgy 方法,该方法从数据集中随机获取 k                个观察值,并将每个观察值分配给一个集群(参见图 4)。
图 4. 一种典型的 k 均值集群算法
更新步骤会根据集群中的观察值部分来计算质心,质心是集群中包含的所有特征向量的均值。
更新质心后,接下来将会执行分配步骤。在这一步,将会查看每个观察值,并测试它是否属于正确的集群。为此,我将计算观察值的特征向量离 k                个质心中每个质心的欧几里德距离。最近的集群代表将会包含该观察值。如果该集群与观察值的当前集群不同,则移动该观察值。如果我退出分配步骤时所有观察值都没有改变集群,则会收敛该算法,我的任务完成了。否则,返回到更新步骤,更新质心并再次开始。
让我们看看 k 均值的一种简单实现,我将使用它为一个简单数据集划分集群。
返回列表