kmeans

Mo平台部署介绍

空扰寡人 提交于 2020-04-15 00:45:47
【推荐阅读】微服务还能火多久?>>> 平台部署介绍 转眼间我们的技术博客栏目也已经发布到第23期啦,小Mo已经为大家介绍了各种领域许多不同的机器学习算法与实现。之前呢,我们的工作人员也与Mo-AI俱乐部的大家做了小小的调研~希望能够做出更多大家想要看到的主题! 那第一个就是你啦,非常感谢这位朋友提给我们的意见,今天我们就来看看,在Mo平台上,怎么部署一个训练好的模型,能够方便大家直接调用。 1. 新建一个项目 在 工作台 中新建一个项目并进入开发页面,要部署的话,一定是选择新建 项目 。 在当前新建的项目中,点击左侧 Files ,显示了当前工作目录下的文件和文件夹。 results 文件夹,用于存放模型与checkpoints,其中的 tb_results 用于当使用 TensorBoard 功能时存放可视化数据。 _OVERVIEW.md markdown文件,用于展示项目说明。 _README.ipynb 为介绍文档。 打开 coding_here.ipynb 或新建一个 notebook (可参考帮助文档中的 基本页面 中的 开发环境 部分)。来开始我们的代码吧。 2. 编写模型的训练与预测代码 导入需要的python模块 import os import sys from sklearn.externals import joblib from sklearn

参考《机器学习实战》高清中文PDF+高清英文PDF+源代码

我的未来我决定 提交于 2020-04-11 07:52:22
机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 入门建议参考《机器学习实战》,分为4个部分,分别是分类(有监督学习,包括KNN/决策树/朴素贝叶斯/逻辑斯蒂回归/svm/改变样本权重的bagging和adaboosting)、回归(有监督学习,线性回归、局部加权、特征维度比样本个数多时缩减系数,如岭回归、lasso等,树回归,这块掌握不太好)、无监督学习(kmeans、apriori/fp-growth)以及其他工具(PCA/SVD/MAPREDUCE)。 学习参考: 《机器学习实战》高清中文版, 339页,带目录书签,文字可复制;高清英文版, 382页,带目录书签,文字可复制; 中英文两版对比学习。讲解详细并配有源代码。 网盘下载: http://106.13.73.98 ![](https://img2018.cnblogs.com/other/1499715/201906/1499715-20190604164225573-1297509638.png) 来源: oschina 链接: https://my.oschina.net/u/4258425/blog/3228795

kmeans++

筅森魡賤 提交于 2020-03-30 05:45:08
前一阵子有一个学弟问kmeans算法的初始中心点怎么选,有没有什么算法。我让他看看kmeans++,结果学弟说有地方没看懂。然后,他不懂的地方,我给标注了一下。 下面是网上的资料,我对画线的地方做了标注。 k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。 wiki上对该算法的描述 如下: 从输入的数据点集合中随机选择一个点作为第一个聚类中心 对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x) 选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大 重复2和3直到k个聚类中心被选出来 利用这k个初始的聚类中心来运行标准的k-means算法 从上面的算法描述上可以看到,算法的关键是第3步,如何将D(x)反映到点被选择的概率上,一种算法如下: 先从我们的数据库随机挑个随机点当“种子点” 对于每个点,我们都计算其和最近的一个“种子点”的距离D(x)并保存在一个数组里,然后把这些距离加起来得到Sum(D(x))。 然后,再取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是, 先取一个能落在Sum(D(x))中的随机值Random , 然后用Random -= D(x) ,直到其<=0,此时的点就是下一个“种子点”。 这个Random 可以这么取:

多元统计分析R语言建模| 6 聚类分析

