聚类-kmeans
时间:2019-11-03
本文章向大家介绍聚类-kmeans,主要包括聚类-kmeans使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、作用
给定一些离散点,然后将这些离散点进行分类,这也叫做聚类。例如,将一下离散点分为两类,中心点也就是绿点和橙色的点也叫做簇心。
二、步骤
- 选取k个初始质心(作为初始cluster);
- repeat:对每个样本点,计算得到距其最近的质心,将其类别标为该质心所对应的cluster; 重新计算k个cluser对应的质心;
- until 质心不再发生变化
三、CODE(SKLEARN)
1 from numpy import * 2 from sklearn.cluster import KMeans 3 from sklearn.model_selection import train_test_split 4 import matplotlib.pyplot as plt 5 6 # create data 7 n_data = array([[random.randint(100, 1000), random.randint(100, 1000)] for i in range(0, 1000)]) 8 label_n = array([0 for i in range(0, 1000)]) 9 p_data = array([[-1 * random.randint(100, 1000), -1 * random.randint(100, 1000)] for i in range(0, 1000)]) 10 label_p = array([1 for i in range(0, 1000)]) 11 data_all = concatenate((n_data, p_data), axis=0) 12 label_all = concatenate((label_n, label_p), axis=0) 13 14 X_train, X_test, y_train, y_test = train_test_split(data_all, label_all) 15 16 km = KMeans(n_clusters=2) # 初始化 17 km.fit(X_train, y_train) 18 predict = km.predict(X_test) 19 20 21 def accuracy(pred, real): 22 score = 0 23 for i in range(0, len(predict)): 24 if predict[i] == y_test[i]: 25 score += 1 26 return score * 1.0 / len(predict) * 1.0 27 28 29 center = km.cluster_centers_ 30 31 fig = plt.figure() 32 ax = fig.add_subplot(111) 33 34 35 ax.scatter(data_all[:, 0], data_all[:, 1], s=1) 36 ax.scatter(center[0, 0], center[0, 1]) 37 ax.scatter(center[1, 0], center[1, 1]) 38 plt.show()
四、时间复杂度
时间复杂度为 O(nkl)
- n为离散点个数
- k为簇心个数
- l为迭代次数
原文地址:https://www.cnblogs.com/ylxn/p/11732976.html
- 利用iText 组件导出PDF
- 利用POI组件导出Excel的简单示例
- MongoDB 整合spring-data-jpa,spring 4.x
- 【微信开发】 红包接口开发
- 【微信开发】 使用单例设计模式 提供AccessToken 和Jsapi_ticket缓存支持
- @ResponseBody响应JSON 406
- tomcat不能运行或共存多个项目
- Spring Task 定时任务
- 如何为机器学习索引,切片,调整 NumPy 数组
- 逆向工程分析:摩托罗拉安全摄像头究竟有多不安全?
- 【maven学习】 利用Profile构建不同环境的部署包
- 如何写好一份渗透测试报告?
- jqGrid 关闭刷新父页面数据
- [MyBatis]诡异的Invalid bound statement (not found)错误
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 树形结构已知子节点找父节点
- 解析 hashMap 源码之基本操作 get
- RCE(远程命令/代码执行漏洞)原理及复现
- 我的Vue不小心跨域了o(╥﹏╥)o 干它
- 金九银十准备季——Java后端多线程&并发面试题及答案(二)
- TypeScript 设计模式之观察者模式
- pytest文档46-关于https请求警告问题
- pytest文档45-allure添加环境配置(environment)
- Pytest fixture参数化params
- Python 批量合并 Excel
- 用 Python 了解一下最炫国漫《雾山五行》
- Python 基础(六):列表与元组
- Word 批量转 PDF
- Python 数据分析(一):NumPy 基础知识
- 每日一题 | 环形排列问题