机器学习算法应用实战笔记分享

news2024/11/6 3:16:31

来源:投稿 作者:小灰灰
编辑:学姐

整体代码请参考深度之眼的《机器学习算法应用实战》

视频链接:https://ai.deepshare.net/p/t_pc/goods_pc_detail/goods_detail/p_5e12aa8734510_IpNUGv5w

1.无监督学习方法---主成分分析

主成分分析(PCA)是一种统计方法,通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。应用于降维,高维数据集的探索与可视化,数据压缩,数据预处理。

2.基于协方差矩阵的特征值分解算法

(1)均值归一化

首先加载我们的数据,对数据进行归一化。

加载数据

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
def loaddata():
    data = np.loadtxt('data/pca_data.csv',delimiter=',')
    return data
X = loaddata()
plt.scatter(X[:,0],X[:,1])
plt.show()

归一化

def featureNormalize(X):
    mu = np.mean(X,axis=0).reshape(1,-1)
    sigma = np.std(X,axis=0,ddof=1).reshape(1,-1)
    X = (X-mu)/sigma
    return X,mu,sigma

(2)计算协方差矩阵

def pca(X,K):
    m = len(X)
    sigma = np.dot(np.transpose(X),X)/(m-1)

    #返回的特征向量要是排序后的
    eigenvalues,eigenvectors = np.linalg.eig(sigma)

    index = np.argsort(-eigenvalues)  # 依照featValue进行从大到小排序
    eigenvectors = eigenvectors[:,index]

    u_reduce = eigenvectors[:, 0:K]
    return np.dot(X, u_reduce),eigenvectors

(3)计算协方差矩阵的特征向量

X,mu,sigma = featureNormalize(X)
Z,eigenvectors = pca(X,1)
print(Z)

最终显示出结果:

def recoverData(Z, U, K):
    U_reduce = U[:,0:K]
    X_rec = np.dot(Z,np.transpose(U_reduce))
    return X_rec
def plotData(X_orgin,X_rec):
    plt.scatter(X_orgin[:,0],X_orgin[:,1])
    plt.scatter(X_rec[:, 0], X_rec[:, 1],c='green')
    plt.show()
X_rec = recoverData(Z,eigenvectors,1)
plotData(X,X_rec)

根据图,我们可以观察到二维数据降维到一维坐标点(绿色点)。

3.基于数据矩阵的奇异值分解

(1)均值归一化

我们使用刚才的数据集,进行归一化

def featureNormalize(X):
    mu = np.mean(X,axis=0).reshape(1,-1)
    sigma = np.std(X,axis=0,ddof=1).reshape(1,-1)
    X = (X-mu)/sigma
    return X,mu,sigma

(2)对数据矩阵进行分解

def pca(X,K):
    u,s,vT = np.linalg.svd(X,full_matrices=0)
    return X.dot(vT.T[:, 0:K]),u,s,vT

(3)显示降为后的数据

X,mu,sigma = featureNormalize(X)
Z,u,s,vT = pca(X,1)
print(Z)
def recoverData(Z, vT, K):
    V_reduce = vT[:,0:K]
    X_rec = np.dot(Z,np.transpose(V_reduce))
    return X_rec
def plotData(X_orgin,X_rec):
    plt.scatter(X_orgin[:,0],X_orgin[:,1])
    plt.scatter(X_rec[:, 0], X_rec[:, 1],c='red')
    plt.show()
X_rec = recoverData(Z,vT,1)
plotData(X,X_rec)

红色点是蓝色点降维后的可视化。

4.图像进行压缩

可以任意找一张图片进行PCA的压缩。

首先读取一张图片

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
img=mpimg.imread('data/jjq.jpg')

如果想显示看一下图片,可以

plt.imshow(img)
plt.show()

查看数据的维度

img.shape

我们把三维的照片变成二维的

X = img.reshape(1200,1200)

进行数据标准化

X = StandardScaler().fit_transform(X)

使用PCA进行降维

model = PCA(n_components=50)
Z = model.fit_transform(X)
print("贡献比=",np.sum(model.explained_variance_ratio_))

接下来,我们要把图片进行还原

X_rec = model.inverse_transform(Z)
X_rec = X_rec.reshape(800,600,3)

进行还原后的显示

plt.imshow(X_rec)
plt.show()

大家可以看看自己上传的图片显示出的结果

关注下方【学姐带你玩AI】🚀🚀🚀

回复“机器学习”领取必读书籍PDF+免费课件

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

离散数学 | 图论 | 欧拉图 | 哈密顿图 | 割点 | 桥

本文主要解决以下几个问题: 1.欧拉图能不能有割点,能不能有桥? 2.哈密顿图能不能有割点,能不能有桥? 首先我们要明白几个定义 割点的定义就是在一个图G中,它本来是连通的,去掉一个点v以后这个…

前几天面了个30岁的测试员,年薪50w问题基本都能回答上,应该刷了不少八股文···

互联网行业竞争是一年比一年严峻,作为测试工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯等大厂.....) 所以,大家就迎来了…

java 通过注解实现数据动态脱敏

一、为什么要数据脱敏? 数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用&…

10个高质量的简历制作网站推荐

刚经历完有金三银四,有没有因为简历不行,面试少的可怜的同学。 今天推荐10个高质量的简历制作网站,包括可以在线免费生成设计简历的网站。 1.即时设计资源社区 即时设计是国内首款专业级的 UI 设计工具,像 PC 端的网页&#xf…

ThingsBoard教程(四十六):规则节点解析 延迟节点 Delay Node。生成节点 Generator Node, 日志节点 Log Node

