机器学习训练营——机器学习爱好者的自由交流空间(入群联系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讲】核主成分相关推荐

  1. 主成分回归python实现

    主成分分析python实现 这是我一直都想写的内容,但是迟迟没有动手开始写,主要的原因是没有理解python中PCA降维后再进行回归时应该要怎么做.再网上查了很多资料,也没有这方面的讲解,书上也是讲到 ...

  2. Python数据分析案例22——财经新闻可信度分析(线性回归,主成分回归,随机森林回归)

    本次案例还是适合人文社科领域,金融或者新闻专业.本科生做线性回归和主成分回归就够了,研究生还可以加随机森林回归,其方法足够人文社科领域的硕士毕业论文了. 案例背景 有八个自变量,['微博平台可信度', ...

  3. python pca主成分_超越“经典” PCA:功能主成分分析(FPCA)应用于使用Python的时间序列...

    python pca主成分 FPCA is traditionally implemented with R but the "FDASRSF" package from J. D ...

  4. 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现

    前言 EOF 经验正交函数 分解原理及用法: https://wenku.baidu.com/view/93bc8a9b680203d8ce2f2468.html 方法实现过程 EOF PCA Pyt ...

  5. python主成分对变量的贡献率_(数据科学学习手札20)主成分分析原理推导Python自编函数实现...

    主成分分析(principal component analysis,简称PCA)是一种经典且简单的机器学习算法,其主要目的是用较少的变量去解释原来资料中的大部分变异,期望能将现有的众多相关性很高的变 ...

  6. Python机器学习:PCA与梯度上升:04求数据的前n个主成分

    获取前N个主成分 #获取前n个主成分 import numpy as np import matplotlib.pyplot as plt 产生数据集 X = np.empty((100,2)) X[ ...

  7. python主成分得分系数矩阵_用spss得出的成分矩阵就是初始因子载荷矩阵吗?成分得分系数矩阵又是什么...

    用spss得出的成分矩阵就是初始因子载荷矩阵吗?成分得分系数矩阵又是什么呢? 第一问是的,译法不同而已:第二问,成分得分系数矩阵是用来求成分得分的,用标准化后的原始数据矩阵乘以成分得分系数矩阵就可以得 ...

  8. 【Python】Matplotlib 可视化进阶之PCA主成分分布图

    这乍是一个简单的散点图,有两个主轴,显示一些高斯数据.并且在图中添加了一个垂直于第一个主成分轴的直方图,以显示主成份轴上的分布.这个图可能看起来很简单(散点图和有方向的直方图),其实不然,绘制这样的图 ...

  9. pca降维python实例_Python机器学习笔记:使用scikit-learn工具进行PCA降维

    之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多 ...

  10. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需 ...

最新文章

  1. pip3 install numpy
  2. jQuery数组处理详解(含实例演示)
  3. html动态生成榜单信息,排行榜.html
  4. ZooKeeper相关资料集锦
  5. 类的转换函数调用的优先级与是否用const修饰的关系
  6. java $1参数_jmap命令详解----查看JVM内存使用详情
  7. 拳王寻你项目公社:普通人怎么创业,普通人的创业法宝,容易上手的兼职副业项目
  8. win10卸载db2_如何在Linux下干净卸载db2数据库
  9. 各种门锁的内部结构图_逃生门锁,我们的生命之锁!
  10. 系统类配置(六) ubuntu16.04命令行安装Nvidia显卡驱动(操作指令详细注释版)
  11. 求推荐民法论文选题?
  12. 前端遇到GET https://XXXX net::ERR_HTTP2_PROTOCOL_ERROR 200问题的解决办法
  13. nginx安装部署和配置管理
  14. 关于快速学习一项新技术或新领域的一些个人思维习惯与思想总结
  15. Apple M1 Sourcetree 卡 卡顿 卡死
  16. 如何移植 Arx/ Dbx 模块为 Crx/DBX 模块来支持 AutoCAD 易(值得一看)
  17. SQL数据导入导出语句大全[英文部分比较全面]
  18. r语言中popsd和sd的区别_R语言与地图(一)
  19. java击鼓传花游戏list_集体互动游戏《击鼓传花游戏》
  20. mysql不是实际删除_MySQL删除操作其实是假删除

热门文章

  1. java金额格式化 .00_Java中金额的格式化###,###.00
  2. OSPFv3中LSA详解(五)——Intra-Area-Prefix LSA详解
  3. [游戏制作]-C语言实现井字棋(三子棋)游戏简单版
  4. 杭电计算机17年复试真题详解
  5. 重拾React: React 16.0
  6. Error connecting to database: No such file or directory
  7. ALEIYE 2.0发布 首创RET关键事件功能
  8. 正式开始学习GO语言
  9. linux一款不错的linux系统清理工具
  10. 中兴android.process.acore,中兴天机Grand SII第三方系统刷机包(卡刷包)