PCA算法(python版本)
PCA算法 python版本
- 原理
- 算法流程
- 特性
- PCA求主方向python代码
- 法向量python,使用sklearn建树
- PCA算法的局限
- PCA算法应用:
原理
PCA算法,全程主成分分析法,是一种非监督的算法;主要用于数据的姜维,通过将为可以用较为简单的特征来代替原来的特征,在分类任务中可以使用PCA算法进行特征降维,然后减小计算量;
算法流程
特性
得到的奇异值分解的结果中,最大特征值对应的特征向量就是PCA得到的主方向,而且将所有的点映射到这个向量上得到到映射后的新点集方差最大,所以主方向可以最大程度保留数据的原始特性;
最小特征值对应的特征向量为法向量方向,法向量的起点为用于求奇异值分解点集的中心点;且法向量越大的点处曲率越小
3) 在求某点法向量的时候,需要确定该点的邻域半径,然后使用邻域内的点组成的点集来计算法法向量;半径选择太大,会受到不相关部分影响,导致法向量平滑;半径过小会容易受到噪声影响;半径不仅可以使用欧式空间邻域,同样可以使用其他尺度的邻域,包括反射率邻域,颜色邻域等;
PCA求主方向python代码
import numpy as np
def PCA(data):data_col = np.mean(data,axis = 0)data = data - data_colB = np.dot(data.T,data)#计算协方差矩阵eigenvectors,eigenvalues, v = np.linalg.svd(B)#计算协方差矩阵的特征值和特征向量sort = eigenvalues.argsort() #argsort返回列表从大到小排序之后在原始列表中的位置eigenvalues = eigenvalues[sort]eigenvectors = eigenvectors[:, sort]return eigenvectors
法向量python,使用sklearn建树
def get_normals():normals = []radius = 0.05leaf_size = 5 tree = KDTree(points,leaf_size)near_point_idx = tree.query_radius(points,radius)#每一点的邻居点索引,包含自身点for i in range(points.shape[0]):point_near = points[near_point_idx[i]] #某一点的邻居点,v = PCA(point_near)normal = v[:,2]normals.append(normal)normals = np.asarray(normals)
PCA算法的局限
如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高;
特征值分解有一些局限性,比如变换的矩阵必须是方阵;
在非高斯分布情况下,PCA方法得出的主元可能并不是最优的。
PCA算法应用:
- 高维数据集的探索与可视化。
- 数据压缩。
- 数据预处理。
- 图象、语音、通信的分析处理。
- 降维(最主要),去除数据冗余与噪声。
PCA算法(python版本)相关推荐
- 2021-03-15 数据挖掘算法—K-Means算法 Python版本
数据挖掘算法-K-Means算法 Python版本 简介 又叫K-均值算法,是非监督学习中的聚类算法. 基本思想 k-means算法比较简单.在k-means算法中,用cluster来表示簇:容易证明 ...
- 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...
- pca算法python代码_三种方法实现PCA算法(Python)
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...
- pca算法python实现_三种方法实现PCA算法(Python)
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...
- 光谱预处理算法(python版本)
系列文章目录 近红外光谱分析技术属于交叉领域,需要化学.计算机科学.生物科学等多领域的合作.为此,在(北京邮电大学杨辉华老师团队)指导下,近期准备开源传统的PLS,SVM,ANN,RF等经典算和SG, ...
- PCA算法python实现
PCA 1. 算法原理 2. 算法流程总结 3. python算法实现 3.1 一个实例 3.2 结果 1. 算法原理 pca是特征降维的经典算法之一,特征降维直白来说就是降低样本的特征维度同时又不希 ...
- pca算法python实现_PCA算法——Python实现
一.流程生成模拟数据 模型训练 特征向量重要性分析 画图 二.Python语言 1.生成模拟数据 # 导入相关数据库 from sklearn import datasets # 提取数据 dig ...
- 排序算法python版本
1.冒泡排序 # coding:utf-8# 冒泡排序 # 1. 外层循环负责帮忙递减内存循环的次数[len-1, 1] # 2. 内层循环负责前后两两比较, index 的取值范围[0, len-2 ...
- pca算法python_PCA算法和python实现
第十三章 利用PCA来简化数据 一.降维技术 当数据的特征很多的时候,我们把一个特征看做是一维的话,我们数据就有很高的维度.高维数据会带来计算困难等一系列的问题,因此我们需要进行降维.降维的好处有很多 ...
最新文章
- 前端每周清单半年盘点之 WebAssembly 篇
- tensorflow--embedding_lookup 和 embedding_lookup_sparse
- 小程序api 分享scene_抛弃微信小程序API的嵌套回调吧!
- 【java】swing编写窗体
- 在linux桌面上显示图标
- UVA465 Overflow【大数】
- SEAYAR - 思雅,快乐生活
- 内核调试工具 — kdump crash
- linux centos erlang,CentOS 7.7安装Erlang和Elixir
- Kinect + OpenNI + OpenCV + OpenGL 三维重建
- [概率论与数理统计-1]: 总体架构、知识结构、知识体系
- CSS3颜色渐变整理
- 计算机桌面底边出现库如何去掉,桌面图标有蓝底怎么去掉? 去掉桌面图标阴影技巧...
- php 对接 hotmail邮箱,php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
- Jdbc结果集Map映射
- 使用uview UI工具库的时间格式化出现的问题
- arm裸机与嵌入式linux驱动开发,如何编写基于ARM的裸机程序和基于Linux的驱动程序?...
- 《Android开发从零开始》——3.第一个Android程序
- MARC21与CNMARC对应关系
- flutter git 拉不起来_这些基础不牢固,我们的蛙泳就别想拉起来