无监督学习

01-01 机器学习

大城市里の小女人 提交于 2019-12-01 12:47:54
目录 机器学习 一、学习目标 二、人工智能 三、机器学习 3.1 机器学习基本术语 四、深度学习 五、机器学习分类 5.1 监督学习 5.1.1 回归问题 5.1.2 分类问题 5.2 无监督学习 5.2.1 聚类 5.3 半监督学习 5.4 强化学习 六、Python语言的优势 七、小结 更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你: https://www.cnblogs.com/nickchen121/ 机器学习 可能有很多同学想到高大上的人工智能、机器学习和深度学习,会在怀疑我是否能学会。在自我怀疑之前,我希望你能考虑一个问题,你了解机动车的构造原理吗?难道你不了解机动车的构造就不能开车了吗?我们的机器学习也是如此,你只要拿到一张“驾驶证”,你就能很好的应用它,并且能通过本文的学习,快速的为公司、为企业直接创造价值。 机器学习已经不知不觉的走入了我们的生活,我们可能无法干涉它的崛起,也可能无法创建如十大算法一样的算法。但现如今生活的方方面面都有着机器学习的身影,为什么我们不试着去认识它呢,让我们能在机器学习彻底降临之前做好驾驭它的准备呢? 一、学习目标 了解人工智能、机器学习和深度学习之间的区别 掌握机器学习中的监督学习和无监督学习问题 二、人工智能 人工智能(artificial intelligence, AI):

Spark机器学习基础-无监督学习

强颜欢笑 提交于 2019-11-30 07:52:06
0.K-means from __future__ import print_function from pyspark.ml.clustering import KMeans#硬聚类 #from pyspark.ml.evaluation import ClusteringEvaluator#2.2版本支持评估,2.1版本不支持 from pyspark.sql import SparkSession    ! head -5 data/mllib/sample_kmeans_data.txt#展示前5行   结果: 0 1:0.0 2:0.0 3:0.0 1 1:0.1 2:0.1 3:0.1 2 1:0.2 2:0.2 3:0.2 3 1:9.0 2:9.0 3:9.0 4 1:9.1 2:9.1 3:9.1 spark = SparkSession\ .builder\ .appName("KMeansExample")\ .getOrCreate() dataset = spark.read.format("libsvm").load("data/mllib/sample_kmeans_data.txt")#libsvm主要用于保存稀疏数据 # 训练K-means聚类模型 kmeans = KMeans().setK(2).setSeed(1)#setK设定聚类中心个数

Sklearn K均值聚类

浪子不回头ぞ 提交于 2019-11-29 03:51:56
## 版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(PCA) SciKit-Learn 预处理数据 SciKit-Learn K均值聚类 SciKit-Learn 支持向量机 SciKit-Learn 速查 到目前为止,我们已经非常深入地了解了数据集,并且把它分成了训练子集与测试子集。 接下来,我们将使用聚类方法训练一个模型,然后使用该模型来预测测试子集的标签,最后评估该模型的性能。 聚类(clustering)是在一组未标记的数据中,将相似的数据(点)归到同一个类别中的方法。聚类与分类的最大不同在于分类的目标事先已知,而聚类则不知道。K均值聚类是聚类中的常用方法,它是基于点与点的距离来计算最佳类别归属,即靠得比较近的一组点(数据)被归为一类,每个聚类都有一个中心点。 我们首先创建聚类模型,对训练子集进行聚类处理,得到聚类中心点。然后使用模型预测测试子集的标签,预测时根据测试子集中的点(数据)到中心点的距离来进行分类。 创建模型 示例 创建聚类模型。 import numpy as np from sklearn import datasets # 加载 `digits` 数据集 digits =

数据挖掘与数据分析

