数据挖掘全流程解析

news2024/11/16 13:26:51

数据挖掘全流程解析

数据指标选择

在这一阶段,使用直方图和柱状图的方式对数据进行分析,观察什么数据属性对于因变量会产生更加明显的结果。

如何绘制直方图和条形统计图

数据清洗

观察数据是否存在数据缺失或者离群点的情况。

数据异常的两种情况 :

1、不完整(缺少属性值)

2、含有噪音数据(错误或者离群)

缺失数据的处理方法:

1、忽略元组(当每个属性的缺失值比例比较大时,效果非常差,直接删除处理)

2、手动填写缺失值(工作量会比较大)

3、自动填写(使用属性的缺失值进行填充,仅对于连续性数值类型的数值适用),假如数据是离散标签类型数据,则使用相应的众数进行填充。

噪音数据的处理方法(使用3sigma原则或者箱线图发现离群点,再进行删除操作):

1、正态分布的3sigma原则

2、箱线图进行监测,发现离群数据,进一步删除离群点(箱线图又称为五分位图)其中含有离群点、最大值、最小值、四分之一位数、四分之三位数、中位数。

 

 上述图中的最小值和最大值不一定会指的是数据中的真正的最小值和最大值,因为数据中真正的最小值和最大值可能是离群点。怎样求最小值和最大值捏?使用下面公式进行判断:

我们计四分之一位数为Q1,四分之三位数为Q3。

首先计算四分之一极差:

四分之一极差 IQR=Q3-Q1

最大值=Q3+1.5*极差

最小值=Q1-1.5*极差

 离群点:通常情况下的一个值高于1.5倍的极差或者低于1.5倍的极差。.

使用下面代码即可绘制箱线图

import pandas as pd
import numpy as np
import matplotlib.pyplot as pl
from sklearn.impute import Simplelmputer
data url = "train.csv"
df= pd.read_csv(data_url)
imp = SimpleImputer(missing_values = np.nan, strategy = 'mean')
imp.fit(df.iloc[:,5:6))
pl.boxplot(imp.transform(df.iloc[:,5:6])
pl.xlabel('data')
pl.show()

 

 

数据转换

数据中既有字符串也有数值、且数值量纲不统一。

需要统一化:字符数值统一化

需要规范化:统一量纲

离散数据特征的二进制编码

对于标称类(无序)离散数据连续化特征构造通常采用二进制编码方法

对于序数类离散数据连续化特征构造可以直接使用[0,m-1]的整数

数据规范化

最小最大规范化:

z-分数规范化:

小数定标:移动属性A的小数点位置(移动位数依赖于属性A的最大值)v'=v/10^j    , j为使Max(|v'|)<1的最小整数

二进制编码方式

(1)代码实现sklearn中的OneHotEncoder(独热编码)->二进制中只允许一位为1

import pandas as pd
from sklearn import preprocessing
data_url = "train.csv"
df= pd.read_esv(data_url)
X = df.iloc[:,4:5]
enc = preprocessing.OneHotEncoder()
y = enc.fit_transform(X).toarray()
print(y)

 

上述代码是将序数类型的数据编码成[0,m-1]范围内的整数

 哑编码(允许多个位为一)

哑编码需要更少的二进制编码,独热编码需要更多的二进制编码(因为独热编码只允许一个二进制为1,所以没有哑编码的表现力那么强,需要更多的二进制编码)。

import pandas as pd
data_url = "train.csv"
df = pd.read_csv(data_url)
X = df.iloc[:,11:12]
y = pd.get_dummies(X,drop_first=True)
print(y)

drop_first=True  为哑编码

drop_first=False 为独热编码

上面的代码既可以做独热编码也可以做哑编码

两种规范化函数

最小最大规范化函数

from sklearn import preprocessing
data_url = "train.csv"
df= pd.read_csv(data_url)
imp = Simplelmputer(missing_values = np.nan, strategy = 'mean')
imp.fit(df.iloc[:,5:6])
X = imp.transform(df.iloc[:,5:6])
min_max_scaler = preprocessing.MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(X)
print(X_train_minmax)