延迟节点 Delay Node Since TB Version 2.1 延迟接收消息的时间段可进行配置。 配置如下: Period in seconds - 指定暂停接收消息的时间段。 Maximum pending messages - 指定最大允许挂起消息的数量(即被暂停的消息队列)。 当特定传入消息的延迟期达到后,该消息将从…

MATLAB第九章_数据图形可视化

目录 数据图形可视化 MATLAB图形窗口 函数绘制 一元函数绘制 二元函数绘图 数据图形绘制简介 离散数据可视化 连续函数可视化 二维绘图函数 基本绘图 快速方程式画图 特殊二维图形 三维绘图函数 绘制三维曲面 生成栅格数据 网格曲线绘制 隐藏线的显示和关闭 数据…

51单片机串口通信

串口通信 1、通信的基本概念2、 51单片机串口介绍2.1、串口通信简介2.2、串口内部结构2.3、串口通信寄存器SCONPCON 2.4、串口工作方式 3、串口使用方法3.1、硬件3.2、通信协议RS2323.3、串口初始化 4、硬件设计5、 软件设计6、拓展 串口的通信,一般是检测通信模块是…

网络安全专业应该从事哪个方向前景比较好

目前网络安全行业包括很多领域,例如网络安全基础、网络安全运维、应用安全、云安全、算法与数据安全、区块链安全、工业控制系统安全和人工智能安全等方向,各个方向的前景都比较好,关键在于选择适合自己并且感兴趣的方向。同时,也…

OSI体系结构7层,5层,4层协议+负载均衡

上图分别是7,4,5层协议 Q:为什么分4层和7层,目的? 7层:OSI参考模型是一种理论模型,旨在描述计算机网络的功能和架构。它提供了一种通用的框架,用于理解和设计网络协议和系统。然而&…

3.6万亿token、3400亿参数,谷歌大模型PaLM 2细节遭曝光

来源 | 机器之心 ID | almosthuman2014 谷歌内部文件又泄露了,这次是谷歌新一代大模型 PaLM 2 的训练细节:训练数据量是前代的近 5 倍、参数量是前代的三分之二左右。 上周四,在 2023 谷歌 I/O 大会上,谷歌 CEO 皮查伊宣布推出对…

埃尔德动力系统指标公式,衡量趋势的惯性和能量

亚历山大埃尔德(Alexander Elder)在其经典著作《以交易为生》(原书第2版)新增了一个工具——动力系统(Impulse System),不过书中只介绍了动力系统的指标以及使用方法,并没有介绍系统的参数。其实动力系统在埃尔德2002年出版的《走…

【数据分析之道-基础知识(十一)】面向对象

文章目录 专栏导读1、简介2、类与对象3、属性和方法4、继承5、多态 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心…

瑞吉外卖开发总结(全功能实现)

技术栈 项目部署 简历上可写的点 集中处理系统异常,自定义统一的错误码, 并封装了全局异常处理器,屏蔽了项目冗余的报错细节、便于接口调用方理解和统一处理。 基于静态ThreadLocal封装了线程隔离的全局上下文对象,便于在请求内部存取用户信…

【STL模版库】模拟实现vector类模版

一、成员变量 template<class T> class Myvector{typedef T *iterator; //[1]typedef const T *const_iterator;private:iterator _start; //指向存存储空间的开头 //[2]iterator _finish; //指向实际存储元素的下一个位置iterator _end_of_storage; //指向存储空间结尾…

【5.19】三、白盒测试方法—逻辑覆盖法

目录 3.1 逻辑覆盖法 3.1.1 语句覆盖 3.1.2 判定覆盖 3.1.3 条件覆盖 3.1.4 判定—条件覆盖 3.1.5 条件组合覆盖 3.1.6 实例&#xff1a;三角形逻辑覆盖问题 白盒测试又称为透明盒测试、结构测试&#xff0c;它基于程序内部结构进行测试&#xff0c;而不是测试应用程序…

Net跨平台UI框架Avalonia入门-资源和样式

Net跨平台UI框架Avalonia入门-资源和样式编写和使用 资源和样式编写和使用样式&#xff08;Styles&#xff09;和资源&#xff08;Resources&#xff09;样式&#xff08;Styles&#xff09;样式定义定义的位置:定义内容&#xff1a; 样式文件的定义和引用 资源&#xff08;Res…

微信小程序xr-frame后处理

前言&#xff1a;什么是后处理&#xff1f;&#xff08;详见&#xff1a;ThreeJS 后处理 - 掘金 (juejin.cn)&#xff09; 后处理就是对WebGLRenderer.render(scene, camera)的渲染2D图片进行处理。可以把多个后处理进行组合&#xff0c;按照顺序执行&#xff0c;每个处理过程…

新-git-gitee代码管理(管理)

git忽略文件失效 git rm -r --cached . //清除缓存 git add . //添加所有文件 git commit -m update .gitignore //提交更新.gitignoregit 提交的一些规范 开发git commit规范&#xff1a; git commit --fix我的问题feat&#xff1a;新功能 fix&#xff1a;BUG…

VMware16安装 CentOS7

目录 VM下载与安装 密钥 CentOS镜像下载 安装过程 问题 win11一点启动就蓝屏重启 系统安装 安装摘要 选择日期 软件选择-> 最小安装 安装位置 网络和主机名 开始安装 用户设置 完成 登录 xshell连接操作 登录成功 VM下载与安装 官网下载地址 下载 VMware Works…

恩智浦正式启动人工智能创新实践平台,为本地生态注入创新动能

中国天津——2023年5月19日——恩智浦半导体&#xff08;NXP Semiconductors N.V.&#xff0c;纳斯达克代码&#xff1a;NXPI&#xff09;今日宣布&#xff0c;设于天津的人工智能应用创新中心二期项目——人工智能创新实践平台&#xff08;以下称“创新实践平台”&#xff09;…