机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

这个例子演示如何产生一个数据集,并且用谱系共聚类法(Spectral Co-Clustering algorithm)对它进行双向聚类。所谓“双向聚类”,是指对变量和实例同时聚类。

这里,使用函数make_biclusters产生双向聚类的数据集。该函数产生的矩阵元素较小,但嵌入的双向类bicluster具有较大的值。然后随机重排矩阵的行和列,作为参数传递给算法。再重新排列这个随机重排的矩阵,使得biclusters邻接。这样一来就可以看出算法的准确程度了。

实例详解

首先,导入必需的库。

print(__doc__)# Author: Kemal Eren <kemal@kemaleren.com>
# License: BSD 3 clauseimport numpy as np
from matplotlib import pyplot as pltfrom sklearn.datasets import make_biclusters
from sklearn.datasets import samples_generator as sg
from sklearn.cluster.bicluster import SpectralCoclustering
from sklearn.metrics import consensus_score

调用函数make_biclusters, 产生一个300行,300列的数据数组,该数组有一个用于双向聚类的固定对角块结构。预置5个biclusters, 5个标准差的高斯误差。作图显示产生的数据集。

data, rows, columns = make_biclusters(shape=(300, 300), n_clusters=5, noise=5,shuffle=False, random_state=0)plt.matshow(data, cmap=plt.cm.Blues)
plt.title("Original dataset")
plt.show()

随机重排数据集。

data, row_idx, col_idx = sg._shuffle(data, random_state=0)
plt.matshow(data, cmap=plt.cm.Blues)
plt.title("Shuffled dataset")
plt.show()

调用bicluster库的谱系共聚类函数SpectralCoclustering, 设置5个biclusters. 拟合模拟数据集,并计算聚类一致性分数,评价聚类效果。

model = SpectralCoclustering(n_clusters=5, random_state=0)
model.fit(data)
score = consensus_score(model.biclusters_,(rows[:, row_idx], columns[:, col_idx]))print("consensus score: {:.3f}".format(score))

consensus score: 1.000

可视化重新排列共聚类后的数据集。

fit_data = data[np.argsort(model.row_labels_)]
fit_data = fit_data[:, np.argsort(model.column_labels_)]plt.matshow(fit_data, cmap=plt.cm.Blues)
plt.title("After biclustering; rearranged to show biclusters")plt.show()

精彩内容,请关注微信公众号:统计学习与大数据

【Python实例第12讲】谱系共聚类法相关推荐

  1. shell实例第12讲:给定目录找出包含关键字的文件

    #!/bin/bash #作者:魏波 #时间:2017.02.04DIR=$1 KEY=$2 for FILE in $(find $DIR -type f); doif grep $KEY $FIL ...

  2. Python编程系列教程第12讲——属性和方法

    视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...

  3. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

  4. python 一球从100m高度落下,一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?Python实例...

    一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?Python实例 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半 ...

  5. 机器学习 聚类篇——python实现DBSCAN(基于密度的聚类方法)

    机器学习 聚类篇--python实现DBSCAN(基于密度的聚类方法) 摘要 python实现代码 计算实例 摘要 DBSCAN(Density-Based Spatial Clustering of ...

  6. python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣

    前几天写的<Python实例:分析豆瓣影片评论Ver 1.0版本>文章中,关于爬取数据过频繁导致IP被封禁的事情让我对豆瓣数据的爬取中断了.忽然想到之前有写过关于关于使用selenium库 ...

  7. 斯坦福NLP名课带学详解 | CS224n 第12讲 - NLP子词模型(NLP通关指南·完结)

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://ww ...

  8. 小象python培训班_小象最新Python机器学习升级版视频学习教程 共24节精品课

    小象最新Python机器学习升级版视频学习教程 共24节精品课 本课程特点是从数学层面推导最经典的机器学习算法,以及每种算法的示例和代码实现(Python).如何做算法的参数调试.以实际应用案例分析各 ...

  9. Python实例集锦

    Python实例集锦 Python实例之一 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 使用三次循环 for x in range(1,5):for y in r ...

  10. python快速入门精讲_Python快速入门精讲

    基础入门篇 第0章从零开始3 0.1克服编程恐惧3 0.2如何写出好程序4 0.3为什么选择Python5 0.4Python的发展和应用6 0.5一些建议8 0.6多平台搭建Python开发环境10 ...

最新文章

  1. Python学习day5作业-ATM和购物商城
  2. 开源的悲哀——袁萌100天变身实录[2]
  3. RESTful Web 服务 - Java (JAX-RS)
  4. C++ Primer 5th笔记(chap 13 拷贝控制)实例1
  5. 针对安全探索的受限强化学习:原始对偶优化算法
  6. oracle 去除英文字母,请教:如何去掉字段中的所有标点符号(包括全角的和半角的)...
  7. MTK驱动(74)---平台待机功耗分析流程
  8. 社区内放自助打印机,赚钱吗?
  9. 一种虚拟现实技术用计算机,虚拟现实技术有哪几大分类?
  10. 管理感悟:人才如何分级
  11. CADD课程学习(5)-- 构建靶点已知的化合结构(ChemDraw)
  12. 指数函数为例的超越函数的逼近拟合误差分析
  13. 81-RabbitMQ详解
  14. Bootstrap3基础 btn-xs/sm... 按钮的四种大小
  15. BPM平台为企业“增值”
  16. 读书笔记 摘自:《创业就是要细分垄断》
  17. (1)Part01-项目介绍-01-在线教育行业介绍
  18. win10中安装JDK8以及环境配置
  19. 如何用纯前端去写购物车_索尼商城购物车
  20. 互联网究竟是怎么诞生的?

热门文章

  1. 移动App测试实战 第2章 功能测试自动化
  2. ZOJ3554 A Miser Boss(dp)
  3. Lua Script - 初次接触
  4. web安全day12:PKI
  5. 游戏筑基开发之学生管理系统数据结构及数据结构解析图(C语言)
  6. 游戏开发筑基之用“*“输出三角形(一个for循环)及打印控制台进度条
  7. DHCP中继原理与配置
  8. 在kali下对Windows 卷没有写权限的解决办法
  9. 阿里云物联网平台物模型SDK试用
  10. Python: str.split()和re.split()的区别