吴裕雄 python 机器学习——等度量映射Isomap降维模型
# -*- coding: utf-8 -*- import numpy as np
import matplotlib.pyplot as plt from sklearn import datasets,manifold def load_data():
'''
加载用于降维的数据
'''
# 使用 scikit-learn 自带的 iris 数据集
iris=datasets.load_iris()
return iris.data,iris.target #等度量映射Isomap降维模型
def test_Isomap(*data):
X,y=data
# 依次考察降维目标为 4维、3维、2维、1维
for n in [4,3,2,1]:
isomap=manifold.Isomap(n_components=n)
isomap.fit(X)
print('reconstruction_error(n_components=%d) : %s'%(n, isomap.reconstruction_error())) # 产生用于降维的数据集
X,y=load_data()
# 调用 test_Isomap
test_Isomap(X,y)
def plot_Isomap_k(*data):
'''
测试 Isomap 中 n_neighbors 参数的影响,其中降维至 2维
'''
X,y=data
# n_neighbors参数的候选值的集合
Ks=[1,5,25,y.size-1] fig=plt.figure()
for i, k in enumerate(Ks):
isomap=manifold.Isomap(n_components=2,n_neighbors=k)
#原始数据集转换到二维
X_r=isomap.fit_transform(X)
## 两行两列,每个单元显示不同 n_neighbors 参数的 Isomap 的效果图
ax=fig.add_subplot(2,2,i+1)
# 颜色集合,不同标记的样本染不同的颜色
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))
for label ,color in zip( np.unique(y),colors):
position=y==label
ax.scatter(X_r[position,0],X_r[position,1],label="target= %d"%label,color=color)
ax.set_xlabel("X[0]")
ax.set_ylabel("X[1]")
ax.legend(loc="best")
ax.set_title("k=%d"%k)
plt.suptitle("Isomap")
plt.show() # 调用 plot_Isomap_k
plot_Isomap_k(X,y)
def plot_Isomap_k_d1(*data):
'''
测试 Isomap 中 n_neighbors 参数的影响,其中降维至 1维
'''
X,y=data
# n_neighbors参数的候选值的集合
Ks=[1,5,25,y.size-1] fig=plt.figure()
for i, k in enumerate(Ks):
isomap=manifold.Isomap(n_components=1,n_neighbors=k)
#原始数据集转换到 1 维
X_r=isomap.fit_transform(X)
## 两行两列,每个单元显示不同 n_neighbors 参数的 Isomap 的效果图
ax=fig.add_subplot(2,2,i+1)
# 颜色集合,不同标记的样本染不同的颜色
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))
for label ,color in zip( np.unique(y),colors):
position=y==label
ax.scatter(X_r[position],np.zeros_like(X_r[position]),label="target= %d"%label,color=color)
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.legend(loc="best")
ax.set_title("k=%d"%k)
plt.suptitle("Isomap")
plt.show() # 调用 plot_Isomap_k_d1
plot_Isomap_k_d1(X,y)
吴裕雄 python 机器学习——等度量映射Isomap降维模型的更多相关文章
- 吴裕雄 python 机器学习——局部线性嵌入LLE降维模型
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- 吴裕雄 python 机器学习——主成份分析PCA降维
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- 吴裕雄 python 机器学习——多项式贝叶斯分类器MultinomialNB模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,naive_bayes from skl ...
- 吴裕雄 python 机器学习——数据预处理二元化OneHotEncoder模型
from sklearn.preprocessing import OneHotEncoder #数据预处理二元化OneHotEncoder模型 def test_OneHotEncoder(): X ...
- 吴裕雄 python 机器学习——数据预处理二元化Binarizer模型
from sklearn.preprocessing import Binarizer #数据预处理二元化Binarizer模型 def test_Binarizer(): X=[[1,2,3,4,5 ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——人工神经网络与原始感知机模型
import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D from ...
- 吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...
随机推荐
- Linux驱动 - SPI驱动 之三 SPI控制器驱动
通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动.通用接口层和控制器驱动三大部分.其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1. ...
- (转)基于PHP——简单的WSDL的创建(WSDL篇)
本文转载自:http://blog.csdn.net/rrr4578/article/details/24451943 1.建立WSDL文件 建立WSDL的工具很多,eclipse.zends ...
- 2018年长沙理工大学第十三届程序设计竞赛 H数学考试
链接:https://www.nowcoder.com/acm/contest/96/H来源:牛客网 数学考试 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
- 我和domino不得不说的故事(连载2016-3-2)
1.关于NotesViewEntry 注意:通过NotesViewEntry获取某列的值时,若该列的值为@IsExpandable or @DocNumber 或者是常量时,将不会显示. Set en ...
- maven jetty 配置
对于jdk8增加如下配置: <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jett ...
- linux 权限 homework
作业一: 1) 新建用户natasha,uid为1000,gid为555,备注信息为“master” useradd natasha -u 1000 -g 555 -c "master&qu ...
- C语言学习笔记--C语言中的宏定义
1. C 语言中的宏定义 (1)#define 是预处理器处理的单元实体之一(因此,预处理器只是简单的进行替换,并不(2)#define 定义的宏可以出现在程序的任意位置(包括函数体的内部)(3)#d ...
- 阿里云服务器访问github慢临时解决方法
su root vi /etc/hosts # github 204.232.175.78 http://documentcloud.github.com 207.97.227.239 http:// ...
- GET与POST方法
HTTP中的GET,POST,PUT,DELETE对应着对这个资源的查,改,增,删4个操作.GET一般用于获取/查询资源信息,而POST一般用于更新资源信息. 1.根据HTTP规范,GET用于信息获取 ...
- elmah数据库sql脚本
/* 错误管理工具 SQL代码 */CREATE TABLE dbo.ELMAH_Error( ErrorId UNIQUEIDENTIFIER NOT NULL, Application NVARC ...