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

11.无监督学习之主成分分析

11.1 降维

降维的两种应用:一是数据压缩;二是可视化数据。

11.1.1 数据压缩

将相关性强的两个特征导致冗余,可以直接去掉其中一个特征,或者将两个特征进行某种转换,得到一个特征。

 11.1.2 可视化数据

直接看数据可能看不出什么现象出来

 但是通过图来进行对比,按照GDP或者是其他标准来看,会更明显。

11.2 主成分分析(PCA)

假设我们有一个二维的样本x数据集,当我们向对数据进行降维从二维到一维,也就是想到找一条能够将数据投影成一条直线。PCA会找一个低维得平面,刚刚的假设例子是一条直线,然后将数据投影在上面使这些蓝色小线段长度(有时也叫投影误差)平方最小,PCA要做的就是找到一个投影平面对数据进行投影使得能最小化这个距离。

主成分分析(PCA)是一种数据压缩的算法,他将数据压缩到k维度,并使得所有数据投影到新维度的距离最小。在应用PCA之前,常规的做法是先进行均值归一化特征常规化,使得特征x_{1},x_{2}得均值为0并且其数值在可比较范围之内。

PCA做的就是,对于二维降到一维:要试着找到一个向量,假设是u^{(i)}(u^{(i)}\in \mathbb{R}^{n}),要找一个数据投影后能够最小化投影误差的方向,在这个例子里,希望PCA能找到这个向量u^{(1)}。当把数据投影到u^{(1)}存在的这条直线上时,就会得到非常小的重构误差(如上图所示)。

对于N维降到K维:我们要找的就不是单个向量来对数据进行投影二是想寻找K个方向来对数据进行投影来最小化投影误差。

PCA不是线性回归,一个是投影距离,一个是点与直线上点的距离

下图的左边部分表示线性回归,当我们处理线性回归时,给定某个输入的特征量x来预测出某变量y的值。所以在线性回归中,我们要做的就是拟合一条直线来最小化点和直线之间的平方误差,要最小化的是图中蓝线之和的平方。下图的右边部分表示PCA,在处理PCA中,它要做的是试图最小化这些蓝色直线的长度(是他们最短的正交距离)。线性回归垂直x轴,求预测与实际y差;而PCA是垂直于拟合线,求正交距离。

 并且线性回归是用所有的x来预测y,在PCA中没有区别对待,没有什么特殊的变量y需要预测,相反我们有一系列特征都是同等对待。

PCA执行过程:首先对数据预处理,进行均值归一化(可能也要进行特征缩放),然后计算协方差,最后得到一个k维的矩阵。

 首先对数据进行均值归一化,然后确定要压缩的目标维度,即对应向量的个数,PCA的目标是使得所有数据距离新维度的距离最小。

将n维降到k维,下面是过程:

在进行数据预处理后,首先计算协方差(covariance matrix)Sigma是nxn的矩阵, 再进行特征缩放。

 

11.3 压缩重现

怎么样把降维的数据再重现回去?

 x_{approx} =U_{reduce}z(这里反求的x是近似的)

 11.4 确定维度K

 为了选择k也就是主要成分的数量,这里有一些有用的概念。

PCA所做的是尝试使得这个式子\frac{1}{m}\sum_{i=1}^{m}\left \| x^{(i)}-x_{approx}^{(i)} \right \|^{2}最小化,这就是平均平方差投影误差训练集数据的总方差\frac{1}{m}\sum_{i=1}^{m}\left \| x^{(i)} \right \|^{2}(所有训练实例的范数得平均值)。也就是说,它代表了我的数据点与(0,0)点平均有多远。当我们选择k时,我们要取得最小值的k,使得下图的不等式小于等于0.01。

选择k使得平均投影平方误差(分子)除以总方差(分母),也就是代表数据波动有多大。这里的0.01,用术语说就是保留99%的方差特性,也就是降维后保留的数据量要占到原数据的99%以上。variance在这里不应该理解成为方差而是差异,PCA其实是保留差异的分量,将具有相关性。可能95%到99%是最常使用的数值。因为很多数据特征相关,所以降维依然可以保留95%以上的特征。

 实现这一点的步骤如下:

如果你想要k的值,让k=1,执行PCA算法,计算下面这些变量的值,然后检查下面不等式是否满足小于等于0.01,如果不成立继续让k=2,k=3,k=4...;如果成立就选择k=1。但是这样做效率不高。

 可以使用PCA运算中已经写好的svd分解函数,调用svd,通过Sigma参数,得到U,S,V三个参数。其中,S矩阵是一个对角阵。并且可以证明对于给定的k,将\frac{\frac{1}{m}\sum_{i=1}^{m}\left \| x^{(i)}-x_{approx}^{(i)} \right \|^{2}}{\frac{1}{m}\sum_{i=1}^{m}\left \| x^{(i)} \right \|^{2}}变换成1-\frac{\sum_{i=1}^{k}S_{ii}}{\sum_{i=1}^{n}S_{ii}}这样计算,接下来要做的就是验证它是否小于等于0.01,或者验证\frac{\sum_{i=1}^{k}S_{ii}}{\sum_{i=1}^{n}S_{ii}}是否大于0.99。

 11.5 PCA的应用

