首页 > 其他分享 >K-Means聚类分析-有标签

K-Means聚类分析-有标签

时间:2023-06-13 17:26:18浏览次数:35  
标签:Means 标签 labels dic print train test model 聚类分析

模型亮点

  1. 初始测试集上评分为0.51,调参后测试集上评分为0.75
  2. 数据集由sklearn自带

-----------------------------------------以下为模型具体实现-----------------------------------------

Step1.数据读取

from sklearn.datasets import load_iris
iris=load_iris()
x=iris.data
y=iris.target
import pandas as pd
df_x=pd.DataFrame(x)
df_y=pd.DataFrame(y)
df_x.columns=['sepal_length','sepal_width','petal_length','petal_width']
df_y.columns=['class']

Step2.数据清洗

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=1)

Step3.启动聚类分析

from sklearn.cluster import KMeans
n=2 #初始参数设置
def kmeans(n,x_train,y_train):
    model=KMeans(n_clusters=n) #初始参数设置
    model.fit(x_train,y_train)
    return model
model=kmeans(n,x_train,y_train)

Step4.模型评估-有标签

from sklearn.metrics import adjusted_rand_score
dic={} #定义空字典,存放兰德指数
def lande(model,x_test,y_test):
    labels_true=y_test
    labels_pred=model.predict(x_test)
    print("兰德指数:",round(adjusted_rand_score(labels_true,labels_pred),2))
    dic[n]=(round(adjusted_rand_score(labels_true,labels_pred),2))
    return model
print("-----初始聚成 2 簇-----")
model=lande(model,x_test,y_test)

Step5.优化参数

for n in range(3,9):
    print("-----聚成",n,"簇-----")
    model=kmeans(n,x_train,y_train) #训练模型
    model=lande(model,x_test,y_test) #评估模型
print("-----最优参数-----")
print("最优簇数:",list(dic.keys())[list(dic.values()).index(max(dic.values()))]) #字典由value反查key
print("最优兰德指数",max(dic.values())) #字典value中最大值

Step6.保存最优模型

n=list(dic.keys())[list(dic.values()).index(max(dic.values()))] #最优簇数
model=kmeans(n,x_train,y_train) #训练最优模型
from sklearn.externals import joblib
joblib.dump(model,'d:\kmeans_labels.pkl')
new_model=joblib.load('d:\kmeans_labels.pkl')
new_model.predict(x_test)

-END

标签:Means,标签,labels,dic,print,train,test,model,聚类分析
From: https://www.cnblogs.com/peitongshi/p/17478187.html

相关文章

  • #yyds干货盘点#新的HTML标签 :<search>
    本文介绍了一种新的HTML元素搜索方法,并提供了一个实用的工具来帮助开发者快速找到所需的元素。这对于那些需要处理大量HTML元素的开发者来说是非常有用的。文章还通过提供一些常见元素的用法示例,帮助开发者更好地理解和应用这些元素。在众多元素中找到特定的元素。为了解决这个问题......
  • HTML的常用标签
    1、标签的分类1)单标签:只需要单独使用就能完整地表达意思。常见的单标签有:<br>,<hr>,<imgsrc="路径"alt="">,<input>,<meta>,<link>2)双标签:由“始标签”和“尾标签”构成,必须成对使用。其中尾标签比始标签多一个'/'。常见的尾标签有:<html>,<body>,<footer>,<t......
  • 视频直播网站源码,vue tabs标签页 点击才加载
    视频直播网站源码,vuetabs标签页点击才加载tabs标签页,默认加载显示第1个tab; <el-tabsv-model="tTab"type="card"style="height:100%"@tab-click="tTabClick">  <el-tab-panelabel="Jupyter"name="Jupyter">   ......
  • Python 绘图 colorbar 隐藏刻度保留标签 (颜色刻度 和标签刻度 两个)
      ax3=fig.add_axes(config['setpng']['colorbar'])#四个参数分别是左、下、宽、长  cb3=mpl.colorbar.ColorbarBase(ax3,cmap=_cmap,norm=norm)  #set_colorbar_ticks(cb3,levels,config['levels']['wind_s_label'])#色标刻度调整  ......
  • 0001. Kmeans聚类算法
    一、Kmeans原理Kmeans算法是一种常见的聚类算法,用于将数据集划分成k个不重叠的簇。其主要思想是通过迭代的方式将样本电话分到不同的簇中,使得同一簇内的样本点相似度较高,不同簇之间的相似度较低。Kmeans算法的详细步骤:初始化:选择k个初始聚类中心,可以是随机选择或者根据某种启......
  • R语言上市公司经营绩效实证研究 ——因子分析、聚类分析、正态性检验、信度检验
    全文链接:http://tecdat.cn/?p=32747原文出处:拓端数据部落公众号随着我国经济的快速发展,上市公司的经营绩效成为了一个备受关注的话题。本文旨在探讨上市公司经营绩效的相关因素,并运用数据处理、图示、检验和分析等方法进行深入研究,帮助客户对我国45家上市公司的16项财务指标进行......
  • tempate标签的使用
    template标签我在引用这个标签的时候,本来还在纳闷,咋就他那么特殊,就他不显示,然后突然意识到,这个标签天生不可见,即display:none属性可以在template标签里面放content模块,然后使用button点击事件实现内容的展现;具体实现如下:<template><ul><li>模块1</li><......
  • CSS_显示某块和标签嵌套
    一、显示模块1、块级元素特点:1.独占一行(一行只能显示一个)2.宽度默认是父元素的宽度,高度默认由内容撑开3.可以设置宽高例如:div、p、h系列、ul、li、dl、dt、dd、form、header、.nav、footer.2、行内元素特点:1.一行可以显示多个2.宽度和高度默认由内容撑开3.不可以设......
  • Python+matplotlib设置坐标轴文本标签排列方式
    在默认情况下,y轴的文本标签方向是下面这样的:有时候这样子不方便看,我们可能希望文字水平显示并且每行显示一个字,如下图:这时可以使用ylabel()函数的rotation属性设置为'horizontal'并通过手动插入换行符来实现。参考代码如下:公众号“Python小屋”x......
  • Python+Matplotlib+MiKTex设置标签字符串中任意字符格式
    任务描述:在使用matplotlib可视化时,title()、xlabel()、ylabel()、xticks()、yticks()或类似的函数和方法中的字符串首尾加符号“$”,可以调用matplotlib内嵌的Latex引擎进行渲染,例如:Python+matplotlib调用LaTex引擎渲染公式Python+matplotlib绘图使用Latex引擎渲染坐标轴刻度文本上......