数据挖掘(Data Mining)扫盲笔记

知识框架来源:人工智能之数据挖掘
其他补充来源:拿下Offer-数据分析师求职面试指南数据分析实战45讲


概述篇

基础认知

  • 广义:
    一类深层次的数据分析方法

  • 目的:
    自动抽取隐含的、以前未知的、具有潜在应用价值的模式或规则等有用知识

  • 涉及学科
    使用人工智能、机器学习、统计学和数据库等交叉学科领域方法

  • 对象
    大规模、不完全、有噪声、模糊随机的数据集。

  • 核心过程:
    (1) 数据清理:消除噪声和删除不一致数据。
    (2) 数据集成:将多种数据源组合在数据仓库
    (3) 数据选择:定义问题,从数据库中提取与分析任务相关的数据。
    (4) 数据变换:分析整理数据。通过汇总或聚集操作把数据变换、统一成适合挖掘的形式。
    (5) 数据挖掘:使用智能方法提取数据模式。
    (6) 模式评估:根据某种度量,识别代表知识的模式。
    (7) 知识表示:使用可视化与知识表示技术,向用户提供挖掘的知识。

  • 挖掘的核心
    建模:另利用用模型学习已知数据集中的变量特征,并通过一系列方法提高模型的学习能力,最终对一些结果位置的数据及输出相映的结果。

  • 数据集

    • 训练集
      训练模型 ,用于模型训练拟合的样本,占总体样本的百分之七十到百分之八十
    • 验证集
      模型调试 ,结果已知不参与模型训练拟合,用于验证训练后模型的拟合效果。对模型中的超参数进行选择。在实际工作中
    • 测试集
      验证结果,利用模型输出结果的数据集模型上线后,输出测试集的结果与最终结果进行对比。测试及后续可以转换为训练集或验证及实现模型的循环迭代。
  • 模型评估

    • 过拟合Overfitting
      样本量相对于模型复杂度较小,样本噪声导致复杂模型的泛化能力较差 。训练集只是全部数据的抽样,而且存在噪声,该噪音不具有通用性并不能体现全部数据的特点,当模型过于复杂时,会太依赖于训练集,也会大量学习训练其中的噪音,并当成所有数据的特点。结果过于精准,容错率就会比较低,导致分化能力变差。
      泛化能力是指:分类器是通过训练集抽象出来的分类能力。模型的“泛化能力”差,模型的训练结果过分精准,以至于存在“死板”的情况,在实际应用的过程中,会导致分类错误。
    • 欠拟合
      表明模型过于简单,没有很好的拟合训练集变量之间的特征。需要进一步提高复杂度。
  • 参数

    • 参数
      通过模型对训练集的拟合获得,比如线性回归模型中斜率和截距。
    • 超参数
      无法通过模型获得在模型训练前仍为给定的超参数,只能通过验证及进行验证并最终决定:决策树的深度、随机森林模型中树的数量的。
  • 参数调整

    • 工作量大 :
      模型调整参数,是一个非常耗时的工作,需要综合考虑模型效果,实现复杂度以及工作量。
    • 复杂度
      模型属性数相对于训练集数,复杂的模型未必能带来好的结果,也可能使得模型出现过拟合现象。导致误差增加
    • 平衡
      需要平衡过拟合和欠拟合,降低整体的误差。
  • 误差

    • 偏差bias
      模型的精准度。偏差高代表着:模型存在欠拟合的现象反应模型在训练集上。期望输出于真实输出之间的差距。
    • 方差variance
      模型的稳定性。 方差高代表着模型过拟合。反映了模型在不同情况下得到的结果与真实结果之间的误差。
  • 算法的强弱
    学习器的强弱。强学习器和弱学仪器是一个相对的概念,没有很明确的划分。体现在学习区对复杂场景的处理能力上。相对于决策树模型,随机森林是强学习器。但和其他更加复杂的模型相比,他就是弱学习器。

  • 模型集成

    • 将多个弱学习器(基模型)构造成一个强学习器。
      能够实现更好的效果的原因:模型的误差包括偏差和方差,集成能够降低方差。假设决策树模型有相同的偏差和方差:将通过通过多个决策树模型得到的结果进行平均或投票,可以保证随机森林的偏差于单个决策树模型的偏差基本相同,但是由于各个决策树模型之间的相互独立,对结果进行平均或加强之后,能够大幅度减小随机森林模型的方差,最终将误差减小。
    • 类型
      • 同质集成模型:类似于随机森林将,多个决策树模型 、相同种类模型集成
      • 异质集成模型:将不同种类的模型进行集成
    • 集成方法
      • Bagging 随机对样本进行随机采样,得到n个样板间。对每一个样本独立训练决策树模型。通过集合策略输出最终结果
      • Boosting 新决策树模型基于旧策树模型的结果,方法
        • AdaBoot :加大此前决策树模型中分类错误数据的权重,使得下一个生成决策树模型能够尽量将这些模型分类训练正确。
        • GBDT:通过计算损失函数梯度下降方向,定位模型的不足而建立新的决策树模型。应用更广泛。以Cart树作为基模型
  • 模型融合
    在模型集成中将各个基模型的结果进行组合,得到最终的结果的过程称为模型融合。

    • 方法
      平均法 :在预测问题中,将各个基模型的结果进行平均作为最终结果。
      投票法 :在分类问题中,选择基模型中预测比较多的类别作为最终结果。
  • 与大数据的关系

    • 大数据包含数据挖掘的各个阶段,即数据收集、预处理、特征选择、模式挖掘、知识表示等
    • 大数据的基础架构又为数据挖掘提供数据处理的硬件设施
    • 最后大数据的迅速发展也使得数据挖掘对象变得更为复杂不仅包括人类社会与物理世界的复杂联系,还愈加明显地呈现出高度动态化。要从大量无序数据中获取真正价值,数据挖掘算法必须满足对真实数据和实时数据的处理能力,这使得很多传统算法不再适用
    • 大数据的 5V 特性
      目前比较公认的定义是麦肯锡全球研究机构(McKinsey Global Institute)也给出的,综合了“现有技术无法处理”和“数据特征定义”,即规模庞大Volume)、种类繁多(Variety)、数据时效高(Velocity)和价值密度低(Value)
  • 发展历程
    在这里插入图片描述

  • 知识图谱
    在这里插入图片描述

  • 研究进展
    近期的主要发展归为两大类:复杂数据挖掘与分布式数据挖掘。

    • 复杂数据包括序列数据、图数据等。
    • 分布式数据挖掘遵循“全局分布、局部集中”的挖掘原则,数据挖掘领域非常有前途的方向。
  • 十大问题与挑战
    1 数据挖掘的统一理论框架的构建(Developing a Unifying Theory of DataMining)
    2 高维数据和高速数据流的挖掘(Scaling Up for High DimensionalData/High Speed Streams)
    3 序列和时序数据的挖掘(Mining Sequence Data and Time Series Data)
    4 复杂数据中复杂知识的挖掘(Mining Complex Knowledge from ComplexData)
    5 网络环境中的数据挖掘(Data Mining in a Network Setting)
    6 分布式数据和多代理数据的挖掘(Distributed Data Mining and MiningMulti-agent Data)
    7生物和环境数据的挖掘(Data Mining for Biological and EnvironmentalProblems)
    8 数据挖掘过程中的相关问题处理(Data-Mining-Process Related Problems)
    9 数据挖掘中数据安全、数据所涉及到的隐私和数据完整性的维护(Security,Privacy and Data Integrity)
    10 非静态、非平衡及成本敏感数据的挖掘(Dealing with Non-static,Unbalanced and Cost-sensitive Data)