当获得的数据属于数值类型数据时,可以在建模之前使用最小最大规范化函数对量纲作一个统一。同时,我们也可以使用下面的方法进行量纲的统一。

z得分规范化 

import pandas as pd
import numpy as np
from sklearn.impute import Simplelmputer
from sklearn import preprocessing
data_url = "train.csv"
df= pd.read_csv(data_url)
imp = Simplelmputer(missing_values = np.nan, strategy = 'mean')
imp.fit(df.iloc[:,5:6])
X = imp.transform(df.iloc[:,5:6])
scaler = preprocessing.scale(X)
print(scaler)

数据降维

散点图分析(如何绘制散点图)

用来显示两组数据的相关性分布

 

PCA(主成分分析)

直观理解(坐标轴的旋转)

 在普通的XY轴坐标系,我们对每个点求方差,会发现方差比较大,也就意味着在X、Y轴上的信息量都比较大。因此不管舍弃哪一维都会损失数据的信息量。

通过PCA旋转,我们可以看到下面的图片,在长轴上数据的方差依然非常大,但是在短轴上方差非常小。方差小说明信息量就比较小。在这时,假如我们保留长轴数据,去掉短轴数据,对数据量的丢失也不会出现很明显的现象。

总的来说,PCA分析法就是通过坐标轴的旋转,将每个坐标轴信息量比较大的数据,经过旋转,使得在长轴上的信息量比较大。短轴上的信息量比较小。(实现了一种线性变换)

最终得到的结果形如

Z1=0.78*x1+0.01*x2+0.56*x3+0.067*x4

Z2=0.086*x1+0.76*x2+0.45*x3+0.97*x4

上面的主成分Z1、Z2分别由原来的四维数据(四种变量)降维得到。我们可以看到对于上面的二维数据我们可以看出来每种主成分中对应的变量的权值系数的不同。

权值系数的求解过程(了解即可):
对数据的相关矩阵求特征值特征向量,最后得到相应的权值

from sklearn.decomposition import PCA
import pandas as pd
data_url = "iris_train.csv"
df= pd.read_csv(data_url)
X = df.iloc[:,1:5]
y=df.iloc[:,5]
pca = PCA(n_components=4)
pca.fit(X)
print(pca.explained_variance_ratio_)

绘制相关性矩阵图片(热力图)

使用热力图可以对相关性进行更清晰的描述和直观理解

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
train csv ='trainOX.csv'
train data = pdread csv(train_csv)
train data.drop(['ID','date','hour'],axis=1,inplace=True)
corrmat = train_data.corr()
f;ax = plt.subplots(figsize=(12,8))
sns.heatmap(corrmat, vmax=0.8, square=True)
plt.show()

 

 准确率评价

混淆矩阵

对于准确率的评价可以使用混淆矩阵的方法进行评估

 

 上述公式是准确率的计算公式

对应的左侧对应一列为样本中数据的真实类别。上边一行对应的是样本中数据的预测数据。

a对应的又称为真阳例(True Positive)、b对应的又称为假阴例(False Negative)、c对应的又称为假阳例(False Negative)、d对应的为真阴例(True Negative)。

对于各个类别的相关解释:

真阳例:指的是实际数据与预测数据结果相同的情况,数据本身为正类,我们把它预测为正类。(比如一部分用户是生病的,我们将其也预测为生病的,这样的用户数目即为真阳例)

假阴例:一个用户是生病的,但是通过模型预测的结果是没有生病的。

假阳例:本身是一个没有生病的客户,但是通过模型进行预测的结果为一个生病的客户,故为假阳例。

真阴例:客户没有生病,使用模型进行预测也没有生病。

显而易见上述混淆矩阵中,TP与TN是预测正确的(本身是正确的和本身不是正确的都预测准确了)。

对于数据检验部分,我们往往会将数据七三分为训练集和测试集两部分。

除此之外,我们往往也会使用K折交叉验证的方法对数据进行相关的验证。

K折交叉验证

