python聚类分析鸢尾花_K-Means 聚类算法实现鸢尾花数据的聚类
#!/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 聚类算法实现鸢尾花数据的聚类相关推荐
- k均值聚类算法python_K均值和其他聚类算法:Python快速入门
k均值聚类算法python This post was originally published here 这篇文章最初发表在这里 Clustering is the grouping of obje ...
- 【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★
文章目录 一. K-Means 聚类算法流程 二. 二维数据的 K-Means 聚类 1. 第一次迭代 2. 第二次迭代 参考博客 : [数据挖掘]聚类算法 简介 ( 基于划分的聚类方法 | 基于层次 ...
- 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )
文章目录 I . 聚类主要算法 II . 基于划分的聚类方法 III . 基于层次的聚类方法 IV . 聚合层次聚类 图示 V . 划分层次聚类 图示 VI . 基于层次的聚类方法 切割点选取 VII ...
- 聚类算法:Hierarchical Clustering层次聚类
1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离.每次将距离最近的点合并到同一个类.然后,再计算类与类之间的距离,将距离最近的类 ...
- 聚类算法(4)--Hierarchical clustering层次聚类
目录 一.层次聚类 1.层次聚类的原理及分类 2.层次聚类的流程 3.层次聚类的优缺点 二.python实现 1.sklearn实现 2.scipy实现 树状图分类判断 一.层次聚类 1.层次聚类的原 ...
- 聚类算法(五)——层次聚类 linkage (含代码)
聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...
- 聚类算法(六)——谱聚类 (含代码)
聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...
- 【机器学习算法】聚类分析-2 聚类算法的分类,层次聚类算法的选择
目录 聚类算法的分类 层次聚类的算法, 单一聚类法(single link) 完全链结法 平均链结法 中心链结法 Ward's法 我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主 目前进 ...
- 【聚类算法】常见的六大聚类算法
转自:https://blog.csdn.net/Katherine_hsr/article/details/79382249 感谢博主小姐姐 算法步骤: (1) 首先我们选择一些类/组,并随机初始化 ...
最新文章
- 刀片服务器与机架服务器对比
- ffmpeg+nginx+video实现rtsp流转hls流,通过H5查看监控视频
- bzoj3786: 星系探索
- ASP.Net MVC——使用 ITextSharp 完美解决HTML转PDF(中文也可以)
- windows 10打开或禁用管理员账户
- mitmproxy抓包 | Python疑难测试场景mock实战(四)
- 洛谷 P4409 [ZJOI2006] 皇帝的烦恼
- 2020,国产数据库崭露峥嵘的发轫之年
- 《王者荣耀》强制实名;联想打脸雷军;HTC 拍 VR 版《笑傲江湖》| 极客头条
- jsp 连接sql数据库查询(源代码)
- exchange2003升级exchange2010思路----(3)卸载
- C/C++[codeup 1907]吃糖果
- VBA 学习笔记 Word样式处理
- NeoKylin(linux)操作系统基本操作(自用)
- WinCC RT Adv 项目下载与自动运行
- 凸集学习——理解凸集概念、凸包演示
- 东华理工大学计算机网络期末考试试卷,东华理工大学计算机网络计算题
- WAF防火墙有什么用
- LeetCode(力扣)_接雨水
- 10大APP界面框架设计模式详解
热门文章
- mysql设置主键的作用_mysql设置主键有什么用
- 轮廓波-非下采样轮廓波NSCT
- CVPR2018跟踪算法STRCF原理及代码解析
- 债券价格和到期收益率的关系_2017年《证券投资基金》基础知识:当期收益率、到期收益率与债券价格之间的关系...
- 算法第二弹-线性规划之投资的收益和风险分析及代码实现(二)
- Redis实践(二)高可用的集群+哨兵部署
- DW设计的服装展示网站
- 立创EDA画图过程,实际布线考虑,自动布线的多板框问题,自动布线
- 【六爻】明天新同事会入职吗?
- 国税计算机专业面试题,2017国考国税系统面试模拟题:“互联网+税收服务”