挖掘对象

大规模、不完全、有噪声、模糊随机的数据集。可以是任何类型的数据源,包括数据库数据、数据仓库、事物数据,以及文本、多媒体数据、空间数据、时序数据、web 数据、数据流、图或网络数据等。

  • 数据库数据
  • 一种结构化数据,比如关系数据库、图数据库中的数据。
  • 数据仓库(Data Warehouse)
    从多个数据源收集的信息存储库,存放在一致的模式下,并且通常驻留在单个站点上,是决策支持系统和联机分析应用数据源的结构化数据环境。数据仓库通常使用数据立方体(Data Cube)的多维数据结构建模。通过钻取、上卷、切片、切块、旋转等联机分析处理(Online Analytical Processing, OLAP)操作,允许用户在不同汇总级别观察数据。
    在这里插入图片描述
  • 事物数据
    通常表示人类一次活动记录,比如一次购物、一个航班订票等。一个事物数据包含一个唯一的事物标识号,以及一个组成事物的项列表(购买的商品)。从图 2 可以看出,事物数据包含嵌套关系,难以放在关系数据库中,通常存放在表 1 所示的表格式的文件中
    在这里插入图片描述

常见任务:

  1. 数据表征
    是对目标类数据的一般特征或指定特征的总结。对应于用户指定类的数据通常通过数据库查询收集。例如,要研究上一年销售额增长 10%的软件产品的特征,可以通过执行 SQL 查询来收集与此类产品相关的数据。
  2. 异常检测
    数据库可能包含不符合数据一般行为或模型的数据对象,这些数据对象即为异常值。大多数数据挖掘方法将异常值视为噪声或异常但是在诸如欺诈检测等应用中,罕见事件可能比常见的更有价值。异常值数据的分析通常被称为异常值挖掘。
  3. 关联规则学习
    搜索变量之间的关系。例如,一个超市可能会收集顾客购买习惯的资料。运用关联规则学习,超市可以确定哪些产品经常一起买,并利用这些信息促进销售,这种学习也被称为市场购物篮分析。
  4. 聚类
    发现数据的类别与结构。聚类算法基于最大化类内相似性和最小化类间相似性的原则,将对象进行聚类或分组。也就是说,形成对象集群,使得集群内的对象彼此之间具有较高的相似性,但与其他集群中的对象非常不相似。每个集群都可以被视为一类对象,从中可以派生出规则。
  5. 分类
    分类是查找描述和区分数据类别或概念的模型(或函数)的过程,目的是为了能够使用模型来预测未知对象的类别。例如,一个电子邮件程序可能试图将一个电子邮件分类为“合法的”或“垃圾邮件”。
  6. 回归
    试图找到能够以最小误差对该数据建模的函数。回归分析是最常用于数字预测的统计方法,还可以根据现有数据预测趋势。
  7. 演化分析
    描述并建模对象行为随时间变化的规则或趋势。这种分析具有时间序列数据分析、序列或周期性模式匹配以及基于相似性的数据分析的特征

