聚类

从事python机器学习,这些三方库很重要!

随声附和 提交于 2020-08-18 14:35:58
  很多人之所以喜欢python,不仅仅因为简单易学、容易入门,更多是因为python有强大的第三方库,那么在机器学习中,python有哪些库可以使用呢?   1、Scikit-learn:最流行的ML库之一,支持很多监督学习和非监督学习算法。基于两个python库,Numpy 和 Scipy,为常见的机器学习和数据挖掘提供一组算法,聚类、回归和分类。   2、Tensorflow:当你使用python编写代码,你可以编译和运行在你的CPU或者GPU上,你不需要写C++或者CUDA的代码,可以运行在GPU集群上。   3、Theano:另一个用于数值计算的优秀类库,类似于Numpy。Theano允许你高效定义,优化和评估涉及多维数组的数学表达式。与众不同的是它利用计算机的GPU,能够比单独在CPU上运行时快100倍进行数据密集型计算。   4、Pandas:非常流行的一个库,提供简单易用且直观的高效数据结构,有许多内建的方法来分组、组合数据和过滤以及执行时间序列分析。可以轻松地从sql数据库、CSV、Excel、JSON文件等不同来源获取数据,并对数据进行操作。   5、Seaborn:一个流行的可视化库,建立在Matplotlib的基础之上,是一个高级库,意味着更容易生成某些类型的图,包含热图、时间序列等。 来源: oschina 链接: https://my.oschina

机器学习西瓜书 | 第一章 绪论

╄→尐↘猪︶ㄣ 提交于 2020-08-18 04:53:17
绪论 1.1 引言 机器学习 machine learning 是一种“学习算法”(learning algorithm) 1.2 基本术语 数据集(data set):记录的集合 示例(instance)= 样本(sample)= 特征向量(feature vector):记录,关于一个事件或对象的描述 属性(attribute)= 特征(feature):反映事件在某方面的表现或性质的事项 属性值(attribute space):属性的取值 属性空间(attribute space)= 样本空间(sample space)= 输入空间:属性张成的空间 样本维数(dimensionality):样本属性/特征的个数 学习(learning)= 训练(training)过程:从数据中学得模型的过程,通过执行某个学习算法来完成 训练数据(training data):训练过程中使用的数据 训练样本(training sample)= 训练示例/训练例(training instance):训练数据中的样本 训练集(training set):训练样本组成的集合 假设(hypothesis):学得模型对应的关于数据的潜在的规律 真相/真实(ground-truth):潜在规律本身,学习过程就是在找出或逼近真相 学习器(learner):学习算法在给定数据和参数空间上的实例化 标记

机器学习作业---K-Means算法

ε祈祈猫儿з 提交于 2020-08-17 18:23:56
--------------------------K-Means算法使用-------------------------- 一:数据导入及可视化 import numpy as np import matplotlib.pyplot as plt import scipy.io as sio data = sio.loadmat( " ex7data2.mat " ) X = data[ ' X ' ]   print(X.shape) plt.figure() plt.scatter(X[:, 0 ],X[:, 1 ],c= ' b ' ,marker= " o " ) plt.show() 注意:对于我们的无监督学习中,训练集中是没有标签值的,所以只有X,没有y 二:归类---寻找每个训练样本的聚类中心 (一)代码实现 def find_closest_centroids(X,centroids): m = X.shape[0] idx = np.zeros(m) #记录每个训练样本距离最短聚类中心最短的索引 idx = idx.astype(int) #因为numpy中没有int、float类型,是由系统决定是32、或者64位大小。所以我们这里手动设置位int类型,为后面做准备 for i in range(m): idx[i] = np.argmin(np.sum(np

K-means聚类算法及python代码实现

