zoukankan      html  css  js  c++  java
  • 机器学习实战基础(二十):sklearn中的降维算法PCA和SVD(一) 之 概述

    概述

    1 从什么叫“维度”说开来

    我们不断提到一些语言,比如说:随机森林是通过随机抽取特征来建树,以避免高维计算;再比如说,sklearn中导入特征矩阵,必须是至少二维;上周我们讲解特征工程,还特地提到了,特征选择的目的是通过降维来降低算法的计算成本……这些语言都很正常地被我用来使用,直到有一天,一个小伙伴问了我,”维度“到底是什么?

    对于数组和Series来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维。索引以外的数据,不分行列的叫一维(此时shape返回唯一的维度上的数据个数),有行列之分叫二维(shape返回行x列),也称为表。
    一张表最多二维,复数的表构成了更高的维度。当一个数组中存在2张3行4列的表时,shape返回的是(更高维,行,列)。当数组中存在2组2张3行4列的表时,数据就是4维,shape返回(2,2,3,4)。

    数组中的每一张表,都可以是一个特征矩阵或一个DataFrame,这些结构永远只有一张表,所以一定有行列,其中行是样本,列是特征。
    针对每一张表,维度指的是样本的数量或特征的数量,一般无特别说明,指的都是特征的数量。除了索引之外,一个特征是一维,两个特征是二维,n个特征是n维。

    对图像来说,维度就是图像中特征向量的数量。

    特征向量可以理解为是坐标轴,一个特征向量定义一条直线,是一维,两个相互垂直的特征向量定义一个平面,即一个直角坐标系,就是二维,三个相互垂直的特征向量定义一个空
    间,即一个立体直角坐标系,就是三维。三个以上的特征向量相互垂直,定义人眼无法看见,也无法想象的高维空间。

    降维算法中的”降维“,指的是降低特征矩阵中特征的数量。

    上周的课中我们说过,降维的目的是为了让算法运算更快,效果更好,但其实还有另一种需求:数据可视化。从上面的图我们其实可以看得出,图像和特征矩阵的维度是可以相互对应的,即一个特征对应一个特征向量,对应一条坐标轴。所以,三维及以下的特征矩阵,是可以被可视化的,这可以帮助我们很快地理解数据的分布,而三维以上特征矩阵的则不能被可视化,数据的性质也就比较难理解。

    2 sklearn中的降维算法

    sklearn中降维算法都被包括在模块decomposition中,这个模块本质是一个矩阵分解模块。在过去的十年中,如果要讨论算法进步的先锋,矩阵分解可以说是独树一帜。
    矩阵分解可以用在降维,深度学习,聚类分析,数据预处理,低纬度特征学习,推荐系统,大数据分析等领域。

  • 相关阅读:
    3_数据类型
    2_十进制与二进制的互相转换
    1_初识Java
    Jedis 常用API
    Eazfuscator.net 2020 IL级指令虚拟化保护(Virtualization)机制分析
    C#实现——十大排序算法之选择排序
    Flutter 开发从 0 到 1(三)布局与 ListView
    使用 .NET 进行游戏开发
    Metasploit简单使用——后渗透阶段
    ElasticSearch 索引 VS MySQL 索引
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12987052.html
Copyright © 2011-2022 走看看