模型分类

  • 监督学习和非监督学习

    • 区别:训练数据中是否有标签,这是二者最根本的区别。监督学习的数据既有特征又有标签,而非监督学习的数据中只有特征而没有标签。
    • 监督学习supervised learning
      让机器自己找到特征和标签之间的联系,在以后面对只有特征而没有标签的数据时可以自己判别出标签,监督学习可以分为两大类:回归(Regression)、分类(Classification) ,二者之间的区别在于回归分析针对的是连续数据,而分类针对的是离散数据。
    问题 模型
    预测问题。 线性回归模型 、时间序列模型 、神经网络
    分类问题 逻辑回归模型 、svm模型 、决策树模型、 随机森林模型 Boosting模型。
    • 非监督学习unsupervised learning
      挖掘数据之间的内在联系,将样本分成若干类。训练数据只有特征没有分类标签,这可能是因为我们不具备先验的知识,或者打标签的成本很高。所以我们需要机器对数据进行聚类分析,然后就可以通过聚类的方式从数据中提取一个特殊的结构。
    问题 模型
    聚类问题 K-means聚类模型、 DBSCAN聚类模型、 E_m聚类模型。
    降维问题 PCA主要成分分析
    • 半监督学习
      半监督学习的训练数据中有一部分是有标签的,另一部分是没有标签的,而没标签的数据量远远大于有标签的数据量。隐藏在半监督学习下的基本规律在于数据的分布必然不是完全随机的,通过一些有标签数据的局部特征,以及更多没标签数据的整体分布,就可以得到可以接受甚至是非常好的分类结果
  • 参数和非参数模型

