数据挖掘算法
文章平均质量分 93
不论如何未来很美好
这个作者很懒,什么都没留下…
展开
-
随机森林(python)
阅读目录1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 袋外错误率(oob error) 6 随机森林工作原理解释的一个简单例子 7 随机森林的Python实现 8 参考内容回到顶部1 什么是随机森林? 作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销...转载 2018-05-19 16:11:29 · 3006 阅读 · 0 评论 -
数据挖掘十大算法(七):AdaBoost python和sklearn实现
这里主要记录AdaBoost的(原理、一个代码示例、ROC曲线、sklearn实现)等四个方面。原理:AdaBoost算法属于一种迭代算法,它的核心思想是针对同一训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强大的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权...原创 2018-08-21 13:43:40 · 18919 阅读 · 0 评论 -
数据挖掘经典算法:FP-Growth算法(高效发现频繁项集)
本篇文章介绍一中与上一章Apriori算法功能类似的一种算法——FP-Growth,该算法速度更快、大多情况下效果更好,但是不能用于发现关联规则。以下都是通过机器学习实战与本人的实践过后的总结。FP-Growth算法,基于Apriori构建,但在完成相同任务时采用了不同的技术,其只需要对数据集进行两次扫描,而Apriori算法对于每个潜在的频繁项集都会扫描数据集判定给定模式是否频繁,因此其比A...原创 2018-08-31 11:41:13 · 8270 阅读 · 2 评论 -
数据挖掘经典算法:线性回归、局部加权回归、岭回归、逐步线性回归 sklearn实现
这里记录一下关于回归方面的知识包括(线性回归、局部加权回归、岭回归、逐步线性回归)等基础思想和代码实现。以及sklearn的实现方法。(数据来自机器学习实战第八章)回归: 分类的目标变量是标称型数据,而回归可以对连续型数据做预测,同样也是寻找一条最佳的拟合线。 回归的目的是预测数值型的目标值,最直接的办法是根据输入数据写出一个目标值的计算公式,即一个线性方程:y=kx+bz...原创 2018-08-25 12:13:09 · 12496 阅读 · 1 评论 -
数据挖掘十大算法(四):Apriori(关联分析算法)
终于到了机器学习实战的第十一章了,这也是继K-均值后的第二个无监督学习算法了。同样的该算法也是在一堆数据集中寻找数据之间的某种关联,这里主要介绍的是叫做Apriori的‘一个先验’算法,通过该算法我们可以对数据集做关联分析——在大规模的数据中寻找有趣关系的任务,本文主要介绍使用Apriori算法发现数据的(频繁项集、关联规则)。这些关系可以有两种形式:频繁项集、关联规则。 频...原创 2018-08-29 21:38:50 · 152305 阅读 · 35 评论 -
机器学习实战——PCA(主成分分析)
本章关于PCA的代码虽少,但涉及到的知识却很多,由于数学知识比较浅薄,所以在看这章时提前查找资料复习了很多的概率论和统计学知识和python基础知识,这里记录的很多都是关于PCA的相关知识或理论(例如:特征向量、协方差矩阵等),由于部分知识涉及较多,讲的有点详细所以文章篇幅较长尽量缩减了,下面进入正文。通常我们可以很清楚的看到一维数据,或直观的二维图形,但实际中很多的数据远不止1、2、3维,这...原创 2018-09-01 17:37:02 · 12191 阅读 · 1 评论 -
数据挖掘十大经典算法(包括各自优缺点 / 适用数据场景)
本文主要分析皆来自其他资料,借用较为权威的总结来对我已经学习的这些经典算法做一个极为精简的概述(根据自身经验有一定修改),另外同时附上机器学习实战中作者对各种算法的评价。另外机器学习实战这本书是本人看了这么多书籍或者资料中唯一一本坚持从头看到尾,看完了的书籍,包括其中的代码皆实践运行过,收获颇多,个人认为虽然这本书时间上已经算是老资料了,但其中作者的各种总结和代码的演练都由浅入深(前提还是要有一点...原创 2018-09-04 15:18:03 · 158548 阅读 · 7 评论 -
机器学习实战——SVD(奇异值分解)
与PCA一样的学习过程,在学习SVD时同样补习了很多的基础知识,现在已经大致知道了PCA的应用原理,SVD个人感觉相对要难一点,但主要步骤还是能勉强理解,所以这里将书本上的知识和个人的理解做一个记录。主要关于(SVD原理、降维公式、重构原矩阵、SVD的两个实际应用),当然矩阵的分解和相对的公式我会给出写的更好的文章对于说明(个人基础有限)。(最后给出两条SVD最重要的公式)SVD(奇异值分...原创 2018-09-03 16:19:52 · 86147 阅读 · 32 评论 -
Bagging和Boosting(偏差与方差)
机器学习中的集成学习有两个重要的策略,即Bagging与Boosting。Bagging: 算法构建多个分类器,每个分类器都随机从原样本中做有放回的抽样,利用这些采样后的样本训练该分类器,然后将这些分类器组合起来构成一个更强效果更好的组合分类器,结果一般使用多数投票效果就很好了。其代表算法为随机森林。Boosting: 算法通过迭代构建一系列的分类器,每次分类都将上一次...原创 2018-09-07 09:29:39 · 8734 阅读 · 0 评论 -
TF-IDF及相关知识(余弦相似性)
自然语言的处理是一个神奇的领域,它涉及到数据挖掘、文本处理、信息检索等很多计算机前沿领域,由于复习相关知识,所以这里对该方向的部分知识做一个简单的介绍和记录。该文主要记录的是一个很简单却很经典有效的算法——TF-IDF。从它的概念到运算可能花不了10分钟就能了解,并且用到的运算知识都不涉及高等数学,但往往能返回我们一个满意的答案。当我们输入一段检索信息时,可以利用TF-IDF算法,给我们返...原创 2018-09-15 15:42:15 · 2870 阅读 · 3 评论 -
线性回归
线性回归:简单描述就是通过线性方程(1次函数)去拟合数据点:但是如何使用该线性方程去拟合数据点呢?我们能得到拟合的整体误差,即图中蓝色线段的长度总和。如果某一条直线对应的误差值最小,就代表这条直线最能反映数据点的分布趋势:误差如何表示?在线性回归中,使用残差的平方和来表示所有样本点的误差(专业名称:平方损失函数):如何求解上面的平方损失函数?使用最小二乘法即代数求解,最小二...原创 2018-10-02 11:10:29 · 810 阅读 · 0 评论 -
多项式回归
多项式回归多项式回归,回归函数是回归变量多项式的回归。多项式回归模型是线性回归模型的一种,此时回归函数关于回归系数是线性的。由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用。直线回归研究的是一个因变量与一个自变量之间的回归问题,但在实际情况中,影响因变量的自变量往往不止一个,例如:羊毛的产量受到绵羊体重、体长、胸围等影响,因此需要进行一个因变量与多个自变量间的回归分析,即多元回归...原创 2018-10-02 23:08:37 · 38054 阅读 · 4 评论 -
岭回归、LASSO回归(包括公式推导)
前面的两篇文章比较清楚浅显的介绍了线性回归、多项式回归,并了解到其实多项式回归也可以看作是一种特殊的线性回归形式,也就是说回归的核心就是线性回归。其原理都是最小二乘法,这是一种很简单、很方便的算法,但也有它的局限性,所以本文讲述另外的回归方式岭回归、LASSO回归,作为一个补充,解决最小二乘法的一些缺点。最小二乘法的局限性: ...原创 2018-10-03 16:09:32 · 25119 阅读 · 6 评论 -
梯度下降算法简明教程
最早接触梯度下降算法是在学习逻辑回归(Logistic Regression),对于权重的迭代更新。当然运用梯度算法的地方远不止逻辑回归,该方法思路简单但适用范围很广,简单的线性回归(Linear Regression),以及最近在看的神经网络(Neural Network)都有涉及梯度算法,所以掌握该方法还是很有必要的,下面来看看吧。梯度算法适用于求极值的问题,极值包括两种(极大值、极小值)...原创 2018-10-21 20:03:52 · 3775 阅读 · 0 评论 -
逻辑回归中如何应用梯度下降算法与损失函数
前面一篇博客介绍了关于梯度下降算法来由以及说明了为什么梯度的负方向就是梯度下降最快方向,本文将会在上文的知识下简述在逻辑回归(Logistic Regression)中为什么可以使用以及如何使用梯度下降算法。梯度下降算法是个比较简单容易理解的算法,就像吴老师或很多资料上记载的一样:每次从新起点寻找一个到达目的地最快的方向并移动一定距离,以此重复直到终点。对于目标函数是凸函数,则可以到达全局最优...原创 2018-11-01 22:54:05 · 7893 阅读 · 2 评论 -
利用mlxtend进行数据关联分析
今天本该是个剁手的日子,只可惜余额不足高攀不起那台i7-8565,只有再写一篇文章聊以慰籍~~前言:之前很少做关于数据关联分析的题,而当初学关联分析时也是自己写代码来实现底层转换与运算,粗略一点的整体代码量也达到150行左右,所以没有高级的开源工具使用是很费时间的,由此阻碍了一颗想学习的心。后来遇到相关问题便Google了一些解决办法,其中有一个集成很优秀,使用也很方便的GitHub开源项目,...原创 2018-11-11 21:57:02 · 23000 阅读 · 6 评论 -
python时间序列ARIMA的实现及原理(预测茅台股票数据)
ARIMA模型由 (AR模型 I差分 MA模型)三部分组合而成。这里我使用scipy库的方法来简单实现,其中的底层代码就不再累述。当然也可以使用ARMA模型,由于ARMA模型需要平稳的时间序列,或者转化为弱平稳时间序列。所以ARMA模型中引入I差分,构成了ARIMA模型。ARIMA模型需要引入三个变量参数p、d、qARIMA模型(可以估计时间的走向的模型):一:AR模...原创 2018-05-04 11:30:39 · 34870 阅读 · 14 评论 -
数据挖掘十大算法(八):k-邻近算法(KNN)python和sklearn实现
《机器学习实战》,为了更深的理解经典的数据挖掘算法,我开始了这本书的学习。(我感觉这本书写的代码太复杂而且用了很多python的底层方法)我看了一个大概的思路,然后根据自己的理解(主要pandas数据结构处理数据特征)完成了书上的内容,花了多一点时间,可能整体逻辑没有它严谨,但我是比较容易理解,也能顺便练一下手的(所需数据在这本书下载的文件夹里)。下面开始正文。以及后面使用sklearn来实现KN...原创 2018-07-30 21:04:29 · 3002 阅读 · 0 评论 -
数据挖掘十大算法(二):K-Means、二分K-均值 python和sklearn实现
早在刚接触数据挖掘算法时就已经看过,以及使用过简单的K-均值算法来做聚类,现在为了进一步的掌握该知识,通过机器学习实战又看了一遍,由于相对于其它算法较简单,所以看的也比较快,同时也学习了一下更为强大的二分K-均值算法,该算法建立在K-Means算法上,但难度不大,理论知识也很好理解,所以这里对两者的思路都记录一下。本篇文章主要内容(K-Means原理、二分K-Means原理、基础代码实现、skle...原创 2018-08-27 20:53:08 · 17954 阅读 · 8 评论 -
决策树(python)
决策数(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种。看字面意思应该也比较容易理解,相比其他算法比如支持向量机(SVM)或神经网络,似乎决策树感觉“亲切”许多。优点:计算复杂度不高,输出结果易于理解,对中间值的缺失值不敏感,可以处理不相关特征数据。缺点:可能会产生过度匹配的问题。使用数据类型:数值型和标称型。简单介绍完毕,让我们来通过一个例子让决策树“原形毕...转载 2018-05-19 11:46:43 · 754 阅读 · 0 评论 -
scikit-learn algorithm cheat-sheet(汉化、英文)
汉化版:原始英文版(原图链接):参考文章连接:https://blog.csdn.net/a790209714/article/details/52708464原创 2018-05-12 12:01:02 · 4496 阅读 · 1 评论 -
scipy实现k-means算法
继上次了解并亲自编写了k-means算法后,总想找个简单的方法来实现它,毕竟这是个很基础很简单的聚类算法。终于在学习了scipy的一部分知识后,能够实现利用scipy来实现k-means了,并且我将两个方法做了简单的比较,发现数据较小时差别并不大,而且scipy方法更稳定一点。下面实现方法和代码:SciPy库依赖于NumPy,它提供了便捷且快速的N维数组操作。并且SciPy提供了覆盖包含了不同不同...原创 2018-04-28 21:24:37 · 6087 阅读 · 0 评论 -
python简单实现k-means聚类算法
我对聚类算法的理解:将一堆,无划分的数据,通过它们之间的相似度进行划分。(简单粗暴^。^)根据上面的理解,K-means算法就能知名晓意了:就是将一堆无划分的样本数据,定义需要划分为K堆,然后通过每个样本数据点与中心点间的距离进行归簇。(在k-means中需要在划分前需指定中心点,这是它的缺点)下面是官方一点的说法:K-Means算法是最为经典的基于划分的聚簇方法,是十大经典数据挖掘算法之一。简单...原创 2018-04-20 16:52:51 · 2900 阅读 · 0 评论 -
使用sklearn的cross_val_score进行交叉验证
在构建模型时,调参是极为重要的一个步骤,因为只有选择最佳的参数才能构建一个最优的模型。但是应该如何确定参数的值呢?所以这里记录一下选择参数的方法,以便后期复习以及分享。(除了贝叶斯优化等方法)其它简单的验证有两种方法:1、通过经常使用某个模型的经验和高超的数学知识。2、通过交叉验证的方法,逐个来验证。很显然我是属于后者所以我需要在这里记录一下sklearn 的 cross_val_sc...原创 2018-06-15 18:21:36 · 146086 阅读 · 69 评论 -
sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》
记录一下如何利用sklearn的LogisticRegression来做一个简单的实现。后续深入了解了,再做分享(现在只懂皮毛)。下面通过一个案例来进行分析:《良/恶性乳腺癌肿瘤预测》这是一个已经提供了的数据集,地址:https://archive.ics.uci.edu/ml...原创 2018-06-17 15:44:42 · 7756 阅读 · 5 评论 -
欧几里德距离、皮尔逊相关度、Tanimoto
集体智慧编程正式开始了接触,第一课便是如何寻找想进用户(也就是两者的相似程度),正如大多数的推送服务一样,通过计算你和其他的用户的相似程度,给你推荐最佳匹配人认为很好的但是你还没有购买的东西。这里重点讲了三个计算相似程度的评价方法:欧几里德距离、皮尔逊相关度、Tanimoto测试数据如下:(就是嵌套字典,共7个人对使用过的商品的评价)critics={'Lisa Rose': {'L...原创 2018-07-10 17:05:11 · 4917 阅读 · 0 评论 -
分级聚类——博客分类 (画出分级聚类树状图)
《集体智慧编程》的第三章——发现组群 下面的测试数据可以在网上下载通过分级聚类的方式将数据一层一层的聚类,最终聚类为一个大的对象。画了一个样例图如下:其中将A、B、C、D、E五个对象进行层级聚类,最终的聚类步骤上面已经标出(1,2,3,4)。原理:循环遍历所有对象,利用算法计算对象点之间的距离,每次将最近的两个对象聚为一类,直到得到最终的结果。 其实在代码中...原创 2018-07-18 18:16:09 · 16070 阅读 · 1 评论 -
K-means聚类(博客聚类)
继上一篇博客使用分级聚类对博客进行聚类《集体智慧编程》,本次使用K-means方法来对博客聚类,部分代码和数据请看上一篇。K-均值聚类应该算是比较容易理解的一种算法了,我在前面学习的时候有专门的说过K-means的原理原理和实现,如果不是很理解可以可以去看看。作者使用方法和我之前的大同小异,我用的是多个组合函数对二维数据集的聚类,更容易理解和实现。本次的数据集为多维的数据集,方法也略有不同...原创 2018-07-19 18:07:56 · 532 阅读 · 0 评论 -
基于用户的协作型过滤、基于物品的协作型过滤(产品推荐)
此篇为《集体智慧编程》第二章的主要内容——利用基于用户的协作型过滤、基于物品的协作型过滤来进行产品的推荐。在此做一个总结:一、基于用户的协作型过滤:我的理解:求出所有用户与目标用户的相似度,该相似度类似于权值,相似度越高,权值越高,说明该用户对目标用户的影响越大。使用用户权值*用户物品评分,最后统计物品的和(这里还可以做一个缩放 每件物品和/权值和)。得到每件物品推荐给用户的评分。这个...原创 2018-07-14 15:51:52 · 1143 阅读 · 0 评论 -
数据挖掘十大算法(一):决策树算法 python和sklearn实现
学完到第三章——决策树,python代码实现的仅是ID3算法,sklearn为优化过的C4.5,这里做一个详细的总结包括(原理、代码、可视化、scikit-learn实现),皆为亲自实践后的感悟。以下进入正文。早前简单了解了决策树的原理,然后为了尽快使用便没有深究直接使用sklearn实现,虽然sklearn使用起来极其极其的方便,但是我还是想理解到其中的代码实现机制以及一些数学知识,所以在《...原创 2018-08-04 13:16:06 · 36303 阅读 · 5 评论 -
数据挖掘十大算法(九):朴素贝叶斯 python和sklearn实现
第三个算法终于算是稍有了解了,其实当你结合数据了解了它的实现原理后,你会发现确实很朴素。这里对朴素贝叶斯算法做一个介绍和总结,包括(原理、一个代码示例、sklearn实现),皆为亲自实践后的感悟,下面进入正文。原理:首先我们需要了解概率论的一些简单知识:最后推导出的就是贝叶斯公式,这里说一下我的感悟:上面的公式如果就这样不结合数据来看,是很容易理解的,我用了几分钟便了解了这个高中学...原创 2018-08-08 12:46:38 · 16972 阅读 · 1 评论 -
数据挖掘经典算法:Logistic(逻辑回归) python和sklearn实现
Logistic虽然不是十大经典算法之一,但却是数据挖掘中常用的有力算法,所以这里也专门进行了学习,以下内容皆为亲自实践后的感悟和总结(Logistic原理、代码实现和优化、真实样例数据、sklearn实现)。为了记录的比较清楚,所以内容可能有点多,但都比较浅显,下面进入正文。(运算数据来自机器学习第5章)Logistic原理:大体的思路:为了实现Logistic回归分类器,我们可以在每个...原创 2018-08-12 17:24:08 · 36220 阅读 · 4 评论 -
sklearn——朴素贝叶斯
以下文章为一位博主翻译自某篇官方文档,在此引用:在scikit-learn中,提供了3中朴素贝叶斯分类算法:GaussianNB(高斯朴素贝叶斯)、MultinomialNB(多项式朴素贝叶斯)、BernoulliNB(伯努利朴素贝叶斯)简单介绍:高斯朴素贝叶斯:适用于连续型数值,比如身高在160cm以下为一类,160-170cm为一个类,则划分不够细腻。多项式朴素贝叶斯:常用于文...转载 2018-08-08 12:34:52 · 6643 阅读 · 0 评论 -
数据挖掘十大算法(三):支持向量机SVM sklearn实现
今天进入了支持向量机(SVM)的学习,如果只是对支持向量机的表面理论了解,那么还算不是太难。但是对于里面的数学推导真的不是一两天能看懂的(尤其是我这种数学功底不是很强的),使用编码实现数学推导的一系列过程也不是那么好理解的。由于时间关系,直接学习sklearn中SVM的使用,以后有时间再更新对支持向量机深入的了解。主要关于SVC和LinearSVC的翻译,有疑惑的地方可以查看最下面官方文档,自...原创 2018-08-15 17:53:17 · 2204 阅读 · 0 评论 -
数据挖掘十大算法(十):CART(分类回归树)
本文记录一下关于CART的相关知识其中包括(回归树、树的后剪枝、模型树、树回归模型的预测(树回归模型的评估))。在之前学习完ID3算法有记录一篇相关的学习笔记,所以后面学习CART算法能有一个比较和熟悉的理解。 贪心算法的决策树,构建算法是ID3,即通过香农熵计算数据的混乱程度,然后求出信息增益,每次选择最大信息增益的划分方式,作为当前的划分方式,直到数据集完成划分,被划分过的特征在之后...原创 2018-08-26 13:45:35 · 10197 阅读 · 1 评论 -
自然语言处理库TfidfVectorizer(CountVectorizer与TfidfTransformer的结合)
这里简单介绍下scikit-learn自然语言文本处理的一个开源方法——TfidfVectorizer,该方法分别是由两种方法 CountVectorizer 与 TfidfTransformer 的结合,下面进行说明,说明之前给出三个文档链接(本文基本翻译自官方文档):(文档在手天下我有,有问题看文档)方法一:TfidfVectorizer方法二:CountVectorizer、T...原创 2018-12-13 14:32:43 · 12169 阅读 · 4 评论