第7章 PCA与梯度上升法
主成分分析法:主要作用是降维
疑似右侧比较好?
第三种降维方式:
问题:?????
方差:描述样本整体分布的疏密的指标,方差越大,样本之间越稀疏;越小,越密集
第一步:
总结:
问题:????怎样使其最大
变换后:
最后的问题:????
注意区别于线性回归
使用梯度上升法解决PCA问题:
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn import datasets
- digits = datasets.load_digits() # 手写识别数据
- X = digits.data
- y = digits.target
- from sklearn.model_selection import train_test_split
- X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
- # 使用K近邻
- from sklearn.neighbors import KNeighborsClassifier
- knn_clf=KNeighborsClassifier()
- knn_clf.fit(X_train,y_train)
- a1=knn_clf.score(X_test,y_test)
- # print(a1)
- # 使用PCA
- from sklearn.decomposition import PCA
- pca=PCA(n_components=2)
- pca.fit(X_train)
- X_train_reduction=pca.transform(X_train)
- X_test_reduction=pca.transform(X_test)
- knn_clf=KNeighborsClassifier()
- knn_clf.fit(X_train_reduction,y_train)
- a2=knn_clf.score(X_test_reduction,y_test)
- # print(a2)
- # print(pca.explained_variance_ratio_)
- pca=PCA(n_components=X_train.shape[1])
- pca.fit(X_train)
- # print(pca.explained_variance_ratio_)
- plt.plot([i for i in range(X_train.shape[1])],
- [np.sum(pca.explained_variance_ratio_[:i+1]) for i in range(X_train.shape[1])])
- # plt.show()
- pca1=PCA(0.95) # 能解释95%以上的方差
- pca1.fit(X_train)
- print(pca.n_components_)
- from sklearn.decomposition import PCA
- pca=PCA(0.95)
- pca.fit(X_train)
- X_train_reduction=pca.transform(X_train)
- X_test_reduction=pca.transform(X_test)
- knn_clf=KNeighborsClassifier()
- knn_clf.fit(X_train_reduction,y_train)
- a3=knn_clf.score(X_test_reduction,y_test)
- print(a3)
- pca=PCA(n_components=2)
- pca.fit(X)
- X_reduction=pca.transform(X)
- for i in range(10):
- plt.scatter(X_reduction[y==i,0],X_reduction[y==i,1],alpha=0.8)
- plt.show()
scikit-learn中的PCA
第7章 PCA与梯度上升法的更多相关文章
- 机器学习(七) PCA与梯度上升法 (上)
一.什么是PCA 主成分分析 Principal Component Analysis 一个非监督学的学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化:去噪 第一 ...
- 机器学习(4)——PCA与梯度上升法
主成分分析(Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化.去噪 通过映射,我们可以 ...
- 4.pca与梯度上升法
(一)什么是pca pca,也就是主成分分析法(principal component analysis),主要是用来对数据集进行降维处理.举个最简单的例子,我要根据姓名.年龄.头发的长度.身高.体重 ...
- 机器学习(七) PCA与梯度上升法 (下)
五.高维数据映射为低维数据 换一个坐标轴.在新的坐标轴里面表示原来高维的数据. 低维 反向 映射为高维数据 PCA.py import numpy as np class PCA: def __ini ...
- 机器学习:PCA(使用梯度上升法求解数据主成分 Ⅰ )
一.目标函数的梯度求解公式 PCA 降维的具体实现,转变为: 方案:梯度上升法优化效用函数,找到其最大值时对应的主成分 w : 效用函数中,向量 w 是变量: 在最终要求取降维后的数据集时,w 是参数 ...
- 《机器学习实战》学习笔记——第13章 PCA
1. 降维技术 1.1 降维的必要性 1. 多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯.2. 高维空间本身具有稀疏性.一维正态分布有68%的值落于正负 ...
- 第四章 PCA降维
目录 1. PCA降维 PCA:主成分分析(Principe conponents Analysis) 2. 维度的概念 一般认为时间的一维,而空间的维度,众说纷纭.霍金认为空间是10维的. 3. 为 ...
- Python3入门机器学习经典算法与应用
<Python3入门机器学习经典算法与应用> 章节第1章 欢迎来到 Python3 玩转机器学习1-1 什么是机器学习1-2 课程涵盖的内容和理念1-3 课程所使用的主要技术栈第2章 机器 ...
- Python3入门机器学习经典算法与应用☝☝☝
Python3入门机器学习经典算法与应用 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 使用新版python3语言和流行的scikit-learn框架,算法与 ...
随机推荐
- stl的stack在开发中的应用
栈有后进先出特点,我们可以用它来暂时保存数据,在画板开发中,我用到了栈来保存用户的每一步操作,当用户点击撤销时可以把图像从栈里面取出,然后恢复.浏览器的前进和后退也是这个原理,只是它保存的是网页罢了. ...
- 数制转换itoa atoi int转字符串 字符串转int string转int int转string
在苦于昨晚最后一个数制转换题,他的转换结果必须是整形数,纳尼?转换完放数组里又要变成整形数.这是什么操作,而且如果是16进制,用字母A,B-表示,在进行运算时都难以计算. 突发奇想,当十进制成立的时候 ...
- python(字符编码与转码)
一.字符编码演变史 二进制(0 1) """ 算机中的所有数据,不论是文字.图片.视频.还是音频文件,本质上最终都是按照类似 01010101 的二进制存储的,再说简单点 ...
- springboot后端校验
这一篇讲解了如何定义特殊的校验 https://www.cnblogs.com/cjsblog/p/8946768.html https://blog.csdn.net/xgblog/article/ ...
- Java笔记(day20-22)
IO流: 输入流.输出流 字节流.字符流:为了处理文字数据方便而出现的对象. (其实这些对象的内部使用的还是字节流(因为文字最终也是字节数据,只不过,通过字节流读取了相对应的字节数,没有对这些字节直接 ...
- 算法——Java实现队列
顺序队列: 概念: 队列是一种先进先出的线性表,只允许在一端插入,另一端删除.允许插入的一端称为队尾,允许删除的一端称为队头 顺序队列的实现: import org.junit.jupiter.api ...
- V - Can you answer these queries? HDU - 4027 线段树 暴力
V - Can you answer these queries? HDU - 4027 这个题目开始没什么思路,因为不知道要怎么去区间更新这个开根号. 然后稍微看了一下题解,因为每一个数开根号最多开 ...
- AntDesignPro的权限控制和动态路由
最近看了AntDesignPro关于权限控制的官方文档以及自己框架里权限控制的实现,总结一下. 先贴一下官网上关于权限控制的图有利于理解 步骤如下: 判断是否有 AccessToken 如果没有则跳转 ...
- 如何快速理解Spring中的DI和AOP
前言 Spring框架通过POJO最小侵入性编程.DI.AOP.模板代码手段来简化了Java 开发,简化了企业应用的开发.POJO和模板代码相对来说好理解,本篇重点解读下DI和AOP. 一 DI DI ...
- Android如何设置只有边框背景透明的背景呢?
很简单,只需要新建一个 drawable 文件 <?xml version="1.0" encoding="utf-8"?> <shape x ...