試著忘記壹切 提交于 2020-03-27 11:43:47
3 月,跳不动了?>>> 基本概念(Cluster Analysis) “物以类聚” 分析方法 系统聚类 快速聚类 类型 Q型聚类:对 样品 的聚类 R型聚类:对 变量 的聚类 聚类统计量 距离 欧氏距离 马氏距离 兰式距离 相关系数 距离矩阵 相关矩阵 距离矩阵计算——dist(),cor() 系统聚类法 基本思想:先将样品分成类,每个样品为一类,然后每次将具有最小距离的两类合并,合并后重新计算类与类之间的距离,直到所有样品归为一类为止 类间距离 的计算方法 最短距离法(single) 最长距离法(complete) 中间距离法(median) 类平均法(avera) 重心法(centroid) 离差平方和法(Ward) 通用公式 hclust(D,method=) 快速聚类法kmeans 概念:基本思想是将每一个样品分配给最近中心(均值)的类中 原理:n个对象分k类,类内 相似度 高,类间相似度低 相似度:类中对象的均值mean来计算 kmeans(x,centers) 不足:只有在类均值被定义的情况下才能使用,对孤立点、噪声影响敏感 knn,kmed,中位数 变量变换 平移变换 极差变换 标准差变换 主成分 对数 x1=c(2.5,3.0,6.0,6.6,7.2,4.0,4.7,4.5,5.5) x2=c(2.1,2.5,2.5,1.5,3.0,6.4,5.6,7.6,6.9

详解聚类算法Kmeans的两大优化——mini-batch和Kmeans++

淺唱寂寞╮ 提交于 2020-03-25 09:36:18
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 机器学习专题的第13篇 文章,我们来看下Kmeans算法的优化。 在上一篇文章当中我们一起学习了Kmeans这个聚类算法,在算法的最后我们提出了一个问题:Kmeans算法虽然效果不错,但是每一次迭代都需要遍历全量的数据,一旦数据量过大,由于计算复杂度过大迭代的次数过多,会导致 收敛速度非常慢 。 想想看,如果我们是在面试当中遇到的这个问题,我们事先并不知道正解,我们应该怎么回答呢? 还是老套路,我们在回答问题之前,先来分析问题。问题是收敛速度慢,计算复杂度高。计算复杂度高的原因我们也知道了, 一个是因为样本过大,另一个是因为迭代次数过多 。所以显然,我们想要改进这个问题,应该从这两点入手。 这两点是问题的关键点,针对这两点我们其实可以想出很多种优化和改进的方法。也就是说这是一个开放性问题,相比标准答案,推导和思考问题的思路更加重要。相反,如果我们抓不住关键点,那么回答也会跑偏,这就是为什么我在面试的时候,有些候选人会回答使用分布式系统或者是增加资源加速计算,或者是换一种其他的算法的原因。 也就是说分析问题和解决问题的思路过程,比解决方法本身更加重要。 下面,我们就上面提到的两个关键点各介绍一个优化方法。 mini batch mini batch的思想非常朴素,既然全体样本当中数据量太大

Kmeans原理与实现

早过忘川 提交于 2020-03-22 04:45:44
原理 http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html 实现 http://www.cnblogs.com/zjutzz/p/5924762.html 无监督学习之K-均值算法分析与MATLAB代码实现 转载 https://blog.csdn.net/liweibin1994/article/details/77898341 前言 K-均值是一种无监督的聚类算法。首先我们要知道什么是无监督,无监督就是说在数据集中,数据是没有标签的。在有监督的数据集中,数据的形式可能是这样: { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) } {(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}。而在无监督的数据集中,数据的形式是: { x ( 1 ) , x ( 2 ) , . . . , x ( m ) } {x(1),x(2),...,x(m)}。所谓的标签,就是有没有y。 无监督学习一般用来做什么呢?比如市场分割,也许在你的数据库中有很多用户的数据,你希望将用户分成不同的客户群,这样对不同类型的客户你可以分别提供更合适的服务。再比如 图片压缩 ,假如图片有256种颜色

第五周学习

前提是你 提交于 2020-03-20 10:28:01
本周学习了机器学习kmeans算法,对科技成果项目进行聚类分析,将分类后的结果与行业进行比照。 K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽可能紧密的连在一起,而让簇间的距离尽量的大。 K-Means算法优缺点 优点 聚类效果较优。 原理简单,实现容易,收敛速度快。 需要调整的参数较少,通常只需要调整簇数K。 缺点 K值选取不好把握。 对噪音和异常点比较敏感。 采用迭代方法,得到的结果是局部最优。 如果各隐含类别的数据不平衡,则聚类效果不佳。 import matplotlib.pyplot as plt from sklearn.datasets import make_blobs # 导入产生模拟数据的方法 from sklearn.cluster import KMeans # 1. 产生模拟数据 k = 5 X, Y = make_blobs(n_samples=1000, n_features=2, centers=k, random_state=1) # 2. 模型构建 km = KMeans(n_clusters=k, init='k-means++', max_iter=30) km.fit(X) # 获取簇心 centroids = km.cluster_centers_ #

基于Kmeans聚类算法实现图像分割(从原理开始实现)

谁说我不能喝 提交于 2020-03-12 17:15:14
一、Kmeans聚类算法基本原理 K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。 以彩色图像为例:基于彩色图像的RGB三通道为xyz轴建立空间直角坐标系,那么一副图像上的每个像素点与该空间直角坐标系建立了一 一映射(双射)的关系。 从空间直角坐标系中随机取 k 个点,作为 k 个簇的各自的中心。计算所有像素点到k个簇心的距离,并将所有像素点划分至与其距离最小的簇类。自此聚类完成。其中,距离定义为欧氏距离: 其中r,g,b分别表示红绿蓝三通道,r1,g1,b1为彩色图片中某像素点;r0,g0,b0表示某簇类的簇心。 二、基于Kmeans图像分割算法流程 Note:彩色图像的操作是基于一个三维空间 1、加载图像,获取图像的所有像素点并将其转换为样本数据。 2、开始迭代 a)、初始化簇心坐标。 a)、更新簇心坐标,遍历样本数据中的数据点并计算数据点与所有簇心的距离。对于某数据点计算得到的与所有簇类的欧氏距离中,取欧氏距离最小所对应的簇类作为该数据点对应的类。 c)、计算更新后的簇心坐标与更新前的簇心坐标的均方误差。若均方误差仍大于某阈值,则重复b),反之结束迭代。 Kmeans的详细算法流程参考博文: https://www.cnblogs.com/pinard/p/6164214