如果直接再交叉验证集和测试集上用PCA会过拟合,所以只能用训练集降维矩阵去给测试机和交叉验证集做映射,不能另外在上面做PCA。

PCA的应用:首先它能进行数据压缩,其次可以使用PCA去加速学习算法以及可视化

PCA不能防止过拟合!过拟合是由于某些异常数据的影响而产生的,通过主成分分析只能去除异常数据内部的一部分噪音,并不能把异常数据本身从数据集中去除,异常数据在投影面上的异常性还是存在。解决过拟合的好方式使用正则化。

PCA有时候会丢失一些重要的数据信息,这样训练出来的模型性能会减弱,除非数据太大或者算法太慢才会考虑PCA。

相关文章:

11.无监督学习之主成分分析

11.1 降维 降维的两种应用:一是数据压缩;二是可视化数据。 11.1.1 数据压缩 将相关性强的两个特征导致冗余,可以直接去掉其中一个特征,或者将两个特征进行某种转换,得到一个特征。 11.1.2 可视化数据 直接看数据可…...

「HTML和CSS入门指南」figcaption 标签详解

什么是 figcaption 标签? 在 HTML 中,figcaption 标签用于为与 figure 元素相关的媒体内容提供说明性文本。通常用于包含图像、音频或视频等媒体元素的说明文本。 figcaption 标签的基本语法 以下是 figcaption 标签的基本语法: <figure><!-- 在这里放置您的媒体…...

电子企业实施数字化工厂建设之前,需要注意哪些

随着工业4.0时代的到来&#xff0c;数字化工厂建设已成为越来越多电子企业的重要议题。数字化工厂管理系统能够提高生产效率、降低成本、提高产品质量等多个方面的优势&#xff0c;对于企业的可持续发展具有重要意义。然而&#xff0c;在实施电子企业数字化工厂建设之前&#x…...

迅捷pdf实现多页插入

之前我们使用福昕阅读器实现了在每一页插入logo 这里我们用迅捷pdf再来一次&#xff0c;别问&#xff0c;问就是公司买了会员 首先声明&#xff0c;这里已经有会员了&#xff0c;所以不知道别人操作是不是需要会员&#xff0c;担心的话可以看看上一篇福昕阅读器版本 打开编辑…...

调用阿里云API实现证件照生成

目录 1. 作者介绍2. 算法介绍2.1 阿里云介绍2.2 证件照生成背景2.3 图像分割算法 3.调用阿里云API进行证件照生成实例3.1 准备工作3.2 实验代码3.3 实验结果与分析 参考&#xff08;可供参考的链接和引用文献&#xff09; 1. 作者介绍 王逸腾&#xff0c;男&#xff0c;西安工…...

PHP 转换 excel中读取的时间

首先&#xff0c;我们需要知道PHPExcel的时间和日期格式是以Excel内部的“1900年1月1日”为基础&#xff0c;以天为单位来计算的。即Excel日期与PHP时间戳之间存在一个时间偏移量。通过查阅PHPExcel的官方文档&#xff0c;我们可以得到以下的计算公式&#xff1a; // 读取exce…...

Cmake工具的简单使用

引言 本篇文章讲述如何简单的使用cmake工具构建一个项目&#xff0c;帮助入门的c新手学会如何使用cmake. 我们在Clion新创建一个项目时&#xff0c;会发现&#xff0c;除了main.cpp文件之外&#xff0c;还存在一个build-debug目录和一个CMakelists.txt文件&#xff0c;如图: …...

html选择器

基本选择器 基本选择器 : 标签选择器 , 类选择器 , ID选择器 标签选择器 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEed…...

Leetcode 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 设计一个支持在平均 时间复杂度 O(1) 下&#xff0c;执行以下操作…...

django实现读取数据导出生成excel表格

目录 一、简单示例&#xff1a; 1.创建文件对象&#xff1a; 2.添加工作表&#xff1a; 3.写入数据&#xff1a; 二、实践出真理 需要先安装xlwt模块 pip install -i https://pypi.douban.com/simple xlwt一、简单示例&#xff1a; import xlwt# 创建一个Excel文件对象 …...

DevOps系列文章之 Docker-compose

一&#xff0c;Docker-compose全集 1&#xff0c;Docker-compose简介 Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是工程&#xff08;project&#xff09;&#xff0c…...

Vue Router入门:轻松构建单页应用程序