在数据检验时,使用数据集中的倒数第k份数据进行检验,例如,第一次,使用倒数第1份数据进行检验;第二次检验,使用倒数第2份数据进行检验;第三次,使用倒数第3份数据进行检验....最多进行十折交叉验证。

知识点补充:

K-Means算法

优点

  1. 聚类时间快

  2. 当结果簇是密集的,而簇与簇之间区别明显时,效果较好

  3. 相对可扩展和有效,能对大数据集进行高效划分

缺点

  1. 用户必须事先指定聚类簇的个数

  2. 常常终止于局部最优

  3. 只适用于数值属性聚类(计算均值有意义)

  4. 对噪声和异常数据也很敏感

  5. 不同的初始值,结果可能不同

  6. 不适合发现非凸面形状的簇

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

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

相关文章

每日后端面试5题 第三天

1. 线程有哪几种状态以及各种状态之间的转换&#xff1f;(必会) 看图&#xff1a; 图片来自 线程状态转换图及其5种状态切换_小曹的blog的博客-CSDN博客 图片来自 总算把线程六种状态的转换说清楚了&#xff01; - 知乎 线程一共有4种状态&#xff0c;分别是&#xff1a; 1.…

js手写贪吃蛇游戏

前端手写贪吃蛇游戏 贪吃蛇游戏 场景 使用了js 和 html /css 就可以完成 一个贪吃蛇小游戏 技术分析 主要用到的几个技术点&#xff1a; clientWidth &#xff1a;元素的宽度&#xff0c;包含内边距clientHeight &#xff1a;元素的高度&#xff0c;包含内边距setInterval&am…

【论文笔记】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

原文链接&#xff1a;https://arxiv.org/abs/2301.01283 1. 引言 受到DETR启发&#xff0c;本文提出鲁棒的端到端多模态3D目标检测方法CMT&#xff08;跨模态Transformer&#xff09;。首先使用坐标编码模块&#xff08;CEM&#xff09;&#xff0c;通过将3D点集隐式地编码为多…

面试笔记:Android 架构岗,一次4小时4面的体验

作者&#xff1a;橘子树 此次面试一共4面4小时&#xff0c;中间只有几分钟间隔。对持续的面试状态考验还是蛮大的。 关于面试的心态&#xff0c;保持悲观的乐观主义心态比较好。面前做面试准备时保持悲观&#xff0c;尽可能的做足准备。面后积极做复盘&#xff0c;乐观的接受最…

[分享]STM32G070 串口 乱码 解决方法

硬件 NUCLEO-G070RB 工具 cubemx 解决方法 7bit 改为 8bit printf 配置方法 添加头文件 #include <stdio.h> 添加重定向代码 #ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endi…

安装程序报错问题解决 -2147287037 <<30005>> 2203

本文如下报错适用&#xff1a; 一、The installer has encountered an unexpected error installing this package. Thismay indicate a problem with this package. The error code is 2203 二、错误 2203.数据库&#xff1a; C:\WINDOWS\Installer\inprogressinstallinfo.i…

别找了,这7个AI绘画图软件够你用了!

AI 绘图工具最妙的是也让人人都能成为朋友圈里的“画家”&#xff0c;如果你也想要拥有一个趁手的 AI 绘画工具&#xff0c;那么就跟随本文一起来看看吧&#xff01;本文精选了7全球顶尖的AI绘图工具给大家&#xff0c;包括&#xff1a;即时灵感、Jasper Art、Images.ai、Night…

休闲卤味强势崛起:卤味零食成为新一代热门美食

随着人们生活水平的提高和消费观念的转变&#xff0c;休闲卤味逐渐成为了人们日常生活中的热门美食。据最新数据显示&#xff0c;2022年&#xff0c;我国卤味市场销售额达到了约2000亿元&#xff0c;预计到2025年将突破3000亿元大关。其中&#xff0c;休闲卤味以每年10%的速度持…

趋势洞察:中国企业高质量出海白皮书!

目前&#xff0c;我国仍处于战略发展机遇期的大背景&#xff0c; 面对全球经济放缓、不确定性增强的常态&#xff0c;国内高端市场的竞争也日趋激烈&#xff0c;对于寻求高质量发展的中国企业&#xff0c; 出海将成为重要的增长点。 今天运营坛为大家整理了一份《中国企业高质量…

