当前位置: 首页 > news >正文

江苏建设工程交易中心网站wordpress教程php二次开发

江苏建设工程交易中心网站,wordpress教程php二次开发,百度推广入口页面,宁宁网seo目录 一、概述1.1 维度1.2 sklearn中的降维算法 二、降维实现原理2.1 PCA与SVD2.2 降维实现2.3 降维过程 三、鸢尾花数据集降维3.1 高维数据的可视化3.2 探索降维后的数据3.3 累积可解释方差贡献率曲线 四、选n_components参数方法4.1 最大似然估计自选超参数4.2 按信息量占比选… 目录 一、概述1.1 维度1.2 sklearn中的降维算法 二、降维实现原理2.1 PCA与SVD2.2 降维实现2.3 降维过程 三、鸢尾花数据集降维3.1 高维数据的可视化3.2 探索降维后的数据3.3 累积可解释方差贡献率曲线 四、选n_components参数方法4.1 最大似然估计自选超参数4.2 按信息量占比选超参数 一、概述 1.1 维度 1. 对于数组和Series来说维度就是功能shape返回的结果shape中返回了几个数字就是几维。索引以外的数据不分行列的叫一维此时shape返回唯一的维度上的数据个数有行列之分叫二维shape返回行×列也称为表。  2. 数组中的每一张表都可以是一个特征矩阵或一个DataFrame这些结构永远只有一张表所以一定有行列其中行是样本列是特征。针对每一张表维度指的是样本的数量或特征的数量一般无特别说明指的都是特征的数量。除了索引之外一个特征是一维两个特征是二维n个特征是n维。 3. 对图像来说维度就是图像中特征向量的数量。特征向量可以理解为是坐标轴一个特征向量定义一条直线是一维两个相互垂直的特征向量定义一个平面即一个直角坐标系就是二维三个相互垂直的特征向量定义一个空间即一个立体直角坐标系就是三维。三个以上的特征向量相互垂直定义人眼无法看见也无法想象的高维空间。 1.2 sklearn中的降维算法 1. 降维算法中的”降维“指的是降低特征矩阵中特征的数量。上周的课中我们说过降维的目的是为了让算法运算更快效果更好但其实还有另一种需求数据可视化。从上面的图我们其实可以看得出图像和特征矩阵的维度是可以相互对应的即一个特征对应一个特征向量对应一条坐标轴。所以三维及以下的特征矩阵是可以被可视化的这可以帮助我们很快地理解数据的分布而三维以上特征矩阵的则不能被可视化数据的性质也就比较难理解。  2. sklearn中降维算法都被包括在模块decomposition中这个模块本质是一个矩阵分解模块。模块其中的SVD和主成分分析PCA都属于矩阵分解算法中的入门算法都是通过分解特征矩阵来进行降维。 二、降维实现原理 2.1 PCA与SVD 1. 在降维过程中我们会减少特征的数量这意味着删除数据数据量变少则表示模型可以获取的信息会变少模型的表现可能会因此受影响。同时在高维数据中必然有一些特征是不带有效的信息的比如噪音或者有一些特征带有的信息和其他一些特征是重复的比如一些特征可能会线性相关。  我们希望能够找出一种办法来帮助我们衡量特征上所带的信息量让我们在降维的过程中能够即减少特征的数量又保留大部分有效信息——将那些带有重复信息的特征合并并删除那些带无效信息的特征等等——逐渐创造出能够代表原特征矩阵大部分信息的特征更少的新特征矩阵。 2. 之前的文章中提到过一种重要的特征选择方法方差过滤。如果一个特征的方差很小则意味着这个特征上很可能有大量取值都相同比如90%都是1只有10%是0甚至100%是1那这一个特征的取值对样本而言就没有区分度这种特征就不带有有效信息。从方差的这种应用就可以推断出如果一个特征的方差很大则说明这个特征上带有大量的信息。因此在降维中PCA使用的信息量衡量指标就是样本方差又称可解释性方差方差越大特征所带的信息量越多。 2.2 降维实现 1. 模块sklearn.decomposition.PCA (n_componentsNone, copyTrue, whitenFalse, svd_solver’auto’, tol0.0,iterated_power’auto’, random_stateNone)。  2. PCA作为矩阵分解算法的核心算法其实没有太多参数但不幸的是每个参数的意义和运用都很难因为几乎每个参数都涉及到高深的数学原理。为了参数的运用和意义变得明朗我们来看一组简单的二维数据的降维。 1我们现在有一组简单的数据有特征x1和x2三个样本数据的坐标点分别为(1,1)(2,2)(3,3)。我们可以让x1和x2分别作为两个特征向量很轻松地用一个二维平面来描述这组数据。这组数据现在每个特征的均值都为2方差则等于 2每个特征的数据一模一样因此方差也都为1数据的方差总和是2。现在我们的目标是只用一个特征向量来描述这组数据即将二维数据降为一维数据并且尽可能地保留信息量 即让数据的总方差尽量靠近2。于是我们将原本的直角坐标系逆时针旋转45°形成了新的特征向量组成的新平面方差为 3通过旋转原有特征向量组成的坐标轴来找到新特征向量和新坐标平面我们将三个样本点的信息压缩到了一条直线上实现了二维变一维并且尽量保留原始数据的信息。一个成功的降维就实现了。 2.3 降维过程 1. 结合上面的例子进行过程对比 过程二维特征矩阵n维特征矩阵1输入原数据结构为 (3,2) 找出原本的2个特征对应的直角坐标系本质是找出这2个特征构成的2维平面输入原数据结构为 (m,n) 找出原本的n个特征向量构成的n维空间V2决定降维后的特征数量1决定降维后的特征数量k3旋转找出一个新坐标系本质是找出2个新的特征向量以及它们构成的新2维平面新特征向量让数据能够被压缩到少数特征上并且总信息量不损失太多通过某种变化找出n个新的特征向量以及它们构成的新n维空间V4找出数据点在新坐标系上2个新坐标轴上的坐标找出原始数据在新特征空间V中的n个新特征向量上对应的值即“将数据映射到新空间中”5选取第1个方差最大的特征向量删掉没有被选中的特征成功将2维平面降为1维选取前k个信息量最大的特征删掉没有被选中的特征成功将n维空间V降为k维 2. 在步骤3当中我们用来找出n个新特征向量让数据能够被压缩到少数特征上并且总信息量不损失太多的技术就是矩阵分解。  PCA和SVD是两种不同的降维算法但他们都遵从上面的过程来实现降维只是两种算法中矩阵分解的方法不同信息量的衡量指标不同罢了。 PCA使用方差作为信息量的衡量指标并且特征值分解来找出空间V。降维时它会通过一系列数学的神秘操作将特征矩阵X分解为三个矩阵。Σ是一个对角矩阵即除了对角线上有值其他位置都是0的矩阵其对角线上的元素就是方差。降维完成之后PCA找到的每个新特征向量就叫做“主成分”而被丢弃的特征向量被认为信息量很少这些信息很可能就是噪音。 SVD使用奇异值分解来找出空间V其中Σ也是一个对角矩阵不过它对角线上的元素是奇异值这也是SVD中用来衡量特征上的信息量的指标。 三、鸢尾花数据集降维 3.1 高维数据的可视化 1. 代码块 import matplotlib.pyplot as plt from sklearn.datasets import load_iris #鸢尾花数据集 from sklearn.decomposition import PCA import pandas as pdiris load_iris() y iris.target X iris.data #print(pd.DataFrame(X)) 可以看到有四个特征就是四维的特征矩阵pca PCA(n_components2) #实例化 pca pca.fit(X) #拟合模型 X_dr pca.transform(X) #获取新矩阵 #X_dr PCA(2).fit_transform(X) #print(pd.DataFrame(X_dr))colors [red, black, orange] plt.figure() for i in [0,1,2]:plt.scatter(X_dr[y i, 0], X_dr[y i, 1], alpha .7 #透明度, c colors[i], label iris.target_names[i]) plt.legend() plt.title(PCA of IRIS dataset) plt.show()2. 结果鸢尾花的分布被展现在我们眼前了明显这是一个分簇的分布并且每个簇之间的分布相对比较明显也许versicolor和virginia这两种花之间会有一些分类错误但setosa肯定不会被分错。这样的数据很容易分类可以遇见KNN随机森林神经网络朴素贝叶斯Adaboost这些分类器在鸢尾花数据集上未调整的时候都可以有95%上下的准确率。 3.2 探索降维后的数据 #属性explained_variance_查看降维后每个新特征向量上所带的信息量大小可解释性方差的大小 print(pca.explained_variance_) #结果[4.22824171 0.24267075]#属性explained_variance_ratio查看降维后每个新特征向量所占的信息量占原始数据总信息量的百分比 #又叫做可解释方差贡献率 print(pca.explained_variance_ratio_) #结果[0.92461872 0.05306648]#大部分信息都被有效地集中在了第一个特征上效果很好 print(pca.explained_variance_ratio_.sum()) #结果0.97768520631879493.3 累积可解释方差贡献率曲线 1. 当参数n_components中不填写任何值则默认返回min(X.shape)个特征一般来说样本量都会大于特征数目所以什么都不填就相当于转换了新特征空间但没有减少特征的个数。一般来说不会使用这种输入方式。但我们却可以使用这种输入方式来画出累计可解释方差贡献率曲线以此选择最好的n_components的整数取值。累积可解释方差贡献率曲线是一条以降维后保留的特征个数为横坐标降维后新特征矩阵捕捉到的可解释方差贡献率为纵坐标的曲线能够帮助我们决定n_components最好的取值。  2. 代码块 pca_line PCA().fit(X) plt.plot([1,2,3,4],np.cumsum(pca_line.explained_variance_ratio_)) plt.xticks([1,2,3,4]) #这是为了限制坐标轴显示为整数 plt.xlabel(number of components after dimension reduction) plt.ylabel(cumulative explained variance ratio) plt.show()四、选n_components参数方法 4.1 最大似然估计自选超参数 1. 除了输入整数n_components还有哪些选择呢之前我们提到过矩阵分解的理论发展在业界独树一帜勤奋智慧的数学大神Minka, T.P.在麻省理工学院媒体实验室做研究时找出了让PCA用最大似然估计(maximum likelihood estimation)自选超参数的方法输入“mle”作为n_components的参数输入就可以调用这种方法。  2. 代码块 pca_mle PCA(n_componentsmle) pca_mle pca_mle.fit(X) X_mle pca_mle.transform(X) print(pd.DataFrame(X_mle)) #可以发现mle为我们自动选择了3个特征print(pca_mle.explained_variance_ratio_.sum()) #得到了比设定2个特征时更高的信息含量对于鸢尾花这个很小的数据集来说3个特征对应这么高的信息含量并不需要去纠结于只保留2个特征毕竟三个特征也可以可视化4.2 按信息量占比选超参数 1. 输入[0,1]之间的浮点数并且让参数svd_solver ‘full’表示希望降维后的总解释性方差占比大于n_components指定的百分比即是说希望保留百分之多少的信息量。比如说如果我们希望保留97%的信息量就可以输入n_components 0.97PCA会自动选出能够让保留的信息量超过97%的特征数量。  2. 代码块 pca_f PCA(n_components0.97,svd_solverfull) pca_f pca_f.fit(X) X_f pca_f.transform(X) print(pca_f.explained_variance_ratio_)
http://www.pierceye.com/news/688/