岁酱吖の 提交于 2019-11-28 08:13:27
一、数据挖掘和数据分析概述 数据挖掘和数据分析都是从数据中提取一些有价值的信息,二者有很多联系,但是二者的侧重点和实现手法有所区分。 数据挖掘和数据分析的不同之处: 1、在应用工具上,数据挖掘一般要通过自己的编程来实现需要掌握编程语言;而数据分析更多的是借助现有的分析工具进行。 2、在行业知识方面,数据分析要求对所从事的行业有比较深的了解和理解,并且能够将数据与自身的业务紧密结合起来;而数据挖掘不需要有太多的行业的专业知识。 3、交叉学科方面,数据分析需要结合统计学、营销学、心理学以及金融、政治等方面进行综合分析;数据挖掘更多的是注重技术层面的结合以及数学和计算机的集合 数据挖掘和数据分析的相似之处: 1、数据挖掘和数据分析都是对数据进行分析、处理等操作进而得到有价值的知识。 2、都需要懂统计学,懂数据处理一些常用的方法,对数据的敏感度比较好。 3、数据挖掘和数据分析的联系越来越紧密,很多数据分析人员开始使用编程工具进行数据分析,如SAS、R、SPSS等。而数据挖掘人员在结果表达及分析方面也会借助数据分析的手段。二者的关系的界限变得越来越模糊。 二、数据挖掘 1 数学预备知识 概率论:支撑整个数据挖掘算法和机器学习算法的数学基础,要熟悉常见的一些概率分布。 矩阵论:线性代数中对数据挖掘最有用的部分,还有一些线性空间相关知识也很重要。 信息论

无监督学习——降维

亡梦爱人 提交于 2019-11-27 11:12:37
降维算法应用:数据压缩、数据可视化。 主成分分析 ( PCA ) 是最常见的降维算法。 在 PCA 中,我们要做的是找到一个方向向量( Vector direction ), 当我们把所有的数据 都投射到该向量上时,我们希望投射平均均方误差能尽可能地小。方向向量是一个经过原点 的向量,而投射误差是从特征向量向该方向向量作垂线的长度。 PCA算法推导 关于PCA算法推导我觉得还是挺复杂的。之前在做数模比赛时,经常用到PCA算法, 但是都是拿来直接套用解决实际问题,根本没有仔细思考原理推导。 这里总结一下PCA算法原理推导中用到的两个重要原理: 特征值分解矩阵和SVD分解矩阵。 1. 特征值分解矩阵原理 (1) 特征值与特征向量 如果一个向量v是矩阵A的特征向量,将一定可以表示成下面的形式: 其中,λ是特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。 (2) 特征值分解矩阵 对于矩阵A,有一组特征向量v,将这组向量进行正交化单位化,就能得到一组正交单位向量。 特征值分解 ,就是将矩阵A分解为如下式: 其中,Q是矩阵A的特征向量组成的矩阵, 则是一个对角阵,对角线上的元素就是特征值。 2. SVD分解矩阵原理 奇异值分解是一个能适用于任意矩阵的一种分解的方法,对于任意矩阵A总是存在一个奇异值分解: 假设A是一个m*n的矩阵,那么得到的U是一个m*m的方阵

无监督学习——聚类算法

感情迁移 提交于 2019-11-27 11:08:04
K-Means算法 K- 均值 是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚类成不同的 组。 K- 均值 是一个迭代算法,假设我们想要将数据聚类成 n 个组,其方法为 : 首先选择 𝐾 个随机的点,称为 聚类中心 ( cluster centroids ); 对于数据集中的每一个数据,按照距离 𝐾 个中心点的距离,将其与距离最近的中心点关 联起来,与同一个中心点关联的所有点聚成一类。 计算每一个组的平均值,将该组所关联的中心点移动到平均值的位置。 用 𝜇 1 , 𝜇 2 ,..., 𝜇 𝑘 来表示聚类中心,用 𝑐 (1) , 𝑐 (2) ,..., 𝑐 (𝑚) 来存储与第 𝑖 个实例数据最近的聚类中 心的索引, K- 均值 算法的伪代码如下: Repeat { for i = 1 to m c(i) := index (form 1 to K) of cluster centroid closest to x(i) for k = 1 to K μk := average (mean) of points assigned to cluster k } 算法分为两个步骤,第一个 for 循环是赋值步骤,即:对于每一个样例 𝑖 ,计算其应该属 于的类。第二个 for 循环是聚类中心的移动,即:对于每一个类 𝐾 ,重新计算该类的质心。 K- 均值

7.文档聚类

