数据挖掘

一、《集体智慧编程》之机器学习&数据挖掘框架认识

廉价感情. 提交于 2019-12-03 21:03:02
前言:新开通的博客,用于记录一些学习方面的东西,算是一个学习笔记吧。本系列按照《集体智慧编程》一书的框架进行。老实说,《集体》在理论上并不算是很好的参考书,但是该书是以一个个具体场景应用为驱动的,个人认为很适合用于机器学习相关的入门教材,起码很对我的胃口。 “假如你训练了一只狗,若干年后,如果它忽然有一天能帮你擦鞋洗衣服,那么这就是数据挖掘;要是忽然有一天,你发现狗化装成一个老太婆消失了,那么这就是机器学习。” ——杨强,香港科技大学 机器学习说起来应该是人工智能领域与算法领域的一个子领域。它允许计算机不断的进行学习。大多数情况下,这相当于将一组数据传递给算法,并由算法推断出这些数据属性相关的信息——借助这些信息,算法能够预测出未来有可能出现的其他数据。简单点来说就是从数据中自动分析获得规律,并利用规律对未知数据进行预测。 数据挖掘在某方面可以说算是机器学习的一种应用。机器学习算法其它的方面的应用有计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺骗、证券市场分析、DNA序列测序、语音和手写字识别、战略游戏和机器人运用等。 1、机器学习&数据挖掘的数学基础 机器学习是一个多领域交叉的学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等。具体来说,机器学习与数据挖掘学习需要用到的数学核心基础有以下几个方面: ①微积分 (没办法,这个是数学分析的基础)

用Python的Numpy求解线性方程组

北慕城南 提交于 2019-12-03 17:32:56
原文链接: http://tecdat.cn/?p=8445 在本文中,您将看到如何使用Python的Numpy库解决线性方程组。 什么是线性方程组? 维基百科将 线性方程组 定义为: 在数学中,线性方程组(或线性系统)是两个或多个涉及同一组变量的线性方程的集合。 解决线性方程组的最终目标是找到未知变量的值。这是带有两个未知变量的线性方程组的示例, x 并且 y : 等式1: 4x + 3y = 20 -5x + 9y = 26 为了解决上述线性方程组,我们需要找到 x 和 y 变量的值。解决此类系统的方法有多种,例如消除变量,克莱默规则,行缩减技术和矩阵解决方案。在本文中,我们将介绍矩阵解决方案。 在矩阵解中,要求解的线性方程组以矩阵形式表示 AX = B 。例如,我们可以用矩阵形式表示 等式1 ,如下所示: A = [[ 4 3] [-5 9]] X = [[x] [y]] B = [[20] [26]] 要查找的值 x 和 y 变量 方程1 ,我们需要找到在矩阵中的值 X 。为此,我们可以采用矩阵逆的点积 A 和矩阵 B ,如下所示: X = inverse(A).B 用numpy求解线性方程组 要求解线性方程组,我们需要执行两个操作:矩阵求逆和矩阵点积。Python的Numpy库支持这两种操作。如果尚未安装Numpy库,则可以使用以下 pip 命令: $ pip

数据分析系列:数据挖掘之客户细分

最后都变了- 提交于 2019-12-03 16:36:11
数据挖掘(金融) ​ 数据挖掘是指从大量的不完全,有噪音,模糊的,随机的数据中提取出隐含在其中的有用的信息和知识的过程。金融行业的分析方案旨在帮助银行和保险也客户进行交叉销售来增加销售收入,对客户进行细分和细致的行为描述来有效的挽回有价值的客户,提高市场活动的相应效果,降低市场推广成本,达到有效增加客户数量的母的等。 客户细分 ​ 使客户收益最大化的同时最大化的降低风险的一种方法 ​ 客户细分是指按照一定的标准将企业的现有客户划分为不同的客户群。这是客户关系管理 的核心之一。 ​ 主要是指企业在明确的战略,业务,市场的条件下,根据客户的价值,需求和偏好的综合因素对客户进行分类,分属于统一客户群的消费者具备一定程度上的相似性,细分的依据主要是: 客户需求不同。影响消费者购买决策因素的差异后决定了消费者的需求,导致了不同的消费行为。 消费档次假说。消费者收入水平的提高,消费量会随着增加,但是这个增加是称区间台阶式的,一旦消费者达到莫衷消费层次后,消费的趋势将遍的非常平缓。 企业的资源是有限的,必须有选择地分配资源。为了充分发挥资源的最大效用,企业必须区分不同的客户群,对不同的客户制定不同的服务策略,集中资源服务好重点客户。 稳定性。有效的客户细分还必须具有相对的稳定性,足以实现在此基础上进行的实际应用,如果变化太快,应用方案还未来得及实施,群体就已面目全非,这样的细分方法就显得毫无意义

