数据挖掘体系介绍

数据挖掘是什么?

简而言之,对数据进行挖掘,从中提取出有效的信息。一般我们会把这种信息通过概念、规则、规律、模式等有组织的方式展示出来,形成所谓的知识。特别是在这个大数据时代,当数据多到一定程度,统计学原理会让一些内在的、不易察觉的规律慢慢放大、展示出来,而数据挖掘,就是希望在这种大数据背景下,以一种更加高效的方式,找到这些潜在的规律。

数据挖掘怎么做?

数据挖掘的基本流程可以总结为以下几个阶段:数据探索、数据预处理、数据建模、模型评估和模型部署应用。

数据探索

  1. 目的:了解和熟悉数据集的基本特征,包括数据的分布、类型和潜在的问题。
  2. 方法:使用统计分析和可视化手段,如散点图、直方图和盒图,以识别数据中的模式、异常值和相关性。
  3. 重点:评估数据的质量和适用性,确定是否需要额外数据。

数据预处理

  1. 目的:清洗和准备数据,以便于建模。
  2. 方法:
  • 数据清洗:处理缺失值、异常值和重复数据。
  • 数据转换:标准化、归一化和离散化。
  • 数据降维:通过主成分分析(PCA)等方法减少数据集的维度。
  1. 重点:提高数据的质量,确保模型训练的准确性和效率。

数据建模

  1. 目的:应用统计或机器学习算法来构建预测或分类模型。
  2. 方法:
  • 选择合适的算法,如决策树、神经网络或支持向量机。
  • 使用训练数据集训练模型。
  1. 重点:寻找最适合数据特征和业务需求的模型。

模型评估

  1. 目的:验证模型的性能和准确性。
  2. 方法:
  • 使用测试数据集对模型进行评估。
  • 应用各种评估指标,如准确率、召回率、F1分数和ROC曲线。
  1. 重点:确保模型具有良好的泛化能力,即在新数据上的表现。

模型部署应用

  1. 目的:将训练好的模型应用于实际问题中。
  2. 方法:
  • 集成模型到生产环境。
  • 实施持续监控和维护,确保模型的稳定性和效能。
  1. 重点:实现模型的实际应用,提供持续的支持和优化。

数据预处理的多种方法

数据预处理是数据挖掘流程中至关重要的环节,其目的在于将原始数据转换成更适合分析的形式,以提高后续建模的效果和准确性。详细介绍数据预处理的各个方面如下:

数据清洗:

  • 处理缺失值:缺失值的处理方法取决于缺失的原因和数据的类型。常见的处理方式包括使用均值、中位数或众数填充、使用模型预测缺失值,或者简单地删除含有缺失值的记录。在一些情况下,缺失本身也可能是一个重要的信号,可以将其编码为一个特定的值。
  • 处理异常值:异常值可能是由于错误的数据输入、测量错误或其他偏差造成的。可以通过箱线图或标准差方法识别异常值。处理方法包括删除异常值、进行数据转换(如对数转换),或用统计方法(如平均值)替换。
  • 消除重复数据:重复数据可能导致分析结果的偏差。通过识别和删除重复记录,可以确保数据的一致性和准确性。

数据转换:

  • 规范化/标准化:这是将数据转换成通用格式的过程,例如将所有的日期格式统一,或者将温度值从摄氏度转换为华氏度。
  • 标准化/归一化:特别在处理涉及多个不同规模和分布的变量的数据时非常重要。Z得分标准化(使数据具有均值为0,标准差为1)和Min-Max归一化(将数据缩放到特定的范围,如0到1)是常见的方法。
  • 离散化:这是将连续变量转换成离散变量的过程。例如,年龄可以被分为不同的年龄段,如“儿童”、“青少年”、“成人”和“老年”。

数据降维:

  • 特征选择:从原始数据中选择最相关和有意义的特征,以减少数据的维度和复杂性。这可以通过相关性分析、信息增益等统计方法来实现。
  • 特征提取:通过数学变换从原始特征中提取新的特征集合。例如,主成分分析(PCA)是一种常用的特征提取方法,它通过正交转换将可能相关的变量转换为一组线性不相关的变量。

数据编码:

  • 独热编码(One-Hot Encoding):这是一种处理类别型数据的方法,其中每个类别值被转换成一个二进制列。
  • 标签编码(Label Encoding):这是将类别标签转换为一个序列的数值的方法,常用于标记具有顺序意义的类别数据。

时间序列数据处理:

对于时间序列数据,预处理可能包括平滑处理、季节性和趋势去除、时间窗口的选择等。这些步骤有助于识别和强化数据中的重要模式和结构。