类别 特征 模型 缺点 优点
参数模型 限定了目标函数的形式 线性回归模型、逻辑回归模型、朴素贝叶斯模型 1.提前对目标函数作出假设。现实问题很难应用某一目标函数,特别是复杂问题很难得到拟合效果好的模型。2.复杂度偏低,容易出现欠拟合现象 1.可解释性强冲 2.学习和训练速度较快 3.数据量小
非参数模型 没有对目标形式进行限定,通过训练自由的从训练数据集中学习任意的函数。 1.svm模型 2.决策树模型3.随机森林模 型 1.计算量大-数据量大2.可解释性弱-么 1.适用于大数据量逻辑复杂的问题。效果好于参数模型,由于不存在错误前提假设,在数据量趋于无穷大的时候,可以无限逼近于真实模型。2.存在超参数选择
半参数模型 固定了隐藏的数目和每一层神经元的个数,属于参数模型。隐层数目和每一层神经元个数在模型中通常是不固定的。 神经网络模型
  • 生成和判别
类别 定义 特征 模型
生成模型 能够学习数据生成机制,得到联合分布p (x,y),特征x和y共同出现的概率,然后求条件概率分布, 数据量需求大,能够很好的估计概率密度。数据充足的情况下,生成模型的收敛速度较快。能够处理隐变量。相对于判别模型生产模型准确率以及适用范围弱 朴素贝叶斯模型、混合高斯模型、隐马尔可夫模型。
判别模型。 学习得到条件概率分布p(y x),在特征x的调情况下标签y出现的概率 计算量小。准确率和适用范围大切。较为常用

问题与挑战

  • 数据挖掘过程中的相关问题处理

大数据的规模大、来源种类多样、价值密度低、增长速度快、准确性低等特征,给数据挖掘过程中每个阶段造成不同的问题挑战

(1) 数据采集和入库:不同类型的数据存储在一个地方、相同数据在不同的数据源中命名形式不一样、不同数据源中的数据性质不同等会给数据采集和存储带来很大挑战。

(2) 数据清洗:定义和确定错误类型,搜索和识别错误,更正错误,记录错误以及修改数据输入程序以减少结构化、非结构化和半结构化数据会带来数据清理方面的挑战。当数据没有存在噪音、不完整、不一致等问题时,数据挖掘和分析过程会提供正确的信息。

(3) 数据分析与挖掘:数据分析与挖掘是大数据的核心挑战。如果在采集、存储、清理、集成、转换等流程中出现任何问题,会导致容易挖掘到无用的数据。如果想在大数据中获取有价值的信息,有必要研究适用于所有类型数据的挖掘技术。

(4) 数据集成与融合:在大数据挖掘中,不同类型的数据模式集成和融合是最大的挑战。例如,集成的数据模式通常是在不同数据源中获取,而不同数据源中的同一对象通常具有不同的名称表示形式。如何正确将指向同一对象的不同数据融合到一起,是数据集成和融合技术的巨大挑战。
  • 数据完整性(Data Integrity)

数据挖掘所使用的数据常常是为其他 用途收集的,原始数据中出现的问题会对下一阶段的分析过程产生重大的影响, 因此在数据清洗阶段需要检验数据完整性。数据对象遗漏一个或多个属性值的 情况在数据挖掘任务中屡见不鲜,例如有的人拒绝透露年龄和体重,这时信息 收集不全的现象变得十分常见。

