【数据挖掘】数据规约中维归约、小波变换、主成分分析的讲解及实战(超详细 附源码)

简介: 【数据挖掘】数据规约中维归约、小波变换、主成分分析的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留言私信~~~

一、数据规约

数据归约(Data Reduction)用于在尽可能保持数据完整性的基础上得到数据的归约表示。也就是说,在归约后的数据集上挖掘将更有效,而且仍会产生相同或相似的分析结果

数据归约包括维归约、数量归约和数据压缩

1:维归约

维归约的思路是减少所考虑的随机变量或属性的个数,用的方法有属性子集选择、小波变换和主成分分析

属性子集选择是一种维归约方法,其中不相关、弱相关或冗余的属性或维被检测或删除。而后两种方法是原始数据变换或投影到较小的空间。

(1)逐步向前选择 由空属性集作为规约集的起始,迭代确定原属性集中最好的属性并添加到规约集中

(2)逐步向后删除 由整个属性集开始,在每次迭代中删除尚在属性集中最差的属性

(3)逐步向前选择和逐步向后删除的组合 每一步选择一个最好的属性,并在属性中删除一个最差的属性

(4)决策树归纳 由给定的数据构造决策树,不出现在树中的所有属性假定是不相关的,出现在树中的属性形成规约后的属性子集

这些方法的约束条件可以不同,可以使用一个度量阈值决定何时终止属性选择过程

傅里叶变换-理解傅里叶变换,需要理解两个核心概念:

时域:时间和振幅的关系图,横坐标是时间,纵坐标是振幅

频域:频率和振幅的关系图,横坐标是频率,纵坐标是振幅

任何「周期(T)「函数,都可以使用」傅立叶级数展开法」将它们分解为有限或无限个不同「频率」不同「振幅」的正弦函数的叠加。傅里叶级数展开公式如下:

如果把函数看成离散点构成的向量,那么就是这些正弦函数「基向量」的线性组合

2:小波变换

小波变换是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具

将图像进行小波变换并显示

代码如下

import numpy as np
import pywt
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread("lena.jpg")
img = cv.resize(img, (448, 448))
# 将多通道图像变为单通道图像
img = cv.cvtColor(img, cv.COLOR_BGR2GRAY).astype(np.float32)
plt.figure('二维小波一级变换')
coeffs = pywt.dwt2(img, 'haar')
cA, (cH, cV, cD) = coeffs
# 将各个子图进行拼接,最后得到一张图
AH = np.concatenate([cA, cH+255], axis=1)
VD = np.concatenate([cV+255, cD+255], axis=1)
img = np.concatenate([AH, VD], axis=0)
# 显示为灰度图
plt.axis('off')
plt.imshow(img,'gray')
plt.title('result')
plt.show()

3:主成分分析

主成分分析(Principal Component Analysis,PCA)又称Karhunen-Loeve或K-L方法,用于搜索k个最能代表数据的n维正交向量,是最常用的一种降维方法。PCA通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等,在数据压缩消除冗余和数据噪音消除等领域也有广泛的应用

PCA的主要目的是找出数据里最主要的方面代替原始数据

sklearn实现鸢尾花数据降维,将原来4维的数据降维为2维

降维后样本点分布如下

import matplotlib.pyplot as plt                 
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
data = load_iris()
y = data.target
x = data.data
pca = PCA(n_components = 2)     
#加载PCA算法,设置降维后主成分数目为2
reduced_x = pca.fit_transform(x)   #对样本进行降维
print(reduced_x)
#在平面中画出降维后的样本点的分布
red_x,red_y = [],[]
blue_x,blue_y = [],[]
green_x,green_y = [],[]
for i in range(len(reduced_x)):
    if y[i] ==0:
        red_x.append(reduced_x[i][0])
        red_y.append(reduced_x[i][1])
    elif y[i]==1:
        blue_x.append(reduced_x[i][0])
        blue_y.append(reduced_x[i][1])
    else:
        green_x.append(reduced_x[i][0])
        green_y.append(reduced_x[i][1])
plt.scatter(red_x,red_y,c='r',marker='x')
plt.scatter(blue_x,blue_y,c='b',marker='D')
plt.scatter(green_x,green_y,c='g',marker='.')
plt.show()

数量规约

