第7章 PCA与梯度上升法
主成分分析法:主要作用是降维
疑似右侧比较好?
第三种降维方式:
问题:?????
方差:描述样本整体分布的疏密的指标,方差越大,样本之间越稀疏;越小,越密集
第一步:
总结:
问题:????怎样使其最大
变换后:
最后的问题:????
注意区别于线性回归
使用梯度上升法解决PCA问题:
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasetsdigits = datasets.load_digits() # 手写识别数据
X = digits.data
y = digits.targetfrom 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与梯度上升法相关推荐
- 07 PCA(主成分分析)之梯度上升法
上篇讲的是PCA基于矩阵操作方法的实现,本文讲的是基于梯度上升法实现的PCA. PCA之梯度上升法 PCA原理 主成分分析PCA 均值归零(demean) 映射轴和方差 梯度上升法 代码实现 单个主成 ...
- 使用梯度上升法求解 PCA 问题
代码实现: import numpy as np import matplotlib.pyplot as pltX = np.empty((100,2)) X[:,0] = np.random.uni ...
- Python机器学习:PCA与梯度上升03求数据的主成分PCA
梯度上升法解决最优化问题 import numpy as np import matplotlib.pyplot as plt X = np.empty((100,2)) X[:,0] = np.ra ...
- matlab ncg,2步非线性共轭梯度(NCG)法
2步非线性共轭梯度(NCG)法 提出一种求解非线性方程组的2步非线性共轭梯度法(2步NCG法),并在一定条件下证明 (本文共9页) 阅读全文>> 作者提出的自适应共轭梯度方法是对共轭梯度方 ...
- 最小二乘法+牛顿法+拟牛顿法+梯度下降法+梯度上升法+共轭梯度法
最小二乘法+牛顿法+拟牛顿法+梯度下降法+梯度上升法+共轭梯度法 最小二乘法+牛顿法+拟牛顿法+梯度下降法+梯度上升法+共轭梯度法 上述几种方法,除了最小二乘法是直接使用公式取得之外,另外几种方法都是 ...
- EL之Boosting之GB(DTR):利用梯度提升法解决回归(对多变量的数据集+实数值评分预测)问题
EL之Boosting之GB(DTR):利用梯度提升法解决回归(对多变量的数据集+实数值评分预测)问题 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 xList = [] labe ...
- EL之Boosting之GB(DTR):简单回归问题使用梯度提升法(DIY数据集+DTR模型+调两参)
EL之Boosting之GB(DTR):简单回归问题使用梯度提升法(DIY数据集+DTR模型+调两参) 目录 输出结果 设计思路 核心代码 输出结果 1.eps=0.1,treeDepth=1 2.e ...
- Python机器学习:PCA与梯度上升:04求数据的前n个主成分
获取前N个主成分 #获取前n个主成分 import numpy as np import matplotlib.pyplot as plt 产生数据集 X = np.empty((100,2)) X[ ...
- PCA降维(主成分分析法)
PCA降维(主成分分析法) PCA的基本思想 PCA数学推导(最大方差法) 第一步,数据去中心化 第二步,找到新最标轴 第三步,选择你需要数据的百分之几的成分 PCA算法的优劣 问题 使用PCA到底需 ...
最新文章
- View事件分发机制(源码 API27)
- 在微信页面中,关闭浏览器
- 三十岁前不要去在乎的29件事
- 利用FSMT进行文件服务器迁移及整合
- 我们如何在Python中创建多行注释?
- 使用蓝图构建Flask项目目录
- solaris如何启动ssh服务
- [leetcode-117]填充每个节点的下一个右侧节点指针 II
- 关键字:auto、static、register、const、volatile 、extern 总结
- 请说出三种减少页面加载时间的方法
- rootkit模拟木马病毒
- 今日芯声 | 马云才是孙正义背后的男人!孙正义称从马云身上学到很多
- 湖北省创新型中小企业培育申报流程方法及申报时间要求指南
- 网络变压器作用(续):带中间抽头的两个线圈组成的网络变压器及其作用
- GD32 CANFD仲裁区500K,数据区2M 测试
- echarts3实现柱状图和饼图详解
- 常见的地磁传感器是怎么工作的
- 【券商报告】固态电池行业深度:技术变革之路任重道远,长期利好锂、镍需求——附下载链接
- 如何学pyhton深度学习 之 “我的python学习进阶之路”3
- matlab商品市场占有率问题,市场占有率与集中度分析–Excel模板
热门文章
- java泛型数组替代方案_Kotlin泛型Array T导致“不能将T用作具体类型参数 . 使用类代替“但List T不会...
- 设备租赁系统源码_滑雪场一卡通管理系统,设备租赁更简便
- python和anaconda一定要对应版本安装吗_Anaconda与Python安装版本对应关系 --- 转载
- AT解析层的思路分析及代码实现
- 任务的定义、任务切换的原理及实现
- java concurrent 框架,java.util.concurrent 包下的 Synchronizer 框架
- 江南百景图自动刷水井,附带拼图教程
- Android 文本实现跑马灯效果 用自带的TextView控件
- C++标准模板库(STL)的概念
- threadlocal内存泄露_ThreadLocal 简介