1. # -*- coding: utf-8 -*-
  2.  
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5.  
  6. from sklearn import datasets,manifold
  7.  
  8. def load_data():
  9. '''
  10. 加载用于降维的数据
  11. '''
  12. # 使用 scikit-learn 自带的 iris 数据集
  13. iris=datasets.load_iris()
  14. return iris.data,iris.target
  15.  
  16. #等度量映射Isomap降维模型
  17. def test_Isomap(*data):
  18. X,y=data
  19. # 依次考察降维目标为 4维、3维、2维、1维
  20. for n in [4,3,2,1]:
  21. isomap=manifold.Isomap(n_components=n)
  22. isomap.fit(X)
  23. print('reconstruction_error(n_components=%d) : %s'%(n, isomap.reconstruction_error()))
  24.  
  25. # 产生用于降维的数据集
  26. X,y=load_data()
  27. # 调用 test_Isomap
  28. test_Isomap(X,y)

  1. def plot_Isomap_k(*data):
  2. '''
  3. 测试 Isomap 中 n_neighbors 参数的影响,其中降维至 2维
  4. '''
  5. X,y=data
  6. # n_neighbors参数的候选值的集合
  7. Ks=[1,5,25,y.size-1]
  8.  
  9. fig=plt.figure()
  10. for i, k in enumerate(Ks):
  11. isomap=manifold.Isomap(n_components=2,n_neighbors=k)
  12. #原始数据集转换到二维
  13. X_r=isomap.fit_transform(X)
  14. ## 两行两列,每个单元显示不同 n_neighbors 参数的 Isomap 的效果图
  15. ax=fig.add_subplot(2,2,i+1)
  16. # 颜色集合,不同标记的样本染不同的颜色
  17. colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2))
  18. for label ,color in zip( np.unique(y),colors):
  19. position=y==label
  20. ax.scatter(X_r[position,0],X_r[position,1],label="target= %d"%label,color=color)
  21. ax.set_xlabel("X[0]")
  22. ax.set_ylabel("X[1]")
  23. ax.legend(loc="best")
  24. ax.set_title("k=%d"%k)
  25. plt.suptitle("Isomap")
  26. plt.show()
  27.  
  28. # 调用 plot_Isomap_k
  29. plot_Isomap_k(X,y)

  1. def plot_Isomap_k_d1(*data):
  2. '''
  3. 测试 Isomap 中 n_neighbors 参数的影响,其中降维至 1维
  4. '''
  5. X,y=data
  6. # n_neighbors参数的候选值的集合
  7. Ks=[1,5,25,y.size-1]
  8.  
  9. fig=plt.figure()
  10. for i, k in enumerate(Ks):
  11. isomap=manifold.Isomap(n_components=1,n_neighbors=k)
  12. #原始数据集转换到 1 维
  13. X_r=isomap.fit_transform(X)
  14. ## 两行两列,每个单元显示不同 n_neighbors 参数的 Isomap 的效果图
  15. ax=fig.add_subplot(2,2,i+1)
  16. # 颜色集合,不同标记的样本染不同的颜色
  17. colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2))
  18. for label ,color in zip( np.unique(y),colors):
  19. position=y==label
  20. ax.scatter(X_r[position],np.zeros_like(X_r[position]),label="target= %d"%label,color=color)
  21. ax.set_xlabel("X")
  22. ax.set_ylabel("Y")
  23. ax.legend(loc="best")
  24. ax.set_title("k=%d"%k)
  25. plt.suptitle("Isomap")
  26. plt.show()
  27.  
  28. # 调用 plot_Isomap_k_d1
  29. plot_Isomap_k_d1(X,y)

吴裕雄 python 机器学习——等度量映射Isomap降维模型的更多相关文章

  1. 吴裕雄 python 机器学习——局部线性嵌入LLE降维模型

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...

  2. 吴裕雄 python 机器学习——主成份分析PCA降维

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...

  3. 吴裕雄 python 机器学习——多项式贝叶斯分类器MultinomialNB模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,naive_bayes from skl ...

  4. 吴裕雄 python 机器学习——数据预处理二元化OneHotEncoder模型

    from sklearn.preprocessing import OneHotEncoder #数据预处理二元化OneHotEncoder模型 def test_OneHotEncoder(): X ...

  5. 吴裕雄 python 机器学习——数据预处理二元化Binarizer模型

    from sklearn.preprocessing import Binarizer #数据预处理二元化Binarizer模型 def test_Binarizer(): X=[[1,2,3,4,5 ...

  6. 吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  7. 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  8. 吴裕雄 python 机器学习——人工神经网络与原始感知机模型

    import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D from ...

  9. 吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

随机推荐

  1. mybatis association表关联与rowbounds共同使用时的异常及其解决方案

    按照mybatis手册中所说的,association有两种实现方式,嵌套查询和嵌套结果映射.如手册中所述,select方式会带来N+1次查询的问题,考虑到效率问题的话建议使用嵌套结果映射.但是在结合 ...

  2. canvas渐变

    代码: 1 /** 2 * Created by Administrator on 2016/1/29. 3 */ 4 function draw(id){ 5 var canvas = docume ...

  3. MySQL mysqldump 备份脚本(按照db.sql)

    mysqldump逻辑备份,按照db.sql文件区分,并压缩 #! /bin/bash #35 02 * * * mysql /data/mysqldata/scripts/mysqldump_per ...

  4. 通过phpMyAdmin拿webshell

    general_log默认为关闭的,root权限开启后,general_log_file会保存所有的查询语句 所以可以开启general_log,然后设置general_log_file为一个php文 ...

  5. c#的日志插件NLog基本使用

    本文介绍c#的日志插件NLog 安装插件 创建logger 日志级别 书写日志信息 配置 包装器 布局 安装插件 直接下载插件包 Install-Package NLog.Config 创建logge ...

  6. 如何设置linux在出现kernel panic后自动重启 (ZT)

    Automatic reboot after Linux kernel panic http://www.syn-ack.org/centos-linux/automatic-reboot-after ...

  7. 环境变量,include搜索路径,lib库搜索路径

    环境变量 系统环境变量 我们知道,我们经常要设置一些环境变量,系统环境变量我们非常容易理解.其实我们在windows中经常容易接触.其实环境变量是一个非常广泛的一个概念,它与web应用程序中的web. ...

  8. SpringBoot05 数据操作01 -> JPA的基本使用、基本使用02

    前提: 创建一个springboot项目 创建一个名为springboottest的MySQL数据库 1 jar包准备 jpa的jar包 mysql驱动的jar包 druid数据库连接池的jar包 l ...

  9. Win10_禁用自动更新(官方版)

    1> win键>输入服务>打开>找到windowsUpdate-->启动类型为-禁用 -->> 恢复失三个选项改为-->>无操作 2>win ...

  10. Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识

    网站站点的背景调研 1. 检查 robots.txt 网站都会定义robots.txt 文件,这个文件就是给 网络爬虫 来了解爬取该网站时存在哪些限制.当然了,这个限制仅仅只是一个建议,你可以遵守,也 ...