调用kmeans函数,kmeans中调用了whited函数。查后,发现whiten是对输入数据按标准差做归一化处理。

variance=Σi=1n(xi−xmean)2nvariance = \frac{ \Sigma_{i=1}^{n}(x_{i} - x_{mean})^{2}}{n}variance=nΣi=1n​(xi​−xmean​)2​
stand_devation=variancestand\_devation = \sqrt{variance}stand_devation=variance​
经过whiten
xi′=xistand_devationx_{i}^{'} =\frac{x_{i}} {stand\_devation}xi′​=stand_devationxi​​

与标准化不同的是,白化处理没有减去均值。
下面是按步骤实现和调用函数实现,结果是一样的。

import numpy as np
from numpy import array
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as plt
features  = array([[ 1.9,2.3],[ 1.5,2.5],[ 0.8,0.6],[ 0.4,1.8],[ 0.1,0.1],[ 0.2,1.8],[ 2.0,0.5],[ 0.3,1.5],[ 1.0,1.0]])mean = np.mean(features,axis=0)# 求每列的均值[0.91111111 1.34444444]
np_square = np.power(features-mean,2)#
# print('mean:\n',mean)
print('features - mean:\n',features-mean)
# print('square:\n',np_square)
mean_sqare = np.mean(np_square,axis = 0)# 方差
# print('mean_square:\n',mean_sqare)
stand_devation = np.sqrt(mean_sqare)# 标准差
# print('stand_devation:\n',stand_devation)
np_whit = features/stand_devation# scales by devation
print('******* np_white ******')
print(np_whit)whitened = whiten(features)# 调用scipy中的函数
print('******* whitened ******')
print(whitened)

whiten后kmeans

from numpy import random
import numpy as np
from numpy import array
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as pltrandom.seed((1000,2000))
codes = 3
kmeans(whitened,codes)# (array([[ 2.3110306 ,  2.86287398],    # random#        [ 1.32544402,  0.65607529],#        [ 0.40782893,  2.02786907]]), 0.5196582527686241)# Create 50 datapoints in two clusters a and b
pts = 50
a = np.random.multivariate_normal([0, 0], [[4, 1], [1, 4]], size=pts)# 中心点、协方差、数据量
b = np.random.multivariate_normal([30, 10],[[10, 2], [2, 1]],size=pts)
features = np.concatenate((a, b))
# Whiten data
whitened = whiten(features)
# Find 2 clusters in the data
codebook, distortion = kmeans(whitened, 2)# 返回聚类中心和误差
# Plot whitened data and cluster centers in red
plt.scatter(whitened[:, 0], whitened[:, 1])
# plt.scatter(features[:, 0], features[:, 1],c = 'k')
plt.scatter(codebook[:, 0], codebook[:, 1], c='r',label = 'centroid')plt.legend()
plt.show()

scipy 中的whiten函数相关推荐

  1. 正确理解scipy中的coo_matrix函数

    正确理解scipy中的coo_matrix函数 1. 构造一个空矩阵 2. 使用ijv(triplet)格式构造一个矩阵 3. 用重复的索引构造矩阵 1. 构造一个空矩阵 这种用法比较简单,直接生成一 ...

  2. python numpy逆_关于python:为什么numpy和scipy中的矩阵求逆函数对于大的二次矩阵返回不同的结果?...

    可以说我定义了一个大的二次矩阵(例如150x150). 一次它是一个numpy数组(矩阵A),一次是scipy稀疏数组(矩阵B). 1 2 3 4 5 6 7 8 9 10 11 12import n ...

  3. scipy中的coo_matric函数

    第一种用法代码如下: import scipy.sparse as spa=[[1,0,0],[0,0,1],[0,1,0]] a_coo_matrix=sp.coo_matrix(a) print( ...

  4. python scipy.stats.norm.cdf_python的scipy.stats模块中正态分布常用函数总结

    python的scipy.stats模块是连续型随机变量的公共方法,可以产生随机数,通常是以正态分布作为scipy.stats的基本使用方法.本文介绍正态分布的两种常用函数:1.累积概率密度函数sta ...

  5. python正态分布函数_如何在Python中计算正态分布函数和gamma累积分布函数的逆函数?,scipy,python,中正,伽马,反函数...

    对于伽玛分布累积分布函数,在python中是 scipy.special.gdtr 伽玛分布累积分布函数. 返回伽玛概率密度函数从零到 x 的积分, 而伽玛分布累积分布函数的反函数是 gdtrix, ...

  6. Bessel 函数在matlab和Scipy 中的区别

    贝塞尔函数的数学表达形式! 1.matlab 中,贝塞尔函数的表达形式 他山之石--参考链接 2.python中,贝塞尔函数的表达形式 他山之石--参考链接 在python中的两种贝塞尔函数的表达形式 ...

  7. Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 目录 sklearn中的RobustScaler 函数的简介及使用方法 sklearn中的R ...

  8. Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...

  9. ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介、使用方法之详细攻略

    ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介.使用方法之详细攻略 目录 sklearn.linear_mode中的LogisticRe ...

最新文章

  1. 数字测图原理与方法的实习日志_【技术】消费级无人机倾斜摄影测量1:500测图方法及精度研究...
  2. arcgis server for flex中文乱码问题(转)
  3. pytorch慢到无法安装,该怎么办?
  4. 如何基于ERP的sales organization 创建CRM对应的数据
  5. docker 安装nginx_docker安装nginx搭建简单文件共享服务
  6. 解决VMware6.5 以上版本安装RHEL 5的自动安装的问题
  7. 适合新手学习的laravel接入微信接口,实现微信公众号二次开发
  8. 使用pymongo需要手动关闭MongoDB Connection吗?
  9. PowerDesigner--comment和name互相复制
  10. Linux内核部件分析 记录生命周期的kref
  11. suse mysql完全卸载_SUSE Linux下通过RPM方式卸载MySQL 5过程笔记
  12. 建筑电工模拟考试完整版在线讲解
  13. 支付宝免签 个人支付宝到银行卡
  14. 字节跳动疯狂挖人,校招平均年薪30万,我还有机会吗?
  15. 【书】测试架构师-必备的6个能力
  16. 查看jvm进程cpu火焰图工具
  17. Mac上可与“时间机器”搭配使用的备份磁盘
  18. Twincat NC PTP
  19. Excel中函数row和column的特殊应用
  20. linux man 命令使用

热门文章

  1. Linux系统下PXE装机服务的搭建与部署(附完整命令与截图)
  2. T-Mobile CEO为视频节流辩护 声称他支持网络中立
  3. WireMock使用总结
  4. python 简历解析_pyresparser 一个简单的简历解析器,用于从简历中提取信息
  5. c语言各个类型所占字节数,C语言中不同类型数据所占字节数汇总
  6. 微信公众号 Jssdk调用错误码:63002, 获取access_token错误代码 errcode 40164的解决方法,如何解决,微信公众号的坑。
  7. 量化计算需要的计算机配置,大家好 请教做化学计算的电脑配置 - 量子化学 - 小木虫 - 学术 科研 互动社区...
  8. 如何编出一个大型游戏
  9. Unable to connect to localhost:6379
  10. python用8g还是16g内存好_请问电脑内存是买8g的好还是16g的好