数学建模--主成分分析法(PCA)的Python实现(

news2024/11/27 14:30:40

目录

 1.算法核心思想:

  2.算法核心代码:

  3.算法分类效果:

 1.算法核心思想:

1.设置降维后主成分的数目为2
2.进行数据降维
3.设置main_factors+1个划分类型
4.根据组分中的值进行分类
5.绘制出对应的图像

  2.算法核心代码:

#导入matplotlib库和sklearn的一些函数
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris#导入莺尾花数据集作为数据来源
test_data=load_iris()
x=test_data.data
y=test_data.target
#进行PCA算法的优化 
#1.设置降维后主成分的数目为2
main_factors=2
data_pca=PCA(main_factors)
#2.进行数据降维
data_reduce=data_pca.fit_transform(x)
#2.设置main_factors+1个划分类型
x_red=[]
y_red=[]
x_blue=[]
y_blue=[]
x_yellow=[]
y_yellow=[]
#3.根据组分中的值进行分类
#计算多少次分类并执行
number=len(data_reduce)
for i in range(number):
    if y[i]==1:
        x_red.append(data_reduce[i][0])
        y_red.append(data_reduce[i][1])
    elif y[i]==0:
        x_blue.append(data_reduce[i][0])
        y_blue.append(data_reduce[i][1])
    else:
        x_yellow.append(data_reduce[i][0])
        y_yellow.append(data_reduce[i][1])
#4.绘制出对应的图像
plt.scatter(x_red,y_red,color='r',marker='x')
plt.scatter(x_blue,y_blue,color='b',marker='o')
plt.scatter(x_yellow,y_yellow,color='y',marker='*')
plt.title('PCA Classified Image')
plt.xlabel('X distribution of data')
plt.ylabel('Y distribution of data')
plt.show()

  3.算法分类效果:

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

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

相关文章

使用多线程std::thread发挥多核计算优势(解答)

使用多线程std::thread发挥多核计算优势(题目) 单核无能为力 如果我们的电脑只有一个核,那么我们没有什么更好的办法可以让我们的程序更快。 因为这个作业限制了你修改算法函数。你唯一能做的就是利用你电脑的多核。 使用多线程 由于我们…

C语言练习8(巩固提升)

C语言练习8 编程题 前言 奋斗是曲折的,“为有牺牲多壮志,敢教日月换新天”,要奋斗就会有牺牲,我们要始终发扬大无畏精神和无私奉献精神。奋斗者是精神最为富足的人,也是最懂得幸福、最享受幸福的人。正如马克思所讲&am…

无涯教程-JavaScript - CUBESETCOUNT函数

描述 CUBESETCOUNT函数返回集合中的项目数。 语法 CUBESETCOUNT (set)争论 Argument描述Required/Optionalset Microsoft Excel表达式的文本字符串,其输出为由CUBESET函数定义的集合。 OR CUBESET功能。 OR 对包含CUBESET函数的单元格的引用。 Required Notes 求值CUBESE…

【个人博客系统网站】统一处理 · 拦截器

【JavaEE】进阶 个人博客系统(2) 文章目录 【JavaEE】进阶 个人博客系统(2)1. 统一返回格式处理1.1 统一返回类common.CommonResult1.2 统一返回处理器component.ResponseAdvice 2. 统一异常处理3. 拦截器实现3.1 全局变量SESSI…

Mariadb高可用(四十)

目录 一、概述 (一)概念 (二)组成 (三)特点 (四)工作原理 二、实验要求 三、构建MHA (一)ssh免密登录 (二)安装mariadb数据库…

数学建模--一维插值法的多种插值方式的Python实现

目录 1.算法流程步骤 2.算法核心代码 3.算法效果展示 1.算法流程步骤 #算法的核心就是利用scipy中的interpolate来完成工作 #一共是5种一维插值算法形式: #插值方法:1.阶梯插值 2.线性插值 3.2阶样条插值 4.3阶样条插值 #"nearest"阶梯插值 #"zero&…

硬盘数据恢复的基础操作方法分享

确定硬盘故障类型:在进行硬盘数据恢复之前,首先需要确定故障类型是硬件故障还是软件故障。如果是软件故障,可以尝试使用数据恢复软件进行恢复;如果是硬件故障,则需要求助专业数据恢复公司进行处理。 使用数据恢复软件…

JavaScript基础05——字面量、变量介绍及变量基本使用

哈喽,大家好,我是雷工! 说起变量感觉很熟悉,但要让解释什么是变量时,却有点语塞,就像解释下为啥112一样,感觉非常熟悉,就是知道,但确解释不出来。 不过虽然在其他场景比较…

机器学习——线性回归/岭回归

0、前言: 线性回归会用到python第三方库:sklearn.linear_model中的LinearRegression导入第三方库的方法:from sklearn.linear_model import LinearRegression使用LinearRegression(二维数据,一维数据)进行预测,其中数…

MySQL中的索引事务(2)事务----》数据库运行的原理知识+面试题~

本篇文章建议读者结合:MySQL中的索引事务(1)索引----》数据库运行的原理知识面试题~_念君思宁的博客-CSDN博客此时,如果你根据name来查询,查到叶子节点得到的只是主键id,还需要通过主键id去主键的B树里面在…

源码角度看待线程池的执行流程

文章目录 前言一、线程池的相关接口和实现类1.Executor接口2.ExecutorService接口3.AbstractExecutorService接口4.ThreadPoolExecutor 实现类 二、ThreadPoolExecutor源码解析1.Worker内部类2.execute()方法3.addWorker()方法 总结 前言 线程池内部维护了若干个线程&#xff…

RT-Thread 内核移植

内核移植 内核移植就是将RTT内核在不同的芯片架构、不同的板卡上运行起来,能够具备线程管理和调度,内存管理,线程间同步等功能。 移植可分为CPU架构移植和BSP(Board support package,板级支持包)移植两部…

1783_CMD启动MATLAB同时执行一个脚本

全部学习汇总: GitHub - GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes…

【数据结构】树和二叉树的概念及结构(一)

目录 一,树的概念及结构 1,树的定义 2,树结点的分类及关系 3,树的表示 二,二叉树的概念及结构 1,二叉树的定义 2,特殊的二叉树 3,二叉树的性质 4,二叉树的存储结构 1&…

Unity中Shader 纹理属性 Tilling(缩放度) 和 Offset(偏移度)

文章目录 前言一、Tilling(缩放度),个人理解有点像减小周期函数的周期的效果(在单位空间内,容得下重复的函数图像的多少)二、Offset(偏移度),个人理解是函数的平移三、在Shader中使用 Tilling 和…

如何批量查询所有德邦快递的物流信息

当我们需要查询多个德邦快递的物流信息时,我们可以使用固乔快递查询助手来批量查询。以下是具体的操作步骤: 1. 在浏览器中搜索并下载【固乔快递查询助手】软件。这款软件支持多种快递公司,包括德邦快递,而且可以批量查询物流信息…

洞发现-APP应用之漏洞探针利用修复(44)

主要分为三个部分,第一部分抓包是很重要的,第二部分是协议,第三部分是逆向(讲的不会太多,介绍根据使用不介绍原理), 关于反编译,app就分为安卓和苹果系统,苹果系统的源码…

基于STM32的简易示波器设计

疫情期间闲来无事,正好学习STM32F407,因此设计、制作了简易示波器,以助学习。长话短说方案如下: (1)单片机,选择STM32F407VET6,采用SWD方式仿真及程序烧写。五路独立按键和两个LED指…

[国产MCU]-W801开发实例-用户报文协议(UDP)数据接收和发送

用户报文协议(UDP)数据接收和发送 文章目录 用户报文协议(UDP)数据接收和发送1、UDP简单介绍2、W801的UDP创建逻辑2.1 UDP使用步骤2.2 代码实现1、UDP简单介绍 用户数据报协议 (UDP) 是一种跨互联网使用的通信协议,用于对时间敏感的传输,例如视频播放或 DNS查找。它通过在数…

OTFS-ISAC通信最新进展

测试场景 Tx DD域帧结构导频区域 Rx DD域帧导频区域 原始星座图 信道估计及数据检测 经过MP算法后的星座图 误码率曲线