Python学习第三篇:pca算法
来源:互联网 发布:c语言取绝对值 编辑:程序博客网 时间:2024/05/24 16:16
一,为什么使用pca算法
1,在实际的数据样本中往往存在多个特征,即在一张数据表格中存在多列,每一列代表一个特征。我们需要在这么多的数据中提取有用的数据信息,但是在整体的数据样本中有部分数据是无用的,或者说是该数据对整体的数据样本影响不大,如下学生成绩图
显而易见,政治成绩所有学生都是一样,所以我们在分析数据时,可以不用考虑整治成绩。但是如下学生成绩图
我们无法一眼看出在数据分析时,哪些特征是可以不加考虑的。pca算法的目的就是在大量的特征中找到主要的特征。
二,pca算法讲解
1,什么是线性相关?
给定向量组A:a1,a2,a3,a4,...aN。假设存在k1,k2,k3,k4,...kN。使得
a1*k1+a2*k2+a3*k3+...+aN*kN=0成立
则向量组A是线性相关的,否则A是线性无关
通俗的讲,线性相关就是指向量组中至少一个向量可以由其他向量线性表示
2,信噪比
在信号处理过程中,认为信号具有较大的方差,噪声具有较小的方差。信噪比就是方差比,信噪比越大,主成分提取就越准确。
3,样例分析
在学生成绩图中,有5个特征,在这些特征之中可能存在部分特征并不重要,但是我们无法直接剔除掉。所以通过pca算法实现特征剔除
三,pca算法python实现
1,创建数据集
package com.madongmei.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class CreateData {
private static int LINE_NUM=100000;
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("/Users/boleng/Desktop/python/myDataSet.txt");
try {
FileOutputStream fileOutputStream=new FileOutputStream(file);
for(int i=0;i<LINE_NUM;i++){
int yuWen=(int) (Math.random()*100);
int yingYu=(int) (Math.random()*100);
int shuXue=(int) (Math.random()*100);
int zhengZhi=(int) (Math.random()*100);
int tiYu=(int) (Math.random()*100);
String str=yuWen+","+yingYu+","+shuXue+","+zhengZhi+","+tiYu+"\n";
System.out.println(str);
try {
fileOutputStream.write(str.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2,数据如下
3,编写python代码
四,问题与解答
五,源代码
- Python学习第三篇:pca算法
- 机器学习算法笔记系列之深入理解主成分分析PCA-Python实现篇
- 【机器学习算法-python实现】PCA 主成分分析、降维
- opencv学习-算法-pca
- 机器学习算法-PCA
- PCA学习笔记 python实现
- Python PCA主成分分析算法
- 使用Python一步步实现PCA算法
- 三种方法实现PCA算法(Python)
- [Machine Learning]PCA 算法 python 实现
- 【机器学习算法实现】主成分分析(PCA)——基于python+numpy
- 【机器学习算法实现】主成分分析(PCA)——基于python+numpy
- 【机器学习算法实现】主成分分析(PCA)——基于python+numpy
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_1(OpenCV中PCA实现人脸降维)
- postgresql常用的系统表
- 数字电视之TS流解析
- Openlayers之地图标注
- SQL Server 2016 新功能之综述
- Android SQLite Database 写入速度慢的一个解决方案
- Python学习第三篇:pca算法
- 【Codeforces 711 C】+ dp
- 前言
- hbuilder学习1
- 开发书籍推荐路线
- SpringBoot 整合Ehcache3
- nginx的nginx-rtmp-module应用
- maven快速入门新建项目, 卡慢问题解决
- OGNL在Mybatis中的简单使用