Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)

锋哥原创的Scikit-learn Python机器学习视频教程:

2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍

本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据集,特征抽取,特征预处理,特征降维等),分类算法(K-临近算法,朴素贝叶斯算法,决策树等),回归与聚类算法(线性回归,欠拟合,逻辑回归与二分类,K-means算法)等。

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)

PCA通过线性变换将原始特征转换为一组线性不相关的变量(主成分),按方差大小排序。

PCA的核心思想是:将原始高维特征通过线性变换映射到新的低维坐标系中,这个新坐标系的坐标轴(主成分)按照能够保留原始数据最大方差的方向依次排列。

这意味着第一个新坐标轴(第一主成分)保留了数据中最大程度的方差,第二个新坐标轴(第二主成分)在与第一个正交的前提下保留次大方差,以此类推。

🧠 直观理解:一个经典的比喻

想象你在黑暗中从不同角度观察一个三维物体(比如一个倾斜的椭圆盘子),并记录下它在二维平面上的影子。

  • 某些角度下的影子(比如正上方)可能看起来只是一个短线,丢失了大量关于盘子形状的信息。

  • 某些角度下的影子(比如从盘子侧面)则能最大程度地展现它的形状和大小(一个椭圆)。

PCA要做的就是自动找到那个“最佳观测角度”,使得投影后的影子(低维数据)能包含原始物体(高维数据)最多的信息。而这个“信息量”,在PCA中就用方差来衡量。方差越大,意味着数据点在新坐标轴上分布得越分散,保留的信息就越多。

📊 数学原理与计算步骤(可分步理解)

假设有一个包含 m 个样本和 n 个特征的数据集 X ),其中 X = [x_1, x_2, …, x_m] ,每个样本 x_i 是一个 n 维向量。

( 快速理解这个PCA算法原理,可以查看 视频 主成分分析 (PCA) 转载自 抖音 动画讲编程 )

⚙️ 关键参数与概念(以Scikit-learn为例)

参数/概念说明
n_components最重要的参数。指定要保留的主成分个数 k。可以设为整数(如 2),也可以设为 01 之间的浮点数(如 0.95,表示保留95%的原始方差)。
svd_solver指定求解器。通常使用默认的 'auto' 即可。对于大型数据,使用 'randomized' 的随机SVD方法会更高效。
explained_variance_属性。一个数组,表示每个主成分所捕获的方差大小(即特征值)。
explained_variance_ratio_属性。一个数组,表示每个主成分所捕获的方差占总方差的百分比。这是决定 k 取多少的关键依据。
components_属性。投影矩阵 $W$,每一行是一个主成分(特征向量)。

我们来看一个示例:

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris# 加载数据
iris = load_iris()
X, y = iris.data, iris.target# 1. 标准化数据(至关重要!)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 2. 初始化PCA,保留2个主成分用于可视化
pca = PCA(n_components=2)# 3. 训练转换数据
X_pca = pca.fit_transform(X_scaled)print("原始数据形状:", X.shape)
print("降维后数据:", X_pca)

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/96045.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/96045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】pytorch安装(使用conda)

# 创建 PyTorch 虚拟环境 conda create -n pytorch_env python3.10# 激活环境 conda activate pytorch_env# 安装 PyTorch(CPU版本) conda install pytorch torchvision torchaudio cpuonly -c pytorch# 或者安装 GPU 版本(如果有NVIDIA显卡&…

ThreeJS骨骼示例

