Data Science:数据挖掘
文章平均质量分 82
图灵的猫.
给行业以ai,而不是给ai以行业
展开
-
「06」回归的诱惑:一文读懂线性回归(Python实战篇)
在上一篇文章「05」回归的诱惑:一文读懂线性回归里,我们详细解释了什么是线性回归,以及线性回归的特点,这一期给出实战案例的Python代码,供大家参考回归实战第一步 导入数据from collections import OrderedDictimport pandas as pd#数据集examDict={ '学习时间':[0.50,0.75,1.00,1....原创 2020-01-19 20:19:36 · 2350 阅读 · 0 评论 -
机器学习之旅:支持向量机通俗导论(理解SVM的三层境界)
支持向量机通俗导论(理解SVM的三层境界)作者:July、pluskid ;致谢:白石、JerryLead出处:结构之法算法之道blog。前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但...转载 2018-06-05 11:40:48 · 1004 阅读 · 0 评论 -
机器学习:维度灾难(Curse of Dimensionality)
在三维情况下,要覆盖特征空间20%的体积,则需要在每个维度上取得58%的取值范围...在维度接近一定程度时,要取得同样的训练样本数量,则几乎要在每个维度上取得接近100%的取值范围,或者增加总样本数量,但样本数量也总是有限的。换句话说,通过使用更少的特征,避免了维数灾难的发生(也即避免了高维情况下的过拟合)。维数灾难与过拟合:在上面这个分类的例子中,我们假设猫和狗图片的数量是有限的(实际上也确实如此,样本数量总是有限的),就假设有10张图片吧,接下来我们就用这仅有的10张图片来训练我们的分类器。翻译 2018-06-11 16:08:11 · 14658 阅读 · 1 评论 -
机器学习tips:什么是pipeline?
一个典型的机器学习构建包含若干个过程以上四个步骤可以抽象为一个包括多个步骤的流水线式工作,从数据收集开始至输出我们需要的最终结果。因此,对以上多个步骤、进行抽象建模,简化为流水线式工作流程则存在着可行性,对利用spark进行机器学习的用户来说,流水线式机器学习比单个步骤独立建模更加高效、易用。管道机制在机器学习算法中得以应用的根源在于,参数集在新数据集(比如测试集)上的。管道机制实现了对全部步骤的流式化封装和管理()。注意:管道机制更像是编程技巧的创新,而非算法的创新。原创 2018-06-11 15:54:29 · 41047 阅读 · 1 评论 -
什么是数据脱敏(Data Masking)?
数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。生活中不乏数据脱敏的例子,比如我们最常见的火车票、电商收货人地址都会对敏感信息做处理,甚至女同志较熟悉的美颜、有些视频中的马赛克都属于脱敏。原创 2018-06-11 15:45:21 · 19236 阅读 · 0 评论 -
机器学习之旅:三分钟读懂最大熵模型
最大熵模型假设分类模型是一个条件概率分布P(Y|X)P(Y|X),X为特征,Y为输出。给定一个训练集(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),其中x为n维特征向量,y为类别输出。我们的目标就是用最大熵模型选择一个最好的分类类型。原创 2018-06-03 18:46:59 · 3269 阅读 · 0 评论 -
深度学习入门:一文详解BP神经网络
在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。原创 2018-04-19 16:41:57 · 39246 阅读 · 2 评论 -
最新中文停用词库(txt格式,可下载)
点进去,右键页面另存为txt即可。原创 2018-04-12 21:27:52 · 41283 阅读 · 7 评论 -
交叉验证:什么是训练集(training-set)与测试集(test-set)
此外,2-CV中分子集的变异度大,往往无法达到“实 验过程必须可以被复制”的要求。将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证 集的分类准确率的平均数作为此K-CV下分类器的性能指标。如果设原始数据有N个样本,那么LOO-CV就是N-CV,即每个样本单独作为验证集,其余的N-1个样本作为训练集,所以LOO-CV会得到N个模 型,用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标。原创 2018-04-01 20:25:52 · 26142 阅读 · 0 评论 -
对核函数(kernel)最通俗易懂的理解
左图为原数据,右图为映射到三维的数据,可以看出:同样是降到1维,先通过Kernel映射到(Kernel是映射的内积,不要弄乱了)三维,再投影到1维,就容易分离开,这就是Kernel在PCA降维中的应用,本质还是对原有数据增加维度。在实用中,很多使用者都是盲目地试验各种核函数,并扫描其中的参数,选择效果最好的。的内积,映射函数本身仅仅是一种映射关系,并没有增加维度的特性,不过可以利用核函数的特性,构造可以增加维度的核函数,这通常是我们希望的。二维映射到三维,区分就更容易了,这是聚类、分类常用核函数的原因。原创 2018-06-07 10:23:25 · 132073 阅读 · 9 评论 -
机器学习:提升算法之Adaboost
说了这么多,也举了这么多例子,就是为了让你从细节上明白Adaboost的基本原理,博主认为理解Adaboost的两种权重的关系是理解Adaboost算法的关键所在。原创 2018-06-14 13:13:19 · 1378 阅读 · 0 评论 -
机器学习之Grid Search网格搜索(自动调参)
Grid Search:一种调参手段;:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。其原理就像是在数组里找最大值。(为什么叫网格搜索?以有两个参数的模型为例,参数a有3种可能,参数b有4种可能,把所有可能性列出来,可以表示成一个3*4的表格,其中每个cell就是一个网格,循环过程就像是在每个网格里遍历、搜索,所以叫grid search)原创 2019-01-10 13:26:30 · 60512 阅读 · 2 评论 -
异常检测算法:孤立森林(Isolation Forest)
比如常用的统计方法,基于分类的方法,和基于聚类的方法,这些传统算法通常是对正常的数据构建一个模型,然后把不符合这个模型的数据,认为是异常数据。预测的过程就是把测试数据在iTree树上沿对应的条件分支往下走,直到达到叶子节点,并记录这过程中经过的路径长度h(x),即从根节点,穿过中间的节点,最后到达叶子节点,所走过的边的数量(path length)。从上面的评价中来看,iForest算法在实际的应用中应该具有不错的效果,得益于随机森林的思想,能快速处理大规模的数据,在当前的大数据环境下,应该很受欢迎。原创 2018-08-01 13:24:36 · 25630 阅读 · 2 评论 -
机器学习实战系列(八):分类与回归树
课程的所有数据和代码在我的Github:Machine learning in Action,目前刚开始做,有不对的欢迎指正,也欢迎大家star。除了 版本差异,代码里的部分函数以及代码范式也和原书不一样(因为作者的代码实在让人看的别扭,我改过后看起来舒服多了)。在这个系列之后,我还会写一个scikit-learn机器学习系列,因为在实现了源码之后,带大家看看SKT框架如何使用也是非常重要的。 ...原创 2018-07-26 22:17:40 · 846 阅读 · 0 评论 -
推荐系统:NDCG评价指标
两个最受欢迎的指标是MAP和NDCG。我们在前段时间已经使用了(MAP)。NDCG表示。两者之间的主要区别是,MAP认为是二元相关性(一个项是感兴趣的或者不感兴趣的),而NDCG允许以实数形式进行相关性打分。这种关系类似分类和回归的关系。实际当中,很难直接地优化MAP或NDCG指标,因为他们是不连续的,所以不可微。幸运的是,表明,用于排名学习的一对损失函数近似于这些指标。原创 2018-07-07 14:04:01 · 33416 阅读 · 1 评论 -
一文读懂Xgboost
xgboost算法的步骤和GB基本相同,都是首先初始化为一个常数,gb是根据一阶导数ri,xgboost是根据一阶导数gi和二阶导数hi,迭代生成基学习器,相加更新学习器。(2). GB中使用Loss Function对f(x)的一阶导数计算出伪残差用于学习生成fm(x),xgboost不仅使用到了一阶导数,还使用二阶导数。(1). xgboost在目标函数中显示的加上了正则化项,基学习为CART时,正则化项与树的叶子节点的数量T和叶子节点的值有关。对上式做二阶泰勒展开:g为一阶导数,h为二阶导数。原创 2018-06-16 23:45:44 · 1277 阅读 · 0 评论 -
随机森林(Random Forest)通俗教程
作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。最初,我是在参加校外竞赛时接触到随机森林算法的。最近几年的国内外大赛,包括2013年百度校园电影推荐系统大赛、2014年阿里巴巴天池大数据竞赛以及Kaggle数据科学竞赛,参赛者对随机森林的使用占有相当高的比例。原创 2018-06-16 19:27:47 · 32658 阅读 · 6 评论 -
数据挖掘、机器学习、深度学习、推荐系统、自然语言处理的区别与联系
写书的当然什么都要写写啦,难道机器学习里有的东西,推荐系统的书就不能写了?之所以经常和数据挖掘合在一起讲是因为现在好多数据挖掘的工作是通过机器学习提供的算法工具实现的,例如广告的ctr预估,PB级别的点击日志在通过典型的机器学习流程可以得到一个预估模型,从而提高互联网广告的点击率和回报率;deep learning,机器学习里面现在比较火的一个topic(大坑),本身是神经网络算法的衍生,在图像,语音等富媒体的分类和识别上取得了非常好的效果,所以各大研究机构和公司都投入了大量的人力做相关的研究和开发。原创 2018-04-08 21:52:49 · 7319 阅读 · 0 评论 -
NMF(非负矩阵分解)的场景应用
最近在学习矩阵分析时了解到了NMF这个方法,发现其潜力巨大,应用场景广阔。目前的算法场景中,NMF可以应用的领域很广,源于其对事物的局部特性有很好的解释。在众多应用中,NMF能被用于发现数据库中的图像特征,便于快速自动识别应用;能够发现文档的语义相关度,用于信息自动索引和提取;能够在DNA阵列分析中识别基因等等。我们将对此作一些大致的描述。但是最有效的就是图像处理领域,是图像处理的数据降维和特征提取的一种有效方法。原创 2018-02-13 20:05:25 · 7372 阅读 · 0 评论 -
Python数据分析:pandas中Dataframe的groupby与索引
Series和DataFrame都是有索引的,索引的好处是快速定位,在涉及到两个Series或DataFrame时可以根据索引自动对齐,比如日期自动对齐,这样可以省去很多事。原创 2018-03-15 21:44:16 · 24839 阅读 · 0 评论 -
一文详解蒙特卡洛(Monte Carlo)法及其应用
蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。它诞生于上个世纪40年代美国的"曼哈顿计划",名字来源于赌城蒙特卡罗,象征概率。原创 2018-01-12 17:42:01 · 91220 阅读 · 4 评论 -
滑动平均法、滑动平均模型法(Moving average,MA)
移动平均法是用一组最近的实际数据值来预测未来一期或几期内公司产品的需求量、公司产能等的一种常用方法。移动平均法适用于即期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素时,移动平均法能有效地消除预测中的随机波动,是非常有用的。移动平均法根据预测时使用的各元素的权重不同移动平均法是一种简单平滑预测技术,它的基本思想是:根据时间序列资料、逐项推移,依次计算包含一定项数的序时平均值,以反映长期趋势的方法。原创 2018-01-10 20:35:58 · 70893 阅读 · 2 评论 -
优化算法中的鞍点与梯度下降
摘要:本文将讨论寻找凸路径( convex path )时可能会遇到的不同类型的临界点( critical points),特别是基于梯度下降的简单启发式学习方法,在很多情形下会使你在多项式时间内陷入局部最小值( local minimum ) 。凸函数比较简单——它们通常只有一个局部最小值。非凸函数则更加复杂。在这篇文章中,我们将讨论不同类型的临界点( critical points)翻译 2017-12-25 19:44:10 · 12118 阅读 · 1 评论 -
正交矩阵和Gram-Schmidt正交化
我们很容易得出,如果一个矩阵Q的列向量是标准正交的,那么Q’Q=I.如果Q还是个方阵,那么就称矩阵Q是正交矩阵.且有Q’Q=I ==> Q’ = Q-1。我现在想找两个向量A,B,他们不仅相互独立,且正交,也就是A和B生成的空间与a和b生成的空间一样,但是A和B是垂直的.P=Q(Q’Q)-1Q’=QQ’=I,对于最小二乘问题Q’Qx=Q’b,可简化为x=Q’b,即。向量a和b的方向都是任意的,但是二者并不垂直,a的方向不是一定为水平的,这里只是为了好看起见。由此,引出了重要的矩阵分解中的QR分解。原创 2017-12-24 21:50:56 · 2156 阅读 · 0 评论 -
(PCA与信息)方差和熵
下图是某股票数据的熵和对数标准差关系[2]:可以看出熵和ln(σ)ln(σ)有很强的正相关的关系。对于常见的分布可以很容易推导出他们的熵和方差。[3]原创 2017-12-24 21:50:09 · 2960 阅读 · 0 评论 -
正交投影与变换
投影的严格定义是:一个从向量空间V射到它自身的线性变换P是投影,当且仅当。另外一个定义则较为直观:P是投影,当且仅当存在V的一个子空间W,使得P将所有V中的元素都映射到W中,而且P在W上是恒等变换。用数学的语言描述,就是:,使得,并且。原创 2017-12-24 21:47:49 · 11925 阅读 · 1 评论 -
如何使用sklearn进行数据挖掘
目录1 使用sklearn进行数据挖掘1.1 数据挖掘的步骤1.2 数据初貌1.3 关键技术2 并行处理2.1 整体并行处理2.2 部分并行处理3 流水线处理4 自动化调参5 持久化6 回顾7 总结8 参考资料1 使用sklearn进行数据挖掘1.1 数据挖掘的步骤数据挖掘通常包括数据采集,数据分析,特征工程,训练模型,模型评估等步骤。使用sklearn工...原创 2017-12-22 23:07:34 · 615 阅读 · 0 评论 -
[交叉验证]机器学习中分类器的选择
在机器学习中,分类器作用是在标记好类别的训练数据基础上判断一个新的观察样本所属的类别。分类器依据学习的方式可以分为非监督学习和监督学习。非监督学习顾名思义指的是给予分类器学习的样本但没有相对应类别标签,主要是寻找未标记数据中的隐藏结构。,监督学习通过标记的训练数据推断出分类函数,分类函数可以用来将新样本映射到对应的标签。在监督学习方式中,每个训练样本包括训练样本的特征和相对应的标签。原创 2017-12-22 23:12:15 · 8133 阅读 · 4 评论 -
机器学习中的VC维数和分类
VC维数学习VC维要先知道的概念有:增长函数(growth function)、对分(dichotomy)、打散(shattering)和断点(break point)1.增长函数增长函数表示假设空间H对m个示例所能赋予标记的最大可能结果数。比如说现在数据集有两个数据点,考虑一种二分类的情况,可以将其分类成A或者B,则可能的值有:AA、AB、BA和BB,原创 2017-12-22 23:23:20 · 6765 阅读 · 1 评论 -
监督学习的分类:判别/生成模型,概率/非概率模型、参数/非参数模型
其中,监督学习是其中发展最为成熟的分支。这不仅是由于在监督学习框架下面有各种各样的学习模型,如逻辑斯特回归、朴素贝叶斯、支持向量机等,更是因为这个框架有着坚实的理论支撑,机器学习中的计算学习理论就是主要为监督学习服务的:这套理论以概率的方式回答了哪些问题是可学习的,学习成功的概率有多大等问题,其中比较常见的理论有VC理论、PAC理论、PAC-Bayes理论等。非概率模型指的是直接学习输入空间到输出空间的映射h,学习的过程中基本不涉及概率密度的估计,概率密度的积分等操作,问题的关键在于最优化问题的求解。原创 2018-01-22 22:10:24 · 5698 阅读 · 1 评论 -
辨别Python中load和loads的小技巧
如使用json.dumps序列化的对象d_json=json.dumps({‘a‘:1, ‘b‘:2}),在这里d_json是一个字串‘{"b": 2, "a": 1}‘d=json.loads(d_json) #{ b": 2, "a": 1},使用load重新反序列化为dict,load针对文件句柄,如本地有一个json文件a.json则可以d=json.load(open(‘a.json‘))相应的,dump就是将内置类型序列化为json对象后写入文件。原创 2018-03-15 20:57:18 · 20256 阅读 · 0 评论 -
距离,范数与相似度
在数据分析和数据挖掘的过程中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如K最近邻(KNN)和K均值(K-Means)。当然衡量个体差异的方法有很多,最近查阅了相关的资料,这里整理罗列下。为了方便下面的解释和举例,先设定我们要比较X个体和Y个体间的差异,它们都包含了N个维的特征,即X=(x1, x2, x3, … xn...原创 2018-02-14 20:04:04 · 2487 阅读 · 0 评论 -
用通俗易懂的方式告诉你什么是EM算法
EM(Expectation Mmaximization) 是一种迭代算法, 用于含隐变量(Latent Variable) 的概率模型参数的极大似然估计, 或极大后验概率估计 EM算法由两步组成, 求期望的E步,和求极大的M步。EM算法可以看成是特殊情况下计算极大似然的一种算法。现实的数据经常有一些比较奇怪的问题,比如缺失数据、含有隐变量等问题。当这些问题出现的时候,计算极大似然函数通常是比较困难的,而EM算法可以解决这个问题。EM算法已经有很多应用,比如最经典的Hidden Markov模型等。原创 2018-02-03 19:39:04 · 13080 阅读 · 1 评论 -
随机过程:鞅与马尔科夫过程的理解
Martingale的词本意是指马车上马夫控制马前进的缰绳(如果我记得没错的话),所以从词源来看刻画了一种过程前进(未来)与现在出发点关系的含义。具体来说缰绳的作用是使得马车的前进方向与现在所冲的方向一致,所以在概率上来解释就是未来发生的所有路径可能性的期望值与现在的出发点一致。从这个意义上来说Matingale的核心是说明了一个过程在向前演化的过程中的稳定性性质。但它并没有说明这个过程是如何到达这一时间点的(是否由上一个时间点所在的位置决定,matingale并没有说明)。原创 2018-02-03 19:23:42 · 18578 阅读 · 3 评论 -
深入浅出BP神经网络(反向传播算法)
反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是:(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传转载 2018-01-10 20:01:13 · 2131 阅读 · 1 评论 -
Toeplitz matrix 与 Circulant matrix
之所以专门定义两个新的概念,在于它们特殊的形式,带来的特别的形式。原创 2018-01-10 19:21:18 · 1784 阅读 · 0 评论 -
机器学习的数学(三)范数的简单介绍
我的机器学习教程「美团」算法工程师带你入门机器学习 以及「三分钟系列」数据结构与算法已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~...原创 2018-01-25 13:08:44 · 1246 阅读 · 0 评论 -
贝叶斯分类与贝叶斯网络
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本文作为分类算法的第一篇,将首先介绍分类问题,对分类问题进行一个正式的定义。然后,介绍贝叶斯分类算法的基础——贝叶斯定理。最后,通过实例讨论贝叶斯分类中最简单的一种:朴素贝叶斯分类。在上一篇文章中我们讨论了朴素贝叶斯分类。朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。原创 2017-12-24 21:53:19 · 12891 阅读 · 2 评论 -
用最通俗易懂的语言告诉你什么是信息熵
直接传递ABCD的ascii码的话,每个答案需要8个bit的二进制编码,从传输的角度,这显然有些浪费。信息论最初要解决的,就是数据压缩和传输的问题,所以这个作弊团伙希望能用更少bit的编码来传输答案。实际上,熵的概念首先在热力学中引入,用于表述热力学第二定律。信息熵的定义与上述这个热力学的熵,虽然不是一个东西,但是有一定的联系。直觉上,信息量等于传输该信息所用的代价,这个也是通信中考虑最多的问题。,那么同样需要问3次(问题1,问题2,问题3),概率为。,那么需要问3次(问题1,问题2,问题3),概率为。原创 2018-01-16 20:41:17 · 25540 阅读 · 5 评论 -
什么是特征工程?如何进行特征工程?
再让我们回归一下本文开始的特征工程的思维导图,我们可以使用sklearn完成几乎所有特征处理的工作,而且不管是数据预处理,还是特征选择,抑或降维,它们都是通过某个类的方法fit_transform完成的,fit_transform要不只带一个参数:特征矩阵,要不带两个参数:特征矩阵加目标向量。这些难道都是巧合吗?还是故意设计成这样?方法fit_transform中有fit这一单词,它和训练模型的fit方法有关联吗?接下来,我将在《使用sklearn优雅地进行数据挖掘》中阐述其中的奥妙!原创 2017-12-22 23:09:18 · 84154 阅读 · 6 评论