半世苍凉 提交于 2019-11-27 08:17:45
7.文档聚类 文档聚类或聚类分析是 NLP 和文本分析中一个有趣的领域,它应用了无监督的 ML 概念和技术。文档聚类的主要前提类似于文档分类,从文档的完整语料库开始,并根据文档的一些独特的特性、属性和特征将它们分为不同的组。文档分类需要预先标记的培训数据来构建模型,然后对文档进行分类。文档聚类则使用无监督的 ML 算法将文档分组成各种类。这些类的特性就是相较于和其他类的文档之间,一个类内的文档之间更相似、互相关联更紧密。 这里要记住一件重要的事情就是聚类是一种无监督的学习技术,类之间总有一些重叠,因为并没有一个完美的聚类这样的定义。所有这些技术都是基于数学、启发式算法以及一些聚类产生过程的固有属性,它们从来都不是 100% 完美的。目前有一些发现聚类的技术或方法,几种流行的聚类算法简要描述如下: 层次聚类属性 :这些聚类模型也称为基于连接的聚类方法,它基于一个概念,即相似对象在向量空间中应更接近于相关对象,而不是无关对象,即它们距离无关对象更远。聚类通过基于距离的连接对象形成,可以采用树状图来可视化。这些模型的输出是完整的、层次结构详尽的聚类。该类模型主要分为凝聚式和分裂式聚类模型。 基于质心的聚类模型 :这些模型以这样的方式构建聚类,即每个聚类都有一个中心的、有代表性的成员,它能够代表整个聚类,并具有将特定聚类和其他聚类区分开来的特征。基于质心的聚类模型包含多种算法,如 k

8.最佳电影聚类分析

拈花ヽ惹草 提交于 2019-11-27 08:17:41
8.最佳电影聚类分析 将使用电影简介作为原始数据,将总共 100 部流行电影进行聚类分析。IMDb 也称为互联网电影数据库(www.imdb.com),是一个在线的数据库,它提供有关电影、电子游戏和电视节目的大量详细信息。它聚集了电影和电视节目的评论以及简介,并有几个精选影片清单。原始数据地址 https://www.imdb.com/list/ls055592025/ 上获取名为 “100部最佳影片(中级清单),可在 https://github.com/brandomr/document_cluster 处进行下载。 解析并清洗了数据,并作为原始数据中缺少简介的几部电影添加了影片介绍。这些简介和电影描述来自维基百科。数据解析完成后,将它们存储在数据框中,并将其保存至 movie_data.csv 文件中: $ wget https: //mirror .shileizcc.com /wiki_Resources/python/text_analysis/movie_data .csv 将在聚类分析中加载并使用该文件中的数据,首先,需要加载并查看电影数据的内容,如下代码所示: import pandas as pd import numpy as np movie_data = pd.read_csv( 'movie_data.csv' ) print (movie_data

数据挖掘经典算法概述以及详解链接

不想你离开。 提交于 2019-11-26 21:47:42
po主最近在学习数据挖掘方面相关算法,今天就在这里总结一下数据挖掘领域的经典算法,同时提供每个算法的详解链接,就当做在这里温习吧。对于熟悉的算法我会有较多的描述,不熟悉的算法可能描述较少,以免误导,但是会贴出学习的链接。由于本人也是资历尚浅,必然有错误的地方,也希望大家能够指出来,我也会改正的,谢谢大家。 数据挖掘方面的算法,主要可以用作 分类,聚类,关联规则,信息检索,决策树,回归分析 等。他们的界限并不是特别的明显,常常有交叉,如聚类算法在一定程度上也是一种分类算法。分类算法比较成熟,并且分支也较多。 这里先介绍两个概念: 监督学习 与 非监督学习 。通俗一点说,如果我们提前设置一些标签,然后对于每个待分类项根据一定规则分类到某些标签,这就是 监督学习 。如果我们提前不知道标签,而是通过一定的统计手段将一定量的数据,分成一个个类别,这就是 非监督学习 ,通常用作“聚类”(不绝对)。当然监督学习常用作分类学习,也可用作回归分析等。 1.K-Means算法 K-Means算法是一种常用的 非监督学习 聚类算法,也常用在图像检索领域,如K-Means+BoF算法。它的作用就是我们可以在不知道有哪些类别的情况下,将数据以K个 类心 ,聚成K个 聚类 。 通常我们会先确定一个相异度度量方法,常用的相异度有, 欧氏距离,曼哈顿距离,马氏距离,余弦距离 等。根据两个数据之间的“距离