程序示例–PCA for 数据可视化

我们有一张小鸟的图片,这是一个三通道彩色图像:

我们将图片的像素按颜色进行聚类,并在三维空间观察聚类成果:

似乎在三维空间可视化不是那么直观,借助于PCA,我们将聚类结果降到二维空间进行可视化:

测试代码:

# coding: utf8
# pca/test_pca4visualization.pyimport numpy as np
import kmeans
import pca
from scipy.io import loadmat
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.cm as cmx
import matplotlib.colors as colorsdef getCmap(count):color_norm  = colors.Normalize(vmin=0, vmax=count-1)scalar_map = cmx.ScalarMappable(norm=color_norm, cmap='hsv')def map_index_to_rgb_color(index):return scalar_map.to_rgba(index)return map_index_to_rgb_colorfig = plt.figure()
ax = fig.add_subplot(111, projection='3d')data = loadmat('data/bird_small.mat')
A = data['A']A = A / 255.0;height, width, channels = A.shape
X = np.mat(A.reshape(height * width, channels))m, n = X.shapeclusterNum = 16
cmap = getCmap(clusterNum)
centroids, clusterAssment = kmeans.kMeans(X, clusterNum)
# 随机选择 1000 个样本绘制
sampleSize = 1000
sampleIndexs = np.random.choice(m, sampleSize)
clusters = clusterAssment[sampleIndexs]
samples = X[sampleIndexs]# 三维下观察
for i in range(sampleSize):x, y, z = samples[i,:].A[0]center = clusters[i, 0]color = cmap(center)ax.scatter([x], [y], [z], color=color, marker='o')
plt.show()# 二维下观察
reducedSamples = pca.PCA(samples, k=2)[1]
for i in range(sampleSize):x, y = reducedSamples[i,:].A[0]center = clusters[i, 0]color = cmap(center)plt.scatter([x], [y], color=color, marker='o')
plt.show()

7.5 程序示例--PCA for 数据可视化-机器学习笔记-斯坦福吴恩达教授相关推荐

  1. 7.4 程序示例--PCA for 加速学习-机器学习笔记-斯坦福吴恩达教授

    程序示例–PCA for 加速学习 现在,我们手上有一个人脸数据集,每张图片大小为 32×32 ,以像素为特征,则每个特征向量的维度就为 1024 维: 考虑使用 PCA 进行降低特征维度到 100 ...

  2. 7.3 程序示例--PCA 模型-机器学习笔记-斯坦福吴恩达教授

    程序示例–PCA 模型 # coding: utf8 # pca/pca.pyimport numpy as npdef normalize(X):"""数据标准化处理A ...

  3. 9.5 程序示例--推荐系统-机器学习笔记-斯坦福吴恩达教授

    程序示例–推荐系统 推荐模型 在推荐模型中,我们将暴露: 训练接口 train() 预测接口 predict(Theta, X) 获得推荐接口 getTopRecommends(Theta, X, i ...

  4. 4.7 程序示例--算法诊断-机器学习笔记-斯坦福吴恩达教授

    程序示例–算法诊断 我们手头有一份大坝水的流量与水位关系的数据,首先我们将其划分为训练集.交叉验证集和测试集: # coding: utf-8 # algorithm_analysis/diagnos ...

  5. 2.5 程序示例--非线性决策边界-机器学习笔记-斯坦福吴恩达教授

    程序示例–非线性决策边界 我们首先对数据进行了多项式拟合,再分别使用 λ=0,λ=1,λ=100λ=0,λ=1,λ=100λ=0,λ=1,λ=100 的批量梯度下降法(sgd)完成了训练,获得了非线性 ...

  6. 2.4 程序示例--线性决策边界-机器学习笔记-斯坦福吴恩达教授

    程序示例–线性决策边界 回归模块 在逻辑回归模块 logical_regression.py 中,实现了批量梯度下降法(bgd)以及随机梯度下降法(sgd),同时,支持正规化方程 # coding: ...

  7. 1.7 程序示例--多项式回归-机器学习笔记-斯坦福吴恩达教授

    程序示例–多项式回归 下面,我们有一组温度(temperature)和实验产出量(yield)训练样本,该数据由博客 Polynomial Regression Examples 所提供: tempe ...

  8. 8.7 程序示例--异常检测-机器学习笔记-斯坦福吴恩达教授

    程序示例–异常检测 异常检测模型 提供了一般高斯分布模型和多元高斯分布模型.其中,多元高斯分布模型被限制到了同轴分布: # coding: utf8 # anomaly_detection/anoma ...

  9. 5.11 程序示例--垃圾邮件检测-机器学习笔记-斯坦福吴恩达教授

    程序示例–垃圾邮件检测 邮件内容的预处理 下面展示了一封常见的 email,邮件内容包含了一个 URL (http://www.rackspace.com/),一个邮箱地址(groupname-uns ...

最新文章

  1. danfoss 变频器的profinet通讯调试_840D sl系统PLC 开机调试
  2. 【视频】测试经理必修课
  3. kalilinux安装qt_Kali Linux安装搜狗输入法(只需5步)
  4. python3精要(43)--变量注释
  5. 板邓:wordpress循环输出分类信息函数get_categories()
  6. advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统
  7. 重学java基础第二课:java和python分析
  8. [vue] 你有看过vue的源码吗?如果有那就说说看
  9. 自定义表单-列表字段的数据源绑定
  10. 手机5g什么时候普及_5G手机什么时间普及,现在买4G手机划算吗?
  11. labeltool标注工具使用说明
  12. word文档图标变成白纸_word文档图标显示异常怎么办
  13. Win10系统开启黑暗主题
  14. 《天道》解读三:什么是天道?
  15. 2 计算机控制器的组成,组合逻辑控制器组成结构及工作原理解析
  16. Android-skin-support 换肤原理全面解析
  17. 网盘限速怎么办? 小编来支招!
  18. 32g的u盘速度测试软件,写入超100MB/s?32G神速U盘PK固态硬盘
  19. 学习【AI测试】人工智能 (AI) 测试--开篇经验分享
  20. linux下kegg注释软件,工具篇丨GO和KEGG富集不到通路?快试试这个超赞的功能分析工具吧...

热门文章

  1. Bootstrap模态框报错
  2. $.ajax() 方法的理解
  3. PHPCMS v9 二次开发_验证码结合Session开发
  4. wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法...
  5. Spring 之常用接口
  6. F(n)完全覆盖中的计数问题
  7. Tomcat学习总结
  8. MySQL优化学习总结
  9. 7个jquery easy ui 基本组件图解
  10. 单例模式的几种实现方式及优缺点