指数据的准确性和可靠性,用于描述存 储的所有数据值均处于客观真实的状态。

完整性检验5 个基本原则:可溯源、清晰、同步、原始或真实复制、准确

策略,包括删除数据对象或属性、估计遗漏值、在分析时忽略遗漏值、使用默认值、使用属性平均值、使用同类样本平均值、预测最可能的值 等。
  • 传统数据挖掘技术与网络动态数据挖掘

    传统数据挖掘技术主要针对静态数据集、数据仓库问题定义、数据采集、数据预处理、数据清理/集成、数据选择/变换/归约、 数据挖掘、模式评估、解释和应用

    网络动态数据挖掘需要面对不断变化的网络环境及各种动态变化的实时数据之外, 还需要对整个数据挖掘过程、数据集与关联规则集的更新过程等进行实时分析 和处理。

  • 非平衡样本数据挖掘
    在不平衡数据中,人们将拥有较多实例的那一类称为多数类(有时也称为 负样本),将拥有相对较少实例的那一类称为少数类(有时也称为正样本)。现有分类算法(如决策树和神经网络等)大多假定每个样本的误分类具有同样的代价而致力于提高分类器的泛化精度,分类的结果偏向于大类别样本,即大类别样本的分类精度高于小类别样本。但对很多现实的应用,如医疗诊断、信用卡欺诈检测、网络入侵、故障识别等,不同类别的样本数相差较大,不同样本的误分类代价通常不相等,仅凭全局精度评价分类器的性能优劣是不够的。此时需要引入代价敏感数据挖掘技术(Cost Sensitive Data Mining, CSDM)

十大经典算法

  • C4.5
  • KNN(K-Nearest Neighbor)
  • K-Means
  • CART(Classification and Regression Trees
  • SVM(Support Vector Machine Apriori )
  • EM(Expectation Maximization
  • Page Rank.
  • AdaBoost.
  • 34
    点赞
  • 260
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python数据挖掘学习笔记主要包括以下几个方面的内容:Python基础知识、Python爬虫技术、Python数据分析与数据挖掘。其中,Python基础知识部分介绍了Python编程语言的基本语法、数据类型、流程控制等内容,为数据挖掘的学习打下了基础。Python爬虫技术部分介绍了如何使用Python编写爬虫程序,从网页中获取所需数据。Python数据分析与数据挖掘部分则介绍了使用Python进行数据分析和数据挖掘的相关技术和工具。 在Python数据挖掘中,还涉及到一些扩展库的使用,可以使用pip或apt-get进行安装,例如numpy库可以使用命令"sudo pip install numpy"或"sudo apt-get install python-numpy"进行安装。 另外,Matplotlib是Python中最常用的绘图库之一,主要用于绘制二维图形,也可以绘制简单的三维图形。下面是一个使用Matplotlib进行简单绘图的示例代码: ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 1000) y = np.sin(x) z = np.cos(x ** 2) plt.figure(figsize=(8, 4)) plt.plot(x, y, label='$\sin x$', color='red', linewidth=2) plt.plot(x, z, 'b--', label='$\cos x^2$') plt.xlabel('Time(s)') plt.ylabel('Volt') plt.title('A Simple Example') plt.ylim(0, 2.2) plt.legend() plt.show() ``` 这段代码使用了numpy库生成了一组x轴的数据,然后分别计算了对应的y轴和z轴的数值。接下来使用Matplotlib进行绘图,其中plt.plot函数用于绘制曲线,plt.xlabel和plt.ylabel分别设置x轴和y轴的标签,plt.title设置图的标题,plt.ylim设置y轴的范围,plt.legend用于显示图例,plt.show用于显示图形。 通过学习这些内容,你可以掌握Python数据挖掘的基本知识和常用技术,为进一步的学习和实践打下坚实的基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python数据挖掘学习笔记](https://blog.csdn.net/yinghuoai/article/details/88392141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python数据挖掘笔记](https://blog.csdn.net/djm82755/article/details/101452842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值