文本数据处理:

对于文本数据,预处理步骤可能包括词干提取、停用词去除、词袋模型或TF-IDF转换。这些步骤将非结构化的文本数据转换为结构化的数值格式,便于进一步的分析和建模。

特征选择

特征选择的目的是从原始数据中选择出最有用的特征,以提高模型的性能和准确度。信息熵和信息增益是两种常用于特征选择的方法

信息熵(Entropy)

信息熵是衡量数据集纯度或混乱程度的指标,是所有可能事件产生的信息量的期望值。它在决策树算法中用来衡量一个系统的无序程度。信息熵越高,数据的不确定性越大。

公式

设随机变量 X X X n n n 个可能的取值,每个值的概率分别为 p 1 p_1 p1, p 2 p_2 p2, … \dots , p n p_n pn,则 X X X 的信息熵 H ( X ) H(X) H(X) 定义为:
H ( X ) = − ∑ i = 1 n p i log ⁡ 2 p i H(X) = -\sum_{i=1}^{n} p_i \log_2 p_i H(X)=i=1npilog2pi

信息增益(Information Gain)

信息增益衡量使用特征分割数据集前后信息熵的变化。在决策树中,它用来确定哪个特征最适合用于分割数据集。信息增益越大,意味着使用该特征分割得到的纯度提升越大。

公式

设 D 为待分割的数据集,其信息熵为 H ( D ) 。使用特征 A 分割 D 后得到 m 个子集 D 1 , D 2 , … , D m ,特征 A 对于数据集 D 的信息增益 I G ( D , A ) 定义为: 设 D 为待分割的数据集,其信息熵为 H(D) 。使用特征 A 分割 D 后得到 m 个子集D_1, D_2, \ldots, D_m,特征 A 对于数据集 D 的信息增益 IG(D, A) 定义为: D为待分割的数据集,其信息熵为H(D)。使用特征A分割D后得到m个子集D1,D2,,Dm,特征A对于数据集D的信息增益IG(D,A)定义为:

I G ( D , A ) = H ( D ) − ∑ j = 1 m ( ∣ D j ∣ ∣ D ∣ ⋅ H ( D j ) ) IG(D, A) = H(D) - \sum_{j=1}^{m} \left( \frac{|D_j|}{|D|} \cdot H(D_j) \right) IG(D,A)=H(D)j=1m(DDjH(Dj))

其中, ∣ D j ∣ 是子集 D j 中的样本数, ∣ D ∣ 是数据集 D 中的总样本数, H ( D j ) 是子集 D j 的信息熵。 其中, |D_j| 是子集 D_j 中的样本数, |D| 是数据集 D 中的总样本数, H(D_j) 是子集 D_j 的信息熵。 其中,Dj是子集Dj中的样本数,D是数据集D中的总样本数,H(Dj)是子集Dj的信息熵。

通过计算每个特征的信息增益,可以选择增益最大的特征进行数据分割。

属性最优子集(Feature Subset Search)

属性最优子集选择的主要任务是从所有可能的特征组合中找出最佳的一个或几个子集。这涉及到评估每个特征子集的有效性,并选择最能提高模型性能的那个。

递归特征消除(RFE)

递归特征消除(RFE)是一种包装方法,它递归地考虑越来越小的特征集来选择特征。RFE首先训练一个模型并对每个特征评分,然后去除最不重要的特征,再次训练模型,重复这个过程,直到达到指定的特征数量。

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris

# 载入数据
iris = load_iris()
X = iris.data
y = iris.target

# 创建一个逻辑回归分类器
model = LogisticRegression()

# RFE
rfe = RFE(model, n_features_to_select=3)
fit = rfe.fit(X, y)

# 输出结果
print("Num Features: %s" % (fit.n_features_))
print("Selected Features: %s" % (fit.support_))
print("Feature Ranking: %s" % (fit.ranking_))

分类问题与过拟合

  1. 分类问题与过拟合
    数据分为测试集和训练集,先训练集来生成模型,再用测试集来验证模型
    强调了将数据分为测试集和训练集的重要性。这种分割有助于评估模型的泛化能力和避免过拟合。
    避免过拟合的策略:正则化、交叉验证和选择合适的模型复杂度。这些策略可以帮助确保模型不仅在训练数据上表现良好,而且能够有效地泛化到新的数据集。
  2. confusion matrix(混淆矩阵)
    混淆矩阵被提及作为一种有效的评估工具,它可以展示模型在不同类别上的性能,包括真正例、假正例、真反例和假反例。
    在这里插入图片描述