Linux下Mahout安装遇到的问题

ぐ巨炮叔叔 提交于 2019-12-03 16:22:13
1. Mahout 0.5版本有taste-web,以后版本就没有了。 2. 使用JDK1.7编译Mahout(0.5—0.7)会出现bug,编译不过去。 问题貌似是关于接口的方法没实现的,但是这只是与JDK自带的那个接口重名而已。(太久了,忘了什么错了。。。) 解决这个问题需要下载补丁(https://issues.apache.org/jira/browse/MAHOUT-782),在linux下执行patch 源文件 补丁文件即可。 来源: oschina 链接: https://my.oschina.net/u/268089/blog/138817

Jike_Time

≯℡__Kan透↙ 提交于 2019-12-03 13:27:23
数据分析全景图 1. 数据采集 。它是我们的原材料,也是最“接地气”的部分,因为任何分析都要有数据 源。 2. 数据挖掘。 它可以说是最“高大上”的部分,也是整个商业价值所在。之所以要进行数 据分析,就是要找到其中的规律,来指导我们的业务。 因此数据挖掘的核心是挖掘数据 的商业价值,也就是我们所谈的商业智能 BI。 3. 数据可视化。 它可以说是数据领域中万金油的技能,可以让我们直观地了解到数据分析 的结果。 数据采集: 数据挖掘: 数据可视化: 学习数据分析就是从“思 维”到“工具”再到“实践”的一个过程。今天我会从更多的角度来和你分享我的学习经 验,我们可以把今天的内容叫作“修炼指南”。 借用傅盛的话来说,人与人最大的差别在于“认知”,所谓成长就是认知的升级。 很多人存在对“认知“的误解,认为认知不就是概念么?那么你有没有想过,针对同一个 概念,为什么不同的人掌握的程度是不一样的呢? 我们只有把 知识转化为自己的语言,它才真正变成了我们自己的东西 。这个转换的过程, 就是认知的过程。 先思考模型算法---选择工具--- 画图软件SketchBook 数据挖掘知识清单 来源: https://www.cnblogs.com/foremostxl/p/11797003.html

python数据挖掘使用工具

匆匆过客 提交于 2019-12-03 11:36:16
Python作为现在最为流行的编程语言之一,主要是因为它除了有优雅、明确、简单的特点之外,还有非常强大的第三方库。这里主要是对数据挖掘方向的相关库进行了总结整理。 包括科学计算库、数据处理库、机器学习库、绘图库、深度学习库的大纲整理。 来源: https://www.cnblogs.com/newbornbaby/p/11794208.html

数据挖掘

折月煮酒 提交于 2019-12-03 11:32:53
数据挖掘其实是一种深层次的数据分析方法。数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。 应用的技术包括:数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面。 数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在 没有明确假设的前提下 去挖掘信息、发现知识。数据挖掘所得到的信息应具有先知,有效和可实用三个特征。 数据挖掘的目标是 从数据库中发现隐含的、有意义的知识,主要有以下五类功能。 1.自动预测趋势和行为数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。 2.关联分析数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。 3.聚类数据库中的记录可被划分为一系列有意义的子集,即聚类。 4.概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。 5.偏差检测数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。 数据挖掘技术包括 关联分析、序列分析、分类、预测、聚类分析及时间序列分析 等。 1

数据挖掘-决策树

匿名 (未验证) 提交于 2019-12-03 00:41:02
1.什么是决策树: 非叶子结点代表测试的条件。 分支代表测试的结果 2.如何构建决策树: ′1.信息熵(informationentropy):是度量样本集合纯度最常用的一种指标。 2.基尼系数(gini):是度量样本集合不确定性指标。(基尼指数与熵可近似看做是统一概念,都是越大,确定性越差) 基尼指数和信息熵的图像:(当熵和基尼指数为0.5时,即确定某件事的概率为50%,是最不能肯定的事件。如:小明后天再路上捡钱的概率为50%,很不确定。如果概率为30%,代表很可能捡不到钱;如果概率为60%,则代表更可能捡到钱。) 一个小栗子: 1.系统信息熵:(是,否为好瓜的两个属性) 2.每个特征的信息熵:(以色泽为例)(先计算出3 个属性的信息熵,依次为:青绿,乌黑,浅白) 然后,结合3 个属性,计算出特征为色泽的信息熵。 3.信息增益: 信息增益大,代表着熵小,所以确定性较高。 得出决策结果 但是,当我们使用ID编号作为一个特征量的时候 ′得到信息熵: ′信息增益为: 所以需要使用编号作为根节点吗?显然不可能。 (所以说:ID3决策树倾向于选择属性较多的特征,当这个特征不一定是最优的属性特征。同时,ID3决策树只能处理离散的属性,对于连续的属性,需要在 分类前对其进行离散化。) 因此,引入增益率: ′=1/(17)*17*log2(1/(17))=4.08 ′如果一个特征的取值越多

数据挖掘(机器学习)面试--SVM面试常考问题

匿名 (未验证) 提交于 2019-12-03 00:22:01
转自 https://blog.csdn.net/szlcw1/article/details/52259668 应聘数据挖掘工程师或机器学习工程师,面试官经常会考量面试者对SVM的理解。 以下是我自己在准备面试过程中,基于个人理解,总结的一些SVM面试常考问题(想到会再更新),如有错漏,请批评指正。(大神请忽视) 转载请注明出处:blog.csdn.net/szlcw1 SVM的原理是什么? SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机) (1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机; (2)当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机; (3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。 注:以上各SVM的数学推导应该熟悉: 硬间隔最大化(几何间隔)---学习的对偶问题---软间隔最大化(引入松弛变量) --- 非线性支持向量机(核技巧)。 SVM为什么采用间隔最大化? 当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。 感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。 线性可分支持向量机 利用间隔最大化求得最优分离超平面 ,这时,解是唯一的

数据挖掘(1)知识点总结

匿名 (未验证) 提交于 2019-12-03 00:19:01
详细文章转自:https://blog.csdn.net/sinat_22594309/article/details/74923643 数据挖掘的一般过程包括以下这几个方面: 1、 数据预处理 2、 数据挖掘 3、 后处理 一、数据预处理 主要手段分为两种:选择分析所需的数据对象和属性;创造或改变属性。 1.常见的几种预处理方法:聚集、抽样、维归约、特征子集的选择、 特征的创建、 离散化和二元化、 变量变换。 就是把相关或者类似的数据对象集合到一起,常常用在数据探索阶段。 另外,聚集还有一个功能就是可以 改变数据的分辨率 ,以适应不同目的的数据挖掘工作。 最常见的抽样方法通常是随机抽样, 但如果我们处理的数据是非对称的,那么通常我们要采取分层抽样 ,因为随机抽样有可能把我们的稀疏样本给淹没了。 目的就是降低数据集的维度以期减少我们的计算量。最简单的维归约方法就是去除无效或者不相关的特征。当然,除此之外,我们也有一些数学方法来进行降维,比如说主成分分析(PCA)和奇异值分解(SVD)。 维归约确实帮我们去除了一部分冗余的特征,但很多时候冗余的特征并不是我们靠经验就可以全部筛选出来的。这个时候,一方面我们依靠某些算法计算特征的重要程度来进行特征的筛选,比如树的一些算法。另一方面如果计算资源足够,我们可以尝试不同的特征组合选择效果最好的特征组合用于我们最后的数据挖掘任务。当然