数量归约(Numerosity Reduction)用替代的、较小的数据表示形式换原始数据。这些技术可以是参数或者非参数的。对于参数方法而言,使用模型估计数据,使得一般只需要存放模型参数而不是实际数据(离群点需存放),如回归和对数-线性模型

存放数据规约表示的非参数方法包括: 直方图、聚类、抽样和数据立方体聚类

1. 回归和对数线性模型 回归和对数模型可以用来近似给定的数据

2. 直方图 将直方图中桶的个数由观测值的数量n减少到k个,使数据变成一块一块的呈现

3. 聚类 聚类后用簇中的代表代替实际数据

4. 抽样 通过选取随机样本子集,实现小数据代表大数据的过程。抽样过程包括简单随机抽样、簇抽样和分层抽样

5. 数据立方体聚类 数据立方体是将细粒度的属性聚集到粗粒度的属性

数据压缩(Data Compression)使用变换,一遍得到原始数据的归约或“压缩”表示。如果数据可以在压缩后的数据重构,而不损失信息,则该数据归约被称为无损的。如果是近似重构原数据,称为有损的

基于小波变换的数据压缩是一种非常重要的有损压缩方法

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
3月前
|
供应链 数据可视化 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛B题的解决方案,涵盖了对产品订单数据的深入分析、多种因素对需求量影响的探讨,并建立了数学模型进行未来需求量的预测,同时提供了Python代码实现和结果可视化的方法。
125 3
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
|
3月前
|
SQL 存储 算法
【数据挖掘】恒生金融有限公司2023届秋招数据ETL工程师笔试题解析
恒生科技2022年9月24号数据ETL工程师岗位的笔试题目及答案汇总,包括了SQL选择题、SQL编程题和业务应用SQL编程题,涵盖了数据库基础知识、SQL语句编写以及数据仓库概念等多个方面。
60 2
【数据挖掘】恒生金融有限公司2023届秋招数据ETL工程师笔试题解析
|
3月前
|
数据采集 自然语言处理 数据可视化
基于Python的社交媒体评论数据挖掘,使用LDA主题分析、文本聚类算法、情感分析实现
本文介绍了基于Python的社交媒体评论数据挖掘方法,使用LDA主题分析、文本聚类算法和情感分析技术,对数据进行深入分析和可视化,以揭示文本数据中的潜在主题、模式和情感倾向。
159 0
|
3月前
|
机器学习/深度学习 数据采集 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
本文提供了第十一届泰迪杯数据挖掘挑战赛B题问题二的详细解题步骤,包括时间序列预测模型的建立、多元输入时间预测问题的分析、时间序列预测的建模步骤、改进模型的方法,以及使用Python进行SARIMA模型拟合和预测的具体实现过程。
68 1
|
3月前
|
供应链 算法 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛B题的解决方案,深入分析了产品订单数据,并使用Arimax和Var模型进行了需求预测,旨在为企业供应链管理提供科学依据,论文共23页并包含实现代码。
97 0
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
|
3月前
|
机器学习/深度学习 安全 算法
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 32页和40页论文及实现代码
本文总结了2023年第十一届泰迪杯数据挖掘挑战赛A题的新冠疫情防控数据分析,提供了32页和40页的论文以及实现代码,涉及密接者追踪、疫苗接种影响分析、重点场所管控以及疫情趋势研判等多个方面,运用了机器学习算法和SEIR传染病模型等方法。
60 0
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 32页和40页论文及实现代码
|
3月前
|
机器学习/深度学习 安全 算法
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 建模方案及python代码详解
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛A题的解题思路和Python代码实现,涵盖了新冠疫情防控数据的分析、建模方案以及数据治理的具体工作。
74 0
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 建模方案及python代码详解
|
3月前
|
数据采集 自然语言处理 数据可视化
基于python数据挖掘在淘宝评价方面的应用与分析,技术包括kmeans聚类及情感分析、LDA主题分析
本文探讨了基于Python数据挖掘技术在淘宝评价分析中的应用,涵盖了数据采集、清洗、预处理、评论词频分析、情感分析、聚类分析以及LDA主题建模和可视化,旨在揭示淘宝客户评价中的潜在模式和情感倾向,为商家和消费者提供决策支持。
|
3月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
77 2
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
176 4

热门文章

最新文章