cost-sensitive learning代价敏感学习、lift analysis提升度分析

代价敏感学习和提升度分析是评估和改进模型性能的重要工具。

  1. 代价敏感学习侧重于识别和处理不同类型错误(如假阳性和假阴性)的代价。这意味着在训练模型时,考虑到不同错误的经济或其他成本,以优化模型的整体性能。
  2. 提升度分析则用于衡量模型相比于随机选择或无信息基线的改进程度。通过提升度分析,可以评估模型在实际应用中的效用,特别是在营销和风险评估等领域。
    在这里插入图片描述

评价指标

在数据挖掘和机器学习中,评价指标用于衡量模型的性能。

  1. 准确性(Accuracy):模型预测正确的比例。准确性是最直观的性能指标,适用于类别分布均衡的场景。

    A c c u r a c y = N u m b e r   o f   c o r r e c t   p r e d i c t i o n s T o t a l   n u m b e r   o f   p r e d i c t i o n s Accuracy = \frac{Number\ of\ correct\ predictions}{Total\ number\ of\ predictions} Accuracy=Total number of predictionsNumber of correct predictions

  2. 精确性(Precision):正确预测为正的实例占所有预测为正的实例的比例。精确性在需要最小化误报(比如垃圾邮件检测中误判为垃圾邮件的正常邮件)的场景中非常重要。
    P r e c i s i o n = T r u e   P o s i t i v e s T r u e   P o s i t i v e s + F a l s e   P o s i t i v e s Precision = \frac{True\ Positives}{True\ Positives + False\ Positives} Precision=True Positives+False PositivesTrue Positives

  3. 召回率(Recall):正确预测为正的实例占实际正实例的比例。召回率在需要最小化漏报(如疾病筛查中漏诊病例)的情况下特别重要。
    R e c a l l = T r u e   P o s i t i v e s T r u e   P o s i t i v e s + F a l s e   N e g a t i v e s Recall = \frac{True\ Positives}{True\ Positives + False\ Negatives} Recall=True Positives+False NegativesTrue Positives

  4. F1分数(F1 Score):精确性和召回率的调和平均值,是一个综合考虑精确性和召回率的指标。F1分数在类别不平衡的情况下尤其有用,因为它同时考虑了误报和漏报。
    F 1   S c o r e = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l F1\ Score = 2 \times \frac{Precision \times Recall}{Precision + Recall} F1 Score=2×Precision+RecallPrecision×Recall

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins 执行远程脚本的插件—SSH2 Easy

SSH2 Easy 是什么? SSH2 Easy 是一个 Jenkins 插件,它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件,用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。 以下是 SSH2 Eas…

用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表)

一、模型user对象>和数据库的字段关联 & 自动生成 【其中涉及删除表数据,一切又从零开始】 二、模型user对象>和数据库的字段关联 2.1在model文件夹下,新建 user对象 2.1.1 概念 大家可以想象我们现在的数据是存储在数据库里的&…

HOT 100 最难的题居然是游戏厂的最爱

写在前面 翻看 网易 历年笔面题单的时候,发现一道有意思的题目。 该题评论区,网易 的踪影很少,反而被那些在 4399 笔试中遇到的同学所攻陷: 好嘛,所以这道题还是「游戏厂」的最爱?!&#x1f923…

Ubuntu 常用命令之 fdisk 命令用法介绍

fdisk 是一个用于处理磁盘分区的命令行工具,它在 Linux 系统中广泛使用。fdisk 命令可以创建、删除、更改、复制和显示硬盘分区,以及更改硬盘的分区 ID。 fdisk 命令的常用参数如下 -l:列出所有分区表-b:设置扇区大小,如果不设置,默认为 512 字节-u:改变显示/输入单位-…

亚马逊鲲鹏系统引爆广告点击率提升秘籍

在竞争激烈的电商市场,提高广告点击率成为各大卖家争相追求的目标。而如今,亚马逊鲲鹏系统的强大功能再次为卖家们打开了广告优化的新大门。其中,搜索广告功能更是成为提高关键词排名的利器。本文将详细介绍如何通过亚马逊鲲鹏系统实现点击广…

全球知名的五款JavaScript混淆加密工具详解

​ 现在市场上有很多好用的混淆加密工具,其中一些比较流行且受欢迎的工具包括: 1、UglifyJS(罗马尼亚):UglifyJS是一个非常流行的 JavaScript工具库,它可以压缩、混淆、美化和格式化 JavaScript 代码。使用…