允我心安 提交于 2020-08-17 15:18:07
K-means 聚类算法( 事先数据并没有类别之分!所有的数据都是一样的 ) 1、概述 K-means 算法是 集简单和经典于一身的 基于距离的聚类算法 采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。 该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且独立的簇作为最终目标。 2、核心思想 通过 迭代 寻找 k 个 类簇 的一种划分方案,使得用这 k 个 类簇 的均值来代表相应各类样本时所得的总体误差最小。 k 个聚类具有以下特点: 各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开 。 k-means 算法的基础是 最小误差平方和准则 , 其代价函数是: 式中, μc(i) 表示第 i 个聚类的均值。 各 类簇 内的样本越相似,其与该类均值间的误差平方越小,对所有类所得到的误差平方求和,即可验证分为 k 类时,各聚类是否是最优的。 上式的代价函数无法用解析的方法最小化,只能有迭代的方法。 3、算法步骤图解 下图展示了对 n 个样本点进行 K-means 聚类的效果,这里 k 取 2 。 4、算法实现步骤 k-means 算法是将样本聚类成 k 个簇( cluster ),其中 k 是用户给定的 ,其求解过程非常直观简单,具体算法描述如下: 1) 随机选取 k 个聚类质心点 2) 重复下面过程直到收敛 { 对于每一个样例 i ,计算其应该属于的类:

七月算法机器学习 10 聚类算法与应用

随声附和 提交于 2020-08-17 09:03:39
目录 主要内容 聚类算法 K-means聚类 关于K的选定? K-means的局限性 层次聚类 聚类对比 高斯混合模型 GMM的优势? GMM的劣势? 总结和对比 主要内容 聚类算法 图像分割 K-means聚类 关于K的选定? K-means的局限性 层次聚类 自己确定在什么时间停止 不同粒度时的聚类情况 聚类对比 高斯混合模型 两个加权求值 任何的分布可以由多个高斯分布加权的和表示 随机给的高斯分布 EM算法 GMM的优势? t迭代次数,k是高斯核个数,n样本个数 GMM的劣势? 总结和对比 来源: oschina 链接: https://my.oschina.net/u/4339343/blog/4329389

用scikit-learn学习BIRCH聚类

江枫思渺然 提交于 2020-08-17 08:55:35
    在 BIRCH聚类算法原理 中,我们对BIRCH聚类算法的原理做了总结,本文就对scikit-learn中BIRCH算法的使用做一个总结。 1. scikit-learn之BIRCH类     在scikit-learn中,BIRCH类实现了原理篇里讲到的基于特征树CF Tree的聚类。因此要使用BIRCH来聚类,关键是对CF Tree结构参数的处理。     在CF Tree中,几个关键的参数为内部节点的最大CF数B, 叶子节点的最大CF数L, 叶节点每个CF的最大样本半径阈值T。这三个参数定了,CF Tree的结构也基本确定了,最后的聚类效果也基本确定。可以说BIRCH的调参就是调试B,L和T。     至于类别数K,此时反而是可选的,不输入K,则BIRCH会对CF Tree里各叶子节点CF中样本的情况自己决定类别数K值,如果输入K值,则BIRCH会CF Tree里各叶子节点CF进行合并,直到类别数为K。 2. BIRCH类参数     在scikit-learn中,BIRCH类的重要参数不多,下面一并讲解。     1) threshold :即叶节点每个CF的最大样本半径阈值T,它决定了每个CF里所有样本形成的超球体的半径阈值。一般来说threshold越小,则CF Tree的建立阶段的规模会越大,即BIRCH算法第一阶段所花的时间和内存会越多

白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现

谁都会走 提交于 2020-08-17 07:52:54
  离去年“ 马尔可夫链进行彩票预测 ”已经一年了,同时我也计划了一个彩票数据框架的搭建,分析和预测的框架,会在今年逐步发表,拟定了一个目录,大家有什么样的意见和和问题,可以看看,留言我会在后面的文章中逐步改善: 彩票数据框架与分析预测总目录 。同时这篇文章也是“ 【彩票】彩票预测算法(一):离散型马尔可夫链模型C#实现 ”的兄弟篇。所以这篇文章还有一个标题,应该是: 【彩票】彩票预测算法(二):朴素贝叶斯分类器在足球胜平负预测中的应用及C#实现 。    以前了解比较多的是SVM,RF,特征选择和聚类分析,实际也做过一些分类预测的任务。在近1年多的时间中,开始接触足球赛事的预测,刚开始也想使用SVM,Rf来进行预测,一方面效果太差,二是其理论也的确不满足我自己想法的要求。所以也一直在看很多机器学习,数据挖掘的文章。直到看到了贝叶斯的相关文章,在这2个多月的研究中,也积累了很多经验,同时也在使用C#来完成自己的想法,在这个过程中,夹杂很多的知识要点,我自己也很乱,所以趁假期总结一下,由于写太多的公式大家也不一定能耐心看,也不易于理解,所以我把这篇文章叫做“大话贝叶斯”,目的就是尽量通过自己的简单语言和描述(当然如果确实需要学习贝叶斯来解决问题,有些基本概念,如条件概率,边缘分布,分布函数等等还是需要自己搞清楚)让大家更容易的懂得和理解贝叶斯相关理论及其应用。同时我通过实际的C

