kMeAnS代码

news/2024/5/20 6:23:05 标签: kmeans, 聚类, 机器学习

Kmeans算法是一个无监督算法,

他是根据一大堆数据自己训练出他自己是属于哪一类型的,本质上也是算距离

kmeans_4">我们先自己搞一个已经做好分类的kmeans数据集

from sklearn.datasets import make_blobs #自己创建数据集 
X, y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=1)  #有500样本,2个类别,4个中心点
plt.scatter(X[:, 0], X[:, 1], marker='o')#点的形状 ,s=8 #点的大小

color = ["red","pink","orange","gray"] 
for i in range(4): 
	plt.scatter(X[y==i, 0], X[y==i, 1]
	,marker='o'   #点的形状 
	,s=8         #点的大小 
	,c=color[i] ) 
plt.show()

# 这样就看到了一个可视化的kmeans

下面来正式导入sklearn实践

from sklearn.cluster import KMeans 
n_clusters = 3 
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(X) 

cluster.labels_   #重要属性 labels_,查看聚好的类别,每个样本所对应的类
cluster.cluster_centers_  #这个是用来看质心的坐标的

# 如何衡量模型的好坏,用轮廓系数:
# 依赖评价簇内的稠密程度(簇内差异小)和簇间的离散程度(簇外差异大)来评估聚类的效果
# 轮廓系数越接近 1:样本与自己所在的簇中的样本很相似,并且与其他簇中的样本不相似。
# 轮廓系数为 0 时:两个簇中的样本相似度一致,两个簇本应该是一个簇。
# 轮廓系数为负时:样本点与簇外的样本更相似。

from sklearn.metrics import silhouette_score   #返回的是一个数据集中,所有样本的轮廓系数的均值。
from sklearn.metrics import silhouette_samples  #返回的是数据集中每个样本自己的轮廓系数

import pandas as pd 
score=[] 
for i in range(2,100): 
	cluster= KMeans(n_clusters=i, random_state=0).fit(X) 
	score.append(silhouette_score(X,cluster.labels_)) 
plt.plot(range(2,100),score) 
plt.axvline(pd.DataFrame(score).idxmin()[0]+2,ls=':')

http://www.niftyadmin.cn/n/1517699.html

相关文章

使用MapReduce程序实现从hbase读写数据输出到hdfs分布式文件系统中

将hbase中的数据迁移到hdfs分布式文件系统中 package com.briup.hbase;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoo…

Hadoop相关面试题总结

Hadoop常用端口号: dfs.namenode.http-address:50070 dfs.datanode.http-address:50075 SecondaryNameNode辅助名称节点端口号:50090 dfs.datanode.address:50010 fs.defaultFS:8020或9000 yarn.resourcemanager.webapp.address:8088 历史服务器w…

MySQL关系型数据库存储引擎、事务、索引、视图、范式等相关总结

MySQL约束包括哪些? 主键约束外键约束不能为空(not null)唯一(unique) 一、存储引擎 1.什么是存储引擎,有什么用 存储引擎是MySQL中特有的一个术语,其他数据库中没有。存储引擎是一个表存储…

json和对象的区别_理解JavaScript中浅拷贝和深拷贝的区别

后台回复【福利】限时领取JS零基础入门课程浅拷贝和深拷贝是什么意思?今天就来带大家聊聊这个既简单又复杂的问题。要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型JavaScript有两种数据类型,基础数据类型和引用数据…

idea变成白色_「每日idea分享」音乐视频发现平台;帮用户找口味相同的室友

【每日idea分享】这是铅笔道推出的一个全新的栏目,每日为读者推荐10款国外新奇有趣的互联网产品,信息来自于Product Hunt,希望帮助大家打开脑洞。1.OnlyFams:fams能把用户的粉丝变成家人。为任何用例建立一个私人社区,…

echartsx轴按当前时间自动移动 vue_FANUC系统如何追加第四轴?

FANUC系统如何追加第四轴?前期文章,Fanuc系统如何追加第四轴(选型篇),应读者需求,我们这期提供实际安装应用。一 伺服电机选择最常用的转台有170,210,250和320几种。这些数字代表转台的圆盘直径。分度盘规格…

大数据shipin教程_好程序员大数据教程分享超详细大数据学习路线

随着信息产业的迅猛发展,大数据应用逐渐落地,行业人才需求量逐年扩大。大数据成为目前最具前景的高薪行业之一,大数据分析工程师、大数据开发工程师等大数据人才也成为市场紧缺型人才,薪资一涨再涨。很多人想要加入到大数据开发行…

jmh气象传真图网站_开眼界了,中央气象台官方吐槽“天气预报是不准的”!看到后面已笑疯……...

今天早上如常刷天气预报,结果被中央气象台的一番操作惊呆了!中央气象台居然官方明确表示:“天气预报是不准的!”虽然编辑部的同事也经常吐槽说我写的天气预报不准,“说下雨又不下雨,骗子!说天晴…