A01、关于jvm执行子系统

1、Class 类文件结构 1.1、Java跨平台的基础 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石,也是语言无关性的基础。Java虚拟机不和包括Java在内的任何语言绑定,它只与 “…

新三板炒股开户需要满足哪些条件?交易规则有哪些?

新三板是全国中小企业股份转让系统,属于场外市场,不能满足在主板上市的中小企业就可以申请在新三板挂牌交易。 一、新三板开通条件 新三板分为2个层级: 创新层:开通前10个交易日日均资产100万及以上,两年的股票交易经…

Jenkins 构建触发器指南

目录 触发远程构建 (例如,使用脚本) 描述 配置步骤 安全令牌 在其他项目构建完成后触发构建 描述 配置步骤 定时触发构建 描述 配置步骤 GitHub钩子触发GITScm轮询 描述 配置步骤 Poll SCM - 轮询版本控制系统 描述 触发远程构建 (例如,使…

基于SSM的双减后初小教育课外学习生活活动平台的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

基于EasyDarwin、ffmpeg实现rtsp推流

目录 1 安装EasyDarwin 2 编译安装ffmpeg 3 启动EasyDarwin 4 ffmepg推流 5 百度网盘备份 某项目中测试时需要用到推流,于是用EasyDarwin、ffmpeg实现了RTSP推流,简单记录下过程, 1 安装EasyDarwin 这个可以去官网下载:Eas…

SearchWP WordPress高级网站内容搜索插件

点击阅读SearchWP WordPress高级网站内容搜索插件原文 SearchWP WordPress高级网站内容搜索插件是一个非常强大的工具,可以显着增强您网站的搜索功能。通过向网站访问者提供高度相关和精确的搜索结果,它可以有效地简化他们的搜索过程,促进发…

快速能访问服务器的文件

1、背景 访问ubuntu上的文件 2、方法 python3 -m http.server 8081 --directory /home/ NAS 共享访问协议 — NFS、SMB、FTP、WebDAV 各有何优势?http://1 Ubuntu 搭建文件服务器(Nginx)

SCA面面观 | SCA关键技术深度解析

数字时代的软件开发普遍遵循敏捷实践,发布和部署周期都很短,开发团队非常依赖开源来加速创新迭代速度。因此,对团队项目中包含的每个开源组件进行跟踪非常重要,可以避免法律风险,保持强大的安全态势。 在DevSecOps环境…

[c]用指针进行四个数排序

#include<stdio.h> void swap(int*p1,int*p2)//定义函数&#xff0c;实现两个数值交换 {int temp;temp*p1;*p1*p2;*p2temp; } void psort( int *pa, int *pb,int *pc,int *pd) {int i1;for(i1;i<3;i)//对四个数排序&#xff0c;至少3次循环&#xff0c;交换过后是升序…

Observability:客户为什么选择 Elastic 做日志?

作者&#xff1a;Ty Bekiares Elastic 正在改变日志体验以满足现代工作流程的需求。 在没有其他可观察信号的情况下&#xff0c;通常基础设施中的所有内容&#xff08;硬件、软件和服务&#xff09;都会发出日志行。 然而&#xff0c;日志通常是根据开发人员的想法构建的&…

大模型互相“薅羊毛”背后,行业基本操作,规范化势在必行

最近&#xff0c;字节跳动被曝调用 OpenAI API 接口训练大模型的争议&#xff0c;以及谷歌大模型 Gemini 被曝使用百度文心一言进行中文语料训练等事件&#xff0c;在行业里引发了不小的关注和讨论。 不明真相的网友们一边热情吃瓜&#xff0c;一边也在感叹 AI 大厂之间互相“…

简单易懂!Pytorch安装教程(超详细)

在正式开始学习Pytorch之前&#xff0c;安装Pytorch同样是重要的一个环节。我将安装Pytorch的主要过程以及遇到的一些问题写在下面&#xff0c;希望能对各位有所帮助。 一、系统与环境说明 在开始用Pytorch进行深度学习之前&#xff0c;要先准备好基本的软硬件环境。下面我分…

深入理解网络 I/O:FileOutputStream、BufferFileOutputStream、ByteBuffer

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

怎么选择高压放大器(高压放大器选型指南)

在许多科学、工程和实验应用中&#xff0c;需要对高压信号进行放大&#xff0c;以便进行测量、激励或其他各种目的。选择适当的高压放大器对于系统性能至关重要。下面将带来高压放大器选型指南的介绍&#xff0c;帮助工程师们在众多选项中做出明智的选择。 1.确定应用需求 首先…