(数据科学学习手札79)基于geopandas的空间数据分析——深入浅出分层设色

和自甴很熟 提交于 2020-08-17 03:58:20
本文对应代码和数据已上传至我的 Github 仓库 https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   通过前面的文章,我们已经对 geopandas 中的 数据结构 、 坐标参考系 、 文件IO 以及 基础可视化 有了较为深入的学习,其中在 基础可视化 那篇文章中我们提到了分层设色地图,可以对与多边形关联的数值属性进行分层,并分别映射不同的填充颜色,但只是开了个头举了个简单的例子,实际数据可视化过程中的分层设色有一套策略方法。   作为 基于geopandas的空间数据分析 系列文章的第五篇,通过本文你将会学习到基于 geopandas 和机器学习的 分层设色 。 2 基于geopandas的分层设色    地区分布图 ( Choropleth maps ,又叫面量图)作为可能是最常见的一种地理可视化方法,其核心是对某个与矢量面关联的数值序列进行有意义的分层,并为这些分层选择合适美观的色彩,最后完成对地图的着色,优点是美观且直观,即使对地理信息一窍不通的人,也能通过颜色区分出不同面之间的同质性与异质性: 图1   但同样地,如果对数据分层采取的方法有失严谨没有很好的遵循数据特点,会很容易让看到图的人产生出不正确的判断,下面我们按照先分层,后设色的顺序进行介绍。 2.1 基于mapclassify的数据分层  

美颜图像保边MeanShift滤波算法与实现

喜夏-厌秋 提交于 2020-08-16 18:05:50
本文将尝试使用MeanShift滤波来做磨皮算法;图玩智能科技为企业提供更稳定更优质的美颜产品及服务,欢迎随时咨询 www.toivan.com 。 MeanShift 即均值漂移,最早由Fukunage在1975年提出。 MeanShift 一般是指一个迭代的步骤,即先算出当前点的偏移均值,然后以此为新的起始点,继续移动,直到满足一定的结束条件;MeanShift广泛应用于图像聚类、平滑、分割和跟踪方面,本文主要讲的是图像的平滑滤波,尝试应用于人像的磨皮算法中; 我们使用一张图来讲解MeanShift的算法原理 Fig.1 基本MeanShift算法示意图 我们假设起始位置的滤波半径为Radius,也就是图a中的蓝色圆形区域半径,图a为起始位置,假设红色点为目标像素,每个目标像素包含位置特征和像素RGB特征; 1 ,计算图a起始位置处,半径Radius内目标像素的位置特征和像素RGB特征的均值M,如图c所示; 2 ,将起始位置的初始特征(位置特征和RGB特征)更新为特征M; 3 ,计算M处半径Radius区域内,目标像素的均值特征M; 4 ,按照1-3的过程进行迭代,直到满足一定的迭代次数和限制条件; 5 ,图a中起始位置的RGB特征值即为迭代完成时M的RGB特征值,如图f所示; 整个过程也叫均值漂移,实际上不是位置从图a起始值漂移到了f图中的位置

(数据科学学习手札79)基于geopandas的空间数据分析——深入浅出分层设色

橙三吉。 提交于 2020-08-16 17:28:30
本文对应代码和数据已上传至我的 Github 仓库 https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   通过前面的文章,我们已经对 geopandas 中的 数据结构 、 坐标参考系 、 文件IO 以及 基础可视化 有了较为深入的学习,其中在 基础可视化 那篇文章中我们提到了分层设色地图,可以对与多边形关联的数值属性进行分层,并分别映射不同的填充颜色,但只是开了个头举了个简单的例子,实际数据可视化过程中的分层设色有一套策略方法。   作为 基于geopandas的空间数据分析 系列文章的第五篇,通过本文你将会学习到基于 geopandas 和机器学习的 分层设色 。 2 基于geopandas的分层设色    地区分布图 ( Choropleth maps ,又叫面量图)作为可能是最常见的一种地理可视化方法,其核心是对某个与矢量面关联的数值序列进行有意义的分层,并为这些分层选择合适美观的色彩,最后完成对地图的着色,优点是美观且直观,即使对地理信息一窍不通的人,也能通过颜色区分出不同面之间的同质性与异质性: 图1   但同样地,如果对数据分层采取的方法有失严谨没有很好的遵循数据特点,会很容易让看到图的人产生出不正确的判断,下面我们按照先分层,后设色的顺序进行介绍。 2.1 基于mapclassify的数据分层