<html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>骨骼动画混合演示</title><style>body {margin: 0;padding: …

python + Flask模块学习 1 基础用法

目录 Flask 的主要作用 常用扩展 Flask 基本用法 1. 安装 Flask&#xff08;再安装个postman用来调试测试API哈 2. 最小化应用示例 3. 运行应用 Flask 是一个轻量级的 Python Web 框架&#xff0c;它简洁灵活&#xff0c;适合快速开发 Web 应用和 API。它被称为 "微…

python数据可视化之Matplotlib(8)-Matplotlib样式系统深度解析:从入门到企业级应用

作者&#xff1a;浪浪山齐天大圣 描述&#xff1a;深入探索Matplotlib样式系统的核心机制&#xff0c;掌握从基础样式到企业级样式管理的完整解决方案引言 在数据可视化的世界里&#xff0c;一个优秀的图表不仅要准确传达数据信息&#xff0c;更要具备专业的视觉效果。Matplotl…

3.HTTP/HTTPS:报文格式、方法、状态码、缓存、SSLTLS握手

HTTP/HTTPS&#xff1a;报文格式、方法、状态码、缓存、SSL/TLS握手 1. HTTP报文格式 1.1 HTTP请求报文(Request) GET /api/v1/users HTTP/1.1 // 请求行&#xff1a;方法、URI、协议版本 Host: api.example.com // 请求头 (Headers) User-Agent: Mozil…

【慢教程】Ollama4:ollama命令汇总

ℹ️教程说明 Ollama 是一款轻量级本地大模型部署工具&#xff0c;使用广泛&#xff0c;且容易上手&#xff0c;适合作为AI技术的入门。 &#x1f9e9;教程各部分链接&#xff1a; 第一课&#xff1a;ollama运行原理介绍及同类工具对比 ollama运行原理介绍及同类工具对比&am…

JAVA Predicate

简单来说&#xff0c;当我明确知道此次判断的逻辑时就可以直接使用if&#xff0c;但是我这次的判断逻辑可能会随着某个参数变化的时候使用Predicate比如当我想要判断某长段文字中是否包含list<String> 中的元素&#xff0c;并且包含的元素个数大于 list<String>最后…

什么是PFC控制器

一句话概括PFC控制器是一种智能芯片&#xff0c;它通过控制电路中的电流波形&#xff0c;使其与电压波形保持一致&#xff0c;从而减少电力浪费&#xff0c;提高电能的利用效率。PFC控制器IC的核心作用就是控制一颗功率MOSFET的开关&#xff0c;通过特定的电路拓扑&#xff08;…

【P03_AI大模型测试之_定制化 AI 应用程序开发】

git clone https://gitee.com/winner21/aigc-test.git 类似于joycoder的&#xff0c;可以安装在vscode上的通义灵码&#xff1a;https://lingma.aliyun.com/ 1、VSCODE上配置通义灵码 2、创建前后端文件&#xff0c;并引用AI编码代码 3、指定文件&#xff0c;利用AI进行代码优…

人工智能机器学习——决策树、异常检测、主成分分析(PCA)

一、决策树(Decision Tree) 决策树&#xff1a;一种对实例进行分类的树形结构&#xff0c;通过多层判断区分目标所属类别 本质&#xff1a;通过多层判断&#xff0c;从训练数据集中归纳出一组分类规则 优点&#xff1a; 计算量小&#xff0c;运算速度快易于理解&#xff0c;可…

服务器文件同步用哪个工具?介绍一种安全高效的文件同步方案

服务器作为企业核心数据和应用的载体&#xff0c;服务器文件同步已成为IT运维、数据备份、业务协同中不可或缺的一环。然而&#xff0c;面对多样的场景和严苛的需求&#xff0c;选择一个既高效又安全的服务器文件同步工具并非易事。本文将首先探讨服务器文件同步的常见场景、需…

LeetCode 004. 寻找两个正序数组的中位数 - 二分切分与分治详解

一、文章标题 LeetCode 004. 寻找两个正序数组的中位数 - 二分切分与分治详解 二、文章内容 1. 题目概述 题目描述&#xff1a;给定两个已按非降序排列的整数数组 nums1、nums2&#xff0c;设它们长度分别为 m 和 n&#xff0c;要求返回这两个数组合并后有序序列的中位数。…

预闪为什么可以用来防红眼?

打闪拍照红眼产生的原因 预闪可以用来防红眼&#xff0c;是基于人眼的生理特性和红眼现象的产生原理。在光线较暗时&#xff0c;人眼的瞳孔会放大。当使用闪光灯拍摄时&#xff0c;如果直接进行高强度闪光&#xff0c;由于瞳孔来不及缩小&#xff0c;闪光灯的光线会反射在眼球血…

Python程序使用了Ffmpeg,结束程序后,文件夹中仍然生成音频、视频文件

FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0c;为了保证高可移植性和编解码质量&#xff0…

模块与包的导入

077-模块-06-模块搜索顺序_哔哩哔哩_bilibili 080-包-01-包的概念以及建立包的方式_哔哩哔哩_bilibili 088-文件操作-01-文件操作套路以及Python中的对应函数和方法_哔哩哔哩_bilibili 注&#xff1a; 1.import math和 from math import *区别 2. 模块&#xff08;Module…

Docker Compose 多种安装方式 (Alibaba Cloud Linux 3 环境)

Docker Compose 多种安装方式&#xff0c;适用于不同场景&#xff08;如依赖系统包管理器、使用 Python 工具链、集成 Docker 插件等&#xff09;。以下是常见的方案&#xff0c;尤其针对 Alibaba Cloud Linux 3 环境适配&#xff1a; 一、二进制包安装&#xff08;推荐&#…

Dubbo3序列化安全机制导致的一次生产故障

前言 记录一次 Dubbo 线上故障排查和原因分析。 线上 Dubbo 消费者启动有错误日志如下&#xff0c;但是不影响服务启动。 java.lang.TypeNotPresentException: Type org.example.model.ThirdParam not present ... Caused by: java.lang.ClassNotFoundException: org.example.m…

centos7 docker离线安装

介绍 本文主要讲了如何在完全没网的情况下安装docker&#xff08;适合于高网络安全要求的企业&#xff09; 本文适用的centos版本&#xff1a; [root0001 temp]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 采用docker in docker下载依赖 实际试验后&…

东京本社招聘 | 财务负责人 多个日本IT岗位(Java/C++/Python/AWS 等),IT营业同步招募

大家好&#xff0c;本期为大家带来我司在东京GSD本社及其他会社千叶地区的招聘岗位。 涵盖 财务负责人、Java开发工程师、数据中心维护工程师、项目经理、IT营业 等多个职位。 欢迎有志之士加入&#xff01;&#x1f539; 财务负责人&#xff08;東京本社&#xff09;工作内容日…

四数之和

目录 一&#xff1a;题目链接 二&#xff1a;题目思路 三&#xff1a;代码实现 一&#xff1a;题目链接 理解题目需要注意&#xff0c;如果两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff0c;选择其中一个四元组即可。比如 [ 0 , 1 , 0 , 2] 和 [ 1 , …