Vue.js是一种流行的前端JavaScript框架,可以让开发人员轻松构建动态用户界面。Vue.js的一个关键特性是其路由系统,它使得开发人员可以轻松创建具有多个视图和页面的单页应用程序(SPA)。在本文中,我们将探讨如何使用Vue Router在Vue.js中构建SPA。我们将介绍如何安装和配置…...

ITSM 如何帮助制造业企业

ITSM在现代制造业中的作用 在过去的几年中&#xff0c;制造业已经看到了快速的数字化&#xff0c;以智能制造技术改进生产技术。在工业4.0和工业5.0的推动下&#xff0c;制造商正在摆脱陈旧 以及利用物联网、人工智能、机器学习和大数据等先进技术的互联智能制造系统&#xff…...

leecode

leecode20&#xff0c;有效的括号&#xff0c;栈 class Solution:def isValid(self, s: str) -> bool:def check(ch1,ch2):if ch1 [ and ch2 ]:return Trueelif ch1 ( and ch2 ):return Trueelif ch1 { and ch2 }:return Trueelse:return Falsestack []for i in ran…...

2023-06-09 LeetCode每日一题(修改图中的边权)<未来补全>

2023-06-09每日一题 一、题目编号 2699. 修改图中的边权二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 n 个节点的 无向带权连通 图&#xff0c;节点编号为 0 到 n - 1 &#xff0c;再给你一个整数数组 edges &#xff0c;其中 edges[i] [ai, bi, wi] 表示节点…...

Linux 应用程序信号量使用实战

背景 在项目实施过程中&#xff0c;有个机制需要做两个线程之间的同步。 具体需求如下&#xff1a; 首先&#xff0c;线程1需要把资源读取到缓存 其次&#xff0c;线程2才可以操作这块缓存 上述两个动作顺序交替重复。 思路 使用信号量解决思路&#xff0c;申请两个信号…...

【Java多线程进阶】synchronized工作原理

前言 本期讲解 synchronized 工作的原理以及常见的锁优化机制&#xff0c;相信大家在看完这篇博文后对 synchronized 工作流程有一定的理解。话不多说&#xff0c;让我们快速进入学习吧~ 目录 1. 锁的工作流程 2. 偏向锁 3. 轻量级锁和重量级锁 3.1 轻量级锁 3.2 重量级锁…...

C语言经典题目(三)

C站的小伙伴们&#xff0c;大家好呀&#xff01;&#x1f60a;&#x1f60a;✨✨这一篇是C语言之经典题目篇&#xff0c;除程序设计&#xff0c;还有一些不错的程序分析&#xff0c;快来和我一起进入C语言的世界吧&#xff01;✨✨✨ &#x1f495;C语言其他刷题篇在这里哦&…...

九、(补充文章四)Arcgis实现深度学习训练样本数据的批量制作——只靠原图+shp如何批量制作样本图片

之前写了一些个深度学习系列文 其中先是单张样本的制作方法 最后通过构造模型批量处理 大大提高了生成样本的速度 四、Arcgis实现深度学习河流训练样本数据的制作(使用软件批量获取样本图片)——对已经获取到的完整面状样本数据进行处理 但是这个方法不仅仅需要shp和原图 还需要…...

MKS SERVO4257D 闭环步进电机_系列8 CAN通讯示例

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口&#xff0c;支持MODBUS-RTU通讯协议&#xff0c;内置高效FOC矢量算法&#xff0c;采用高精度编码器&#xff0c;通过位置反馈&a…...

UnityVR--组件9--视频组件VideoPlayer

目录 前言 参数解释 RenderMode渲染方式 VideoPlayer类中的API 前言 在之前的VR场景中已经使用过VideoPlayer播放视频&#xff08;Unity.UI的交互&#xff08;6&#xff09;-播放视频&#xff09;&#xff0c;不过在VR中设置是有些不同的&#xff0c;这里更详细地说明一下V…...

Java 深拷贝和浅拷贝

Java 中的深拷贝和浅拷贝是针对对象复制而言的。 浅拷贝&#xff08;Shallow Copy&#xff09; 当对象进行浅拷贝时&#xff0c;只会复制对象本身和其中的基本数据类型属性&#xff0c;而不会复制引用对象的实际内容。具体而言&#xff0c;浅拷贝只会创建一个新的对象&#x…...

[ruby on rails] docker

docker安装 ubuntu14.04后自带docker安装包&#xff0c;可以直接安装 sudo apt-get updatesudo apt-get install -y docker.io# 安装后启动sudo service docker start查看docker信息 docker infodocker命令 sudo service docker start sudo service docker stop sudo servic…...

网络协议——STP协议是什么?是如何实现的?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、STP协议是什么 二、为什么需要STP协议 三、STP的实现过程 ​编辑 1、选举跟桥 2、给非跟桥交换机选举跟端口 3、给每个网段选…...