无监督学习之聚类1——Kmeans

吃可爱长大的小学妹 提交于 2020-03-11 05:25:47
Kmeans算法分析31省市消费水平 #coding=utf-8 import numpy as np from sklearn.cluster import KMeans def loadData(filepath): fr = open(filepath, 'r+') lines = fr.readlines() retData = [] retCityName = [] for line in lines: items = line.strip().split(",")#以逗号为分割符读取数据 retCityName.append(items[0]) #将城市名加到城市名数据列表中 retData.append([float(items[i]) for i in range(1,len(items))]) #将数据中的其他data转化为float后加到retData中 return retData,retCityName if __name__ == '__main__': data,cityName = loadData('F:\data\city.txt') km = KMeans(n_clusters=4) #分成的簇的数目 label = km.fit_predict(data)#计算簇中心及为簇分配序号 expenses = np.sum(km.cluster

Kmeans算法与KNN算法的区别

被刻印的时光 ゝ 提交于 2020-03-05 09:52:22
最近研究数据挖掘的相关知识,总是搞混一些算法之间的关联,俗话说好记性不如烂笔头,还是记下了以备不时之需。 首先明确一点KNN与Kmeans的算法的区别: 1.KNN算法是分类算法,分类算法肯定是需要有学习语料,然后通过学习语料的学习之后的模板来匹配我们的测试语料集,将测试语料集合进行按照预先学习的语料模板来分类 2Kmeans算法是聚类算法,聚类算法与分类算法最大的区别是聚类算法没有学习语料集合。 K-means算法是聚类分析中使用最广泛的算法之一。它把n个对象根据他们的属性分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。其聚类过程可以用下图表示: 如图所示,数据样本用圆点表示,每个簇的中心点用叉叉表示。(a)刚开始时是原始数据,杂乱无章,没有label,看起来都一样,都是绿色的。(b)假设 数据集可以分为两类,令K=2,随机在坐标上选两个点,作为两个类的中心点。(c-f)演示了聚类的两种迭代。先划分,把每个数据样本划分到最近的中心点 那一簇;划分完后,更新每个簇的中心,即把该簇的所有数据点的坐标加起来去平均值。这样不断进行”划分—更新—划分—更新”,直到每个簇的中心不在移动为 止。 该算法过程比较简单,但有些东西我们还是需要关注一下,此处,我想说一下"求点中心的算法" 一般来说,求点群中心点的算法你可以很简的使用各个点的X