【Python实例第28讲】核主成分
机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
在多变量统计中,核主成分(kernel principal component analysis, kernel PCA
)是主成分的推广,它使用了核方法。使用核函数,将原始的主成分线性变换转换到生成的核希尔伯特空间进行。这样做主要是由于:原始数据点在低维空间不可分,而在高维空间可分。这个例子演示了核PCA能够找到原始数据的一个投射,使得在投射空间上是线性可分的。
实例代码
import numpy as np
import matplotlib.pyplot as pltfrom sklearn.decomposition import PCA, KernelPCA
from sklearn.datasets import make_circlesnp.random.seed(0)X, y = make_circles(n_samples=400, factor=.3, noise=.05)kpca = KernelPCA(kernel="rbf", fit_inverse_transform=True, gamma=10)
X_kpca = kpca.fit_transform(X)
X_back = kpca.inverse_transform(X_kpca)
pca = PCA()
X_pca = pca.fit_transform(X)# Plot resultsplt.figure()
plt.subplot(2, 2, 1, aspect='equal')
plt.title("Original space")
reds = y == 0
blues = y == 1plt.scatter(X[reds, 0], X[reds, 1], c="red",s=20, edgecolor='k')
plt.scatter(X[blues, 0], X[blues, 1], c="blue",s=20, edgecolor='k')
plt.xlabel("$x_1$")
plt.ylabel("$x_2$")X1, X2 = np.meshgrid(np.linspace(-1.5, 1.5, 50), np.linspace(-1.5, 1.5, 50))
X_grid = np.array([np.ravel(X1), np.ravel(X2)]).T
# projection on the first principal component (in the phi space)
Z_grid = kpca.transform(X_grid)[:, 0].reshape(X1.shape)
plt.contour(X1, X2, Z_grid, colors='grey', linewidths=1, origin='lower')plt.subplot(2, 2, 2, aspect='equal')
plt.scatter(X_pca[reds, 0], X_pca[reds, 1], c="red",s=20, edgecolor='k')
plt.scatter(X_pca[blues, 0], X_pca[blues, 1], c="blue",s=20, edgecolor='k')
plt.title("Projection by PCA")
plt.xlabel("1st principal component")
plt.ylabel("2nd component")plt.subplot(2, 2, 3, aspect='equal')
plt.scatter(X_kpca[reds, 0], X_kpca[reds, 1], c="red",s=20, edgecolor='k')
plt.scatter(X_kpca[blues, 0], X_kpca[blues, 1], c="blue",s=20, edgecolor='k')
plt.title("Projection by KPCA")
plt.xlabel("1st principal component in space induced by $\phi$")
plt.ylabel("2nd component")plt.subplot(2, 2, 4, aspect='equal')
plt.scatter(X_back[reds, 0], X_back[reds, 1], c="red",s=20, edgecolor='k')
plt.scatter(X_back[blues, 0], X_back[blues, 1], c="blue",s=20, edgecolor='k')
plt.title("Original space after inverse transform")
plt.xlabel("$x_1$")
plt.ylabel("$x_2$")plt.subplots_adjust(0.02, 0.10, 0.98, 0.94, 0.04, 0.35)plt.show()
精彩内容,请关注微信公众号:统计学习与大数据
【Python实例第28讲】核主成分相关推荐
- 主成分回归python实现
主成分分析python实现 这是我一直都想写的内容,但是迟迟没有动手开始写,主要的原因是没有理解python中PCA降维后再进行回归时应该要怎么做.再网上查了很多资料,也没有这方面的讲解,书上也是讲到 ...
- Python数据分析案例22——财经新闻可信度分析(线性回归,主成分回归,随机森林回归)
本次案例还是适合人文社科领域,金融或者新闻专业.本科生做线性回归和主成分回归就够了,研究生还可以加随机森林回归,其方法足够人文社科领域的硕士毕业论文了. 案例背景 有八个自变量,['微博平台可信度', ...
- python pca主成分_超越“经典” PCA:功能主成分分析(FPCA)应用于使用Python的时间序列...
python pca主成分 FPCA is traditionally implemented with R but the "FDASRSF" package from J. D ...
- 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现
前言 EOF 经验正交函数 分解原理及用法: https://wenku.baidu.com/view/93bc8a9b680203d8ce2f2468.html 方法实现过程 EOF PCA Pyt ...
- python主成分对变量的贡献率_(数据科学学习手札20)主成分分析原理推导Python自编函数实现...
主成分分析(principal component analysis,简称PCA)是一种经典且简单的机器学习算法,其主要目的是用较少的变量去解释原来资料中的大部分变异,期望能将现有的众多相关性很高的变 ...
- Python机器学习:PCA与梯度上升:04求数据的前n个主成分
获取前N个主成分 #获取前n个主成分 import numpy as np import matplotlib.pyplot as plt 产生数据集 X = np.empty((100,2)) X[ ...
- python主成分得分系数矩阵_用spss得出的成分矩阵就是初始因子载荷矩阵吗?成分得分系数矩阵又是什么...
用spss得出的成分矩阵就是初始因子载荷矩阵吗?成分得分系数矩阵又是什么呢? 第一问是的,译法不同而已:第二问,成分得分系数矩阵是用来求成分得分的,用标准化后的原始数据矩阵乘以成分得分系数矩阵就可以得 ...
- 【Python】Matplotlib 可视化进阶之PCA主成分分布图
这乍是一个简单的散点图,有两个主轴,显示一些高斯数据.并且在图中添加了一个垂直于第一个主成分轴的直方图,以显示主成份轴上的分布.这个图可能看起来很简单(散点图和有方向的直方图),其实不然,绘制这样的图 ...
- pca降维python实例_Python机器学习笔记:使用scikit-learn工具进行PCA降维
之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多 ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需 ...
最新文章
- pip3 install numpy
- jQuery数组处理详解(含实例演示)
- html动态生成榜单信息,排行榜.html
- ZooKeeper相关资料集锦
- 类的转换函数调用的优先级与是否用const修饰的关系
- java $1参数_jmap命令详解----查看JVM内存使用详情
- 拳王寻你项目公社:普通人怎么创业,普通人的创业法宝,容易上手的兼职副业项目
- win10卸载db2_如何在Linux下干净卸载db2数据库
- 各种门锁的内部结构图_逃生门锁,我们的生命之锁!
- 系统类配置(六) ubuntu16.04命令行安装Nvidia显卡驱动(操作指令详细注释版)
- 求推荐民法论文选题?
- 前端遇到GET https://XXXX net::ERR_HTTP2_PROTOCOL_ERROR 200问题的解决办法
- nginx安装部署和配置管理
- 关于快速学习一项新技术或新领域的一些个人思维习惯与思想总结
- Apple M1 Sourcetree 卡 卡顿 卡死
- 如何移植 Arx/ Dbx 模块为 Crx/DBX 模块来支持 AutoCAD 易(值得一看)
- SQL数据导入导出语句大全[英文部分比较全面]
- r语言中popsd和sd的区别_R语言与地图(一)
- java击鼓传花游戏list_集体互动游戏《击鼓传花游戏》
- mysql不是实际删除_MySQL删除操作其实是假删除
热门文章
- java金额格式化 .00_Java中金额的格式化###,###.00
- OSPFv3中LSA详解(五)——Intra-Area-Prefix LSA详解
- [游戏制作]-C语言实现井字棋(三子棋)游戏简单版
- 杭电计算机17年复试真题详解
- 重拾React: React 16.0
- Error connecting to database: No such file or directory
- ALEIYE 2.0发布 首创RET关键事件功能
- 正式开始学习GO语言
- linux一款不错的linux系统清理工具
- 中兴android.process.acore,中兴天机Grand SII第三方系统刷机包(卡刷包)