【C++】智能指针 学习总结 |std::shared_ptr |std::unique_ptr | std::weak_ptr

文章目录 前言一、智能指针介绍二、普通指针和智能指针的比较案例三、std::shared_ptr四、std::unique_ptr五、std::weak_ptr六、std::shared_ptr |std::unique_ptr | std::weak_ptr三大智能指针的区别 前言 参考答案&#xff1a;chatgpt 一、智能指针介绍 智能指针是C的一种…...

iptables防火墙

文章目录 一.linux防火墙基础1.linux 包过滤防火墙概述1.1netfilter1.2 iptables 2.包过滤的工作层次2.1 通信的五元素和四元素 3.iptables 的表、链结构3.1 规则链3.2 默认包括5种规则链3.3 规则表3.4 默认包括4个规则表 二.数据包过滤的匹配流程1.规则表之间的顺序2.规则链之…...

properties、yaml作为配置文件的特点

说明&#xff1a;在软件开发中&#xff0c;经常需要把一些配置写在文件中&#xff0c;如数据库配置、MyBatis配置等。这样&#xff0c;后续如果数据库参数有改动&#xff0c;就可以避免直接对代码做修改&#xff0c;只要修改配置文件中关于数据库的配置。关于配置文件的选择&am…...

JavaSE-03 【流程控制语句】

文章目录 JavaSE-03 【流程控制语句】第一章 流程控制1.1 流程概述1.2 顺序结构 第二章 判断语句2.1 判断语句---if2.2 判断语句---if...else2.3 判断语句---if...else if ... else 第三章 选择语句3.1 选择语句--switch3.2 case的穿透性 第四章 循环语句4.1 循环概述4.2 循环语…...

笔记本电脑的BIOS是怎么保护安全的?

随着攻防技术的不断演进&#xff0c;像BIOS攻击、高级网络代码攻击等手段层出不穷&#xff0c;“受害者”也不仅限于企业级服务器、存储&#xff0c;很多魔爪也开始伸向了拥有商业机密数据的PC。 BIOS是Basic Input/Output System&#xff08;基本输入/输出系统&#xff09;的…...

Xubuntu之将rm删除内容移至回收站(一百七十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

网站免费主机申请/石嘴山网站seo

直接运行django&#xff0c;日志会直接打印到屏幕上&#xff0c;怎么样才能保存到文件中呢首先看到了这篇文章http://www.360doc.com/content/14/0708/10/16044571_392797799.shtml按照正常做就可以保存到文件中了&#xff0c;但是保存的格式非常乱&#xff0c;接下来看看怎么修…...

网站建设验收标准/网站seo系统

刊号 # 28 - Oct 05, 2008 项目新闻 准备翻译&#xff1a;NetBeans 6.5 本地化 NetBeans 社区成员正在准备 NetBeans 6.5的翻译&#xff1a;新的 L10N&#xff08;本地化&#xff09;工具已经准备好了。语言团队以前工作与老的工具上&#xff0c;将需要更新或者重新做一些文件。…...

网站建设 统一质量标准/网站怎么做

PHP获取不到SESSION信息的解决办法&#xff1a;首先检查【php.ini】&#xff0c;并查看【/var/tmp】的有读写权限&#xff1b;然后检查【php-fpm】配置文件&#xff1b;最后重启【php-fpm】。PHP获取不到SESSION信息的解决办法&#xff1a;一、检查 php.inivim /etc/php.ini检查…...

网站建设的基本要素/非国产手机浏览器

一、基本介绍 Git是一个文件版本管理工具&#xff0c;可以较为方便的进行文件管理&#xff0c;其为分布式的版本管理和同步软件 git只用于维护本地仓库&#xff0c;git也可以与远程代码托管中心进行联动&#xff0c;将本地仓库和远程仓库进行同步&#xff0c;远程仓库可以是Git…...

aspcms中引文 网站修改配置/服务推广软文范例

题目&#xff1a;点击打开链接 这个题目来自多校练习5&#xff0c;求整数划分的种类数&#xff0c;二维DP一定超时&#xff0c;一维打表试了试&#xff08;参考poj上吃蛋糕的题&#xff0c;范围是5000/5S&#xff09;&#xff0c;大于120KB&#xff0c;没法提交。 找了半天&a…...

湖南城乡建设厅网站/aso优化的主要内容为

所有被盗过号的 游戏玩家&#xff0c;都对黑客咬牙切齿&#xff0c;他让你损失的不仅是一个帐号&#xff0c;更是一套顶级装备&#xff0c;365天黑天摸地的练级&#xff0c;甚至是游戏中的荣耀。 游戏黑客究竟是什么样的神秘人物&#xff0c;又是如何把你的帐号盗走&#xff0c…...