#!/usr/bin/env Python3

# -*- coding: utf-8 -*-

# @Software: PyCharm

# @virtualenv:workon

# @contact: Kmeans聚类算法,数据集是Iris(鸢尾花的数据集),分类数k是3,数据维数是4。

# @Desc:Code descripton

__author__ = '未昔/AngelFate'

__date__ = '2019/8/17 21:00'

import pandas as pd

import numpy as np

import matplotlib.pylab as plt

"""

K-means聚类算法是典型的基于距离的非层次聚类算法,在最小化误差函数的基础上将数据划分为预定的K个类,使得K个类达到类内数据距离之和最小而类间距离之和最大。它是无监督学习算法,采用距离作为相似性的度量指标,即认为两个对象距离越近,其相似性就越大。

1、数据类型与相似性度量

(1)连续属性和离散属性数据

对于连续属性,要依次对每个属性的属性值进行零-均值化处理;对于离散属性,要依次对每个属性的属性值进行数值化处理。然后通过计算距离来度量相似性,K-means聚类算法中一般需要计算样本间的距离,样本和簇的距离,簇和簇的距离。其中,样本间的距离通常用欧式距离(欧几里得距离)、曼哈顿距离和闵可夫斯基距离,样本和簇的距离可以用样本到簇中心的距离代替,簇和簇距离可以用簇中心到簇中心的距离代替。

"""

data = pd.read_table('Iris_data.txt', sep=' ', encoding='utf8',index_col=False,names=['a','b','c','d'])

x = data[['a', 'b', 'c', 'd']].values

print('x:\n',x)

from sklearn.cluster import KMeans

k = 4

iteration = 500

model = KMeans(n_clusters=k, n_jobs=1, max_iter=iteration)

y = model.fit_predict(x)

label_pred = model.labels_

centroids = model.cluster_centers_

inertia = model.inertia_

print('y:\n',y)

print('聚类标签:\n',label_pred)

print('聚类中心:\n',centroids)

print('聚类准则的总和:\n',inertia)

print('----分类结果----:')

result = list(zip(y, x))

for i in result:

print(i)

r1 = pd.Series(model.labels_).value_counts()

print('r1:\n',r1)

r2 = pd.DataFrame(model.cluster_centers_)

print('r2: \n', r2)

r = pd.concat([r2, r1], axis=1)

r.columns = data.columns.tolist() + ['类别数目']

print('r: \n', r)

file = open('result.txt','w',encoding='utf8')

file.write(str(r1)+'\n\n'+str(r2)+'\n\n'+str(r))

file.close()

result:

| a b c d 类别数目 |

| | 0 6.997947 2.994129 5.794507 1.493422 14559 |

| | 1 5.006063 3.000701 3.196228 1.494557 14837 |

| | 2 7.003359 3.007491 3.286257 1.491236 15253 |

| | 3 5.019887 2.991471 5.724741 1.521535 15351 |

python聚类分析鸢尾花_K-Means 聚类算法实现鸢尾花数据的聚类相关推荐

  1. k均值聚类算法python_K均值和其他聚类算法:Python快速入门

    k均值聚类算法python This post was originally published here 这篇文章最初发表在这里 Clustering is the grouping of obje ...

  2. 【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★

    文章目录 一. K-Means 聚类算法流程 二. 二维数据的 K-Means 聚类 1. 第一次迭代 2. 第二次迭代 参考博客 : [数据挖掘]聚类算法 简介 ( 基于划分的聚类方法 | 基于层次 ...

  3. 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )

    文章目录 I . 聚类主要算法 II . 基于划分的聚类方法 III . 基于层次的聚类方法 IV . 聚合层次聚类 图示 V . 划分层次聚类 图示 VI . 基于层次的聚类方法 切割点选取 VII ...

  4. 聚类算法:Hierarchical Clustering层次聚类

    1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离.每次将距离最近的点合并到同一个类.然后,再计算类与类之间的距离,将距离最近的类 ...

  5. 聚类算法(4)--Hierarchical clustering层次聚类

    目录 一.层次聚类 1.层次聚类的原理及分类 2.层次聚类的流程 3.层次聚类的优缺点 二.python实现 1.sklearn实现 2.scipy实现 树状图分类判断 一.层次聚类 1.层次聚类的原 ...

  6. 聚类算法(五)——层次聚类 linkage (含代码)

    聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...

  7. 聚类算法(六)——谱聚类 (含代码)

    聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...

  8. 【机器学习算法】聚类分析-2 聚类算法的分类,层次聚类算法的选择

    目录 聚类算法的分类 层次聚类的算法, 单一聚类法(single link) 完全链结法 平均链结法 中心链结法 Ward's法 我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主 目前进 ...

  9. 【聚类算法】常见的六大聚类算法

    转自:https://blog.csdn.net/Katherine_hsr/article/details/79382249 感谢博主小姐姐 算法步骤: (1) 首先我们选择一些类/组,并随机初始化 ...

最新文章

  1. 刀片服务器与机架服务器对比
  2. ffmpeg+nginx+video实现rtsp流转hls流,通过H5查看监控视频
  3. bzoj3786: 星系探索
  4. ASP.Net MVC——使用 ITextSharp 完美解决HTML转PDF(中文也可以)
  5. windows 10打开或禁用管理员账户
  6. mitmproxy抓包 | Python疑难测试场景mock实战(四)
  7. 洛谷 P4409 [ZJOI2006] 皇帝的烦恼
  8. 2020,国产数据库崭露峥嵘的发轫之年
  9. 《王者荣耀》强制实名;联想打脸雷军;HTC 拍 VR 版《笑傲江湖》| 极客头条
  10. jsp 连接sql数据库查询(源代码)
  11. exchange2003升级exchange2010思路----(3)卸载
  12. C/C++[codeup 1907]吃糖果
  13. VBA 学习笔记 Word样式处理
  14. NeoKylin(linux)操作系统基本操作(自用)
  15. WinCC RT Adv 项目下载与自动运行
  16. 凸集学习——理解凸集概念、凸包演示
  17. 东华理工大学计算机网络期末考试试卷,东华理工大学计算机网络计算题
  18. WAF防火墙有什么用
  19. LeetCode(力扣)_接雨水
  20. 10大APP界面框架设计模式详解

热门文章

  1. mysql设置主键的作用_mysql设置主键有什么用
  2. 轮廓波-非下采样轮廓波NSCT
  3. CVPR2018跟踪算法STRCF原理及代码解析
  4. 债券价格和到期收益率的关系_2017年《证券投资基金》基础知识:当期收益率、到期收益率与债券价格之间的关系...
  5. 算法第二弹-线性规划之投资的收益和风险分析及代码实现(二)
  6. Redis实践(二)高可用的集群+哨兵部署
  7. DW设计的服装展示网站
  8. 立创EDA画图过程,实际布线考虑,自动布线的多板框问题,自动布线
  9. 【六爻】明天新同事会入职吗?
  10. 国税计算机专业面试题,2017国考国税系统面试模拟题:“互联网+税收服务”