弹簧阻尼系统前馈PID位置控制(PLC完整闭环仿真SCL+ST代码)

弹簧阻尼系统的前馈PID控制请参看下面文章链接: 前馈控制之如何计算前馈量(质量弹簧阻尼系统)_前馈控制量_RXXW_Dor的博客-CSDN博客带前馈控制的博途PID程序请参看下面的文章链接:首先我们看下什么是弹簧阻尼系统。1、质量弹簧阻尼模型。_前馈控制量https://rxxw-control.bl…

使用Spring五大注解来更加简单的存储Bean对象

在使用Spring框架的时候我们如果使用这种方式来存储bean对象的话未免有点太麻烦了 <bean id"xxx" class"xxx"> </bean> 为了简化存储Bean对象的操作&#xff0c;我们可以使用五大类注解来进行存储Bean对象 我们首先要在配置文件配置扫描路径…

IoTDB在springboot2中的(二) 查询

上一章我们处理的基本的构建接入&#xff0c;以及插入的处理&#xff0c;那么接下来我们进行查询的操作处理。 我们继续在IoTDBSessionConfig工具类中加入查询的方法处理 /*** description: 根据SQL查询最新一条数据* author:zgy* param sql sql查询语句&#xff0c;count查询…

JVM 类加载和垃圾回收

JVM 1. 类加载1.1 类加载过程1.2 双亲委派模型 2. 垃圾回收机制2.1 死亡对象的判断算法2.2 垃圾回收算法 1. 类加载 1.1 类加载过程 对应一个类来说, 它的生命周期是这样的: 其中前 5 步是固定的顺序并且也是类加载的过程&#xff0c;其中中间的 3 步我们都属于连接&#xf…

【Java-16】动态代理的使用方法及原理实现

代理模式&#xff1a;静态代理 目标 了解静态代理模式实现 路径 静态代理概述静态代理案例 静态代理概述 静态代理&#xff1a; 是由程序员创建或工具生成代理类的源码&#xff0c;再编译成为字节码 &#xff08;字节码文件在没有运行java之前就存在了&#xff09; 在编译…

Linux——常用命令(2)

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 前期回顾 【新星计划Linux】——常用命令&#xff08;1&#xff09; 目录 一.其它常用命…

vue或uniapp使用pdf.js预览

一、先下载稳定版的pdf.js&#xff0c;可以去官网下载 官网下载地址 或 pdf.js包下载(已配置好&#xff0c;无需修改) 二、下载好的pdf.js文件放在public下静态文件里&#xff0c; uniapp是放在 static下静态文件里 三、使用方式 1. vue项目 注意路径 :src"static/pd…

在矩池云使用ChatGLM-6B ChatGLM2-6B

ChatGLM-6B 和 ChatGLM2-6B都是基于 General Language Model (GLM) 架构的对话语言模型&#xff0c;是清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同发布的语言模型。模型有 62 亿参数&#xff0c;一经发布便受到了开源社区的欢迎&#xff0c;在中文语义理解和对话生成上有…

语音信号的A律压缩和u律压缩matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 A律压缩算法 4.2 μ律压缩算法 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(…

DanceFight VoxEdit 大赛

准备好让自己的创造力更上一层楼了吗&#xff1f;别再犹豫了&#xff0c;The Sandbox 将为你们带来一场激动人心的挑战&#xff0c;让你们的 VoxEdit 技能和舞蹈动作激情四射&#xff01;准备好参加终极数字盛会——DanceFight VoxEdit 大赛&#xff01;&#x1f57a;&#x1…

物理层扩展以太网

扩展站点与集线器之间的距离&#xff1a;   在10BASE-T星型以太网中&#xff0c;可使用光纤和一对光纤调制解调器来扩展站点与集线器之间的距离。   为站点和集线器各增加一个用于电信号和光信息号转换的光纤调制解调器&#xff0c;以及他们之间的通信光纤。 扩展共享式以太…