相关文章:

  • 织梦网站安装教程视频微信营销手机
  • 营口网站制作公司wordpress没有外观
  • 网站编辑兼职深圳市研发网站建设哪家好
  • 找到网站永久域名怎么做一个网上商城
  • 网站建设制作需求ps网站轮播图怎么做的
  • 网页设计网站开发需要哪些知识wordpress拖曳组件
  • 北京建网站报价网站建设军成
  • 免费网站建设域名无锡网络营销平台
  • 上海外贸网站推广wordpress欣赏
  • 企业门户网站模板显示电脑没有安装wordpress
  • 创意设计海报凤山网站seo
  • 网站设计在线域名交易中心
  • 单本小说网站万网域名查询接口
  • 网站建设const是什么意思wordpress手机站
  • 网站安全建设需求百度搜索网站提交
  • 网站建设基础服务报价wordpress转换为中文版
  • 正保建设工程网站wordpress换主题链接
  • 许昌市建设局网站网站制作设计机构
  • 平面设计国外网站免费正能量不良网站推荐
  • 网站服务内容填网站建设可以自适应网站开发文字大小如何处理
  • 有字库wordpress山西seo排名
  • 建站广告赚钱新开传奇网站超变
  • 如何让网站自适应屏幕怎么搭建小程序平台
  • 网站建设的费用报价wordpress主题函数
  • 建设局网站新闻网页培训
  • 人工智能网站建设免费网络连接软件
  • 微营销是什么意思seo网站案例
  • 前端网站开发总结cc wordpress
  • 直播网站建设重庆沧州建设局网站
  • 企业在网站建设后期需要做什么洛阳霞光做网站