
DataMining
文章平均质量分 50
人生偌只如初见
学历代表过去,财力代表现在,学习力代表将来,所见所闻改变一生,不知不觉断送一生。
展开
-
学习笔记-深度优先搜索DFS寻找有向图环路实现
一、有向图稀疏邻接矩阵结构深度优先搜索DFS寻找环路Java实现import java.util.*;import org.apache.commons.lang.StringUtils;public class DFSSparseCycle { /** 点数 */ private int vertexCount; /** 有向图的稀疏邻接矩阵 */ private int[][] sparseAdjacencyMatrix; /** 点访问状态, 0未访问 1已访问 */ pr原创 2020-10-28 14:09:00 · 1385 阅读 · 1 评论 -
推荐系统笔记-08-在线基于内容召回排序
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.4kafka-2.12-2.4.0zookeeper-3.5.6spark-streaming-kafka-0-8_2.11:2.4.42、相关表结构HBasealter 'multiple_recall', {NAME=>'online', TTL=...原创 2020-01-10 14:13:32 · 875 阅读 · 0 评论 -
推荐系统笔记-07-离线特征数据集
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关表结构HBasecreate 'ctr_user_features', 'cf'create 'ctr_article_features', 'cf'HiveCREATE EXTERNAL TABLE T_CTR_USER_FEATURES(US...原创 2020-01-08 14:53:41 · 462 阅读 · 0 评论 -
推荐系统笔记-06-CTR排序模型LR
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关Python实现# -*- coding:utf-8 -*-import osimport sysimport numpy as npfrom datetime import datetimeBASE_PATH = os.path.dirname(os...原创 2020-01-04 19:07:14 · 621 阅读 · 0 评论 -
推荐系统笔记-05-用户基于内容召回集
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关表结构HBasealter 'multiple_recall', {NAME=>'content', TTL=>2592000, VERSIONS=>9999}3、相关Python实现# -*- coding:utf-8 -*-...原创 2019-12-30 16:53:47 · 346 阅读 · 0 评论 -
推荐系统笔记-04-用户基于ALS模型召回集
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关表结构HBasecreate 'multiple_recall', {NAME=>'als', TTL=>2592000, VERSIONS=>9999}create 'history_recall', {NAME=>'chann...原创 2019-12-30 14:50:29 · 533 阅读 · 0 评论 -
推荐系统笔记-03-用户画像
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关表结构HiveCREATE TABLE T_USER_OP_LOG(USER_ID BIGINT,ARTICLE_ID STRING,CHANNEL_ID INT,OP_TYPE INT COMMENT '1 display 2 click 3 col...原创 2019-12-29 17:19:10 · 334 阅读 · 0 评论 -
推荐系统笔记-02-文章相似计算
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关表结构HIVECREATE TABLE T_ARTICLE_VECTOR(ARTICLE_ID STRING,CHANNEL_ID INT,VECTOR ARRAY<DOUBLE>)COMMENT 'article vector tabl...原创 2019-12-27 14:26:48 · 846 阅读 · 0 评论 -
推荐系统笔记-01-文章画像
1、相关环境hadoop-2.10.0hive-3.1.2hbase-2.2.2spark-2.4.42、相关Hive表结构CREATE TABLE T_CHANNEL(ID BIGINT,EN_NAME STRING,CH_NAME STRING)COMMENT 'channel table'ROW FORMAT DELIMITED FIELDS TERMI...原创 2019-12-27 14:07:28 · 390 阅读 · 0 评论 -
数据挖掘笔记-分类-决策树-MapReduce实现-1
看了一些mahout在处理决策树和随机森林的过程,大体过程是Job只有一个Mapper处理,在map方法里面做数据的转换收集工作,然后在cleanup方法里面去做决策树的创建过程。大体来说,mahout决策树的构建过程好像并没有结合分布式计算,因为我也并没有仔仔细细的去研读mahout里面的源码,所以可能是我没发现。最后生成的决策树并未保存在HDFS上面,后面有时间在考虑下吧。之前写的代码都是单机上跑的,发现现在很流行hadoop,所以又试着用hadoop mapreduce来处理下决策树的创建。原创 2014-05-28 16:13:57 · 5007 阅读 · 2 评论 -
数据挖掘笔记-聚类-Canopy-并行处理分析
Canopy并行化处理在Mahout里面有很好的实现,网上有很多人都做过相关的分析,有的写的很详细,本来只想看看Mahout Canopy源码就好了,但还是觉得自己记录下也好。我看的是mahout-distribution-0.9版本。首先先看下CanopyDriver类:run(String[] args)方法里面是一些参数的设置。public static void原创 2014-06-13 12:45:07 · 3138 阅读 · 0 评论 -
数据挖掘笔记-分类-KNN-原理与简单实现
kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。最简单平凡的分类器。kNN算法则是从训练集中找到和新数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:训练集、距离、k的大小。可用于客户流失预测、欺诈侦测等(更适合于稀有事件的分类问题)。计算步骤如下:1)计算距离:给定测试对象,计算它原创 2014-09-03 18:26:13 · 4307 阅读 · 7 评论 -
数据挖掘笔记-关联规则-FPGrowth-MapReduce实现
第二个MR的Reduce阶段过程:Reduce节点接收到从Map节点过来的数据,遍历这个频繁项对应的事务数据集,将它们构建起该频繁项的条件FP树。从条件FP树进而得到包含本频繁项的频繁项集。第二个MR的Map阶段过程:首先根据排好序的频繁一项集将事务数据排好序,然后遍历排好序的事务数据,以频繁项为键,事务数据为值传递给Reduce阶段。3、第二个MR扫描所有数据集,并根据第二步产生的排序好的频繁一项集来得出频繁项集。1、第一个MR扫描所有数据集统计数据集中的频繁一项集,即每个项的出现次数。原创 2014-06-05 17:31:03 · 3494 阅读 · 0 评论 -
数据挖掘笔记-聚类-KMeans-文档聚类
本篇主要是根据K算法实现文档集的聚类。首先是要将需要聚类的文档进行向量化处理,这里采用的是TFIDF值来表示。文档之间的距离选用的是余弦距离,后面步骤没什么变化。DBSCAN算法聚类完成之后发现结果不是很理想,于是又加入了一些特征选择算法,达到降维的目的,结果还是比较理想的。其中开方检验的效果最好。原创 2014-08-28 14:58:01 · 1407 阅读 · 0 评论 -
数据挖掘笔记-基于用户协同过滤推荐的简单实现
基于用户推荐基本思想:首先计算出其他所有用户和当前用户的相似度,然后根据计算出的相似度的高低排序,找出N个与当前用户最近最相似的邻居用户,接着在这N个邻居用户喜欢的条目中,根据邻居用户与当前用户的远近相似程度计算出每一个条目的推荐度,最后根据每一个条目的推荐度高低给当前用户推荐物品。原创 2014-12-23 00:32:58 · 1300 阅读 · 0 评论 -
数据挖掘笔记-分类-决策树-随机森林
同时每个抽取出来的数据集也不一定是包含所有特征属性,其含有的特征属性也是随机从总特征属性中随机抽取。顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类,即选举投票。b. 在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的抗噪声能力。原创 2014-05-28 15:32:26 · 1981 阅读 · 0 评论 -
数据挖掘笔记-分类-贝叶斯网络
朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。这一篇文章中,讨论贝叶斯分类中更高级、应用范围更广的一种算法——贝叶斯网络(又称贝叶斯信念网络或信念网络)。贝叶斯转载 2014-09-09 14:30:11 · 1724 阅读 · 0 评论 -
数据挖掘笔记-聚类-SpectralClustering-原理与简单实现
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。其中的最优是指最优目标函数不同,可以是Min Cut、Nomarlized Cut、Ratio Cut等。谱聚类能够识别任意形状的样本空间且收敛于全局最优解,其基本思想是利用样本数据的相似矩阵(拉普原创 2014-09-02 15:42:10 · 4036 阅读 · 0 评论 -
数据挖掘笔记-聚类-DBSCAN-网页正文提取
进行网页正文提取算法之前必须先对网页源文件代码进行预处理,过滤掉一些诸如脚本、样式、注释等元素。过滤后的网页信息不包含任何HTML标签,将每行的文本视为一个二维空间中的点Point(x,y),x表示当前行号,y表示当前行文本的字符长度。基于这些点作为基础,进行DBSCAN聚类算法。通过聚类的结果可以发现:具有相似密度如导航栏、广告栏等区域的点会成为一类,而正文文本区域的点由于文本密度高的特点,会使原创 2014-11-29 17:47:09 · 2013 阅读 · 3 评论 -
数据挖掘笔记-基于项目协同过滤推荐的简单实现
基本思想:预先根据所有用户的历史偏好数据计算项目之间的相似性,然后把与用户喜欢的项目相类似的项目推荐给用户。原创 2015-01-02 11:24:13 · 1918 阅读 · 0 评论 -
学习笔记-文本最大匹配分词
数组结构词典扫描匹配# -*- coding:utf-8 -*-import osimport sysdefault_encoding = 'utf-8'if sys.getdefaultencoding() != default_encoding: reload(sys) sys.setdefaultencoding(default_encoding)cl...原创 2019-06-14 13:51:46 · 399 阅读 · 0 评论 -
学习笔记-行政区划匹配缺失补全
简单实现功能,存在缺陷后续在处理源码链接https://github.com/fighting-one-piece/py-handle-utils/tree/master/ad_matching代码如下:# -*- coding:utf-8 -*-import osimport sysimport enumfrom maximum_matching_2 import Ma...原创 2019-06-22 20:31:12 · 914 阅读 · 0 评论 -
Python学习笔记-gensim初识Word2Vec、Doc2Vec
安装依赖工具包:pip install -U gensim安装过程中出现已经安装过的工具包冲突可以uninstall或删除Lib目录下相关包或使用:pip install -U gensim --ignore-installed scipyWord2Vec、Doc2Vec原理可以参考链接:https://blog.youkuaiyun.com/mpk_no1/article/details...原创 2019-09-08 16:26:39 · 795 阅读 · 0 评论 -
Spark学习笔记-KNN算法实现
原理可以参见:数据挖掘笔记-分类-KNN-1原创 2014-09-04 18:20:39 · 12694 阅读 · 2 评论 -
数据挖掘笔记-分类-决策树-MapReduce实现-2
下面是具体的实现代码:其中用到了JobControl来控制多Job执行,还有涉及到几个MR程序,代码未进行过整理,望见谅。4、N个小数据集的节点根据最终的最佳划分,分割自己节点上的数据,上传到HDFS,跳转到第二步。1、将一个大数据集文件拆分成N个小数据集文件,对数据做好预处理工作,上传到HDFS。3、汇总N个小数据集文件的最佳划分,投票选出最佳划分。原创 2014-05-28 16:38:12 · 2613 阅读 · 1 评论 -
数据挖掘笔记-分类-回归算法-梯度上升
基于Logistic回归和Sigmoid函数的分类,首先看下它的优缺点。优点:计算代价不高,易于理解与实现缺点:容易欠拟合,分类精度可能不高使用数据类型:数值型和标称型数据首先,我们想要的函数应该是能够接受所有的输入然后预测出类别。例如输出0或者1.或许你曾今接触过这种性质的函数,该函数称为海维塞德阶跃函数,也可以直接称为单位阶跃函数。原创 2014-06-23 17:18:30 · 4543 阅读 · 0 评论 -
数据挖掘笔记-分类-Adaboost-原理与简单实现
Adaboost(Aaptive Boosting)是一种原理简单,但很实用的有监督机器学习算法。说Boosting算法之前,先说下Bagging算法,他们两个都是把一些弱分类器组合起来进行分类的方法,统称为集成方法(Ensemble Method),虽然每个弱分类器分类的结果不那么准确,但是如果把多个弱分类器组合起来却可以得到相当不错的结果。同时集成方法还可以组合不同的分类器。Bagging原创 2014-09-18 16:09:37 · 2939 阅读 · 0 评论 -
数据挖掘笔记-特征选择-整体汇总
文本特征向量经典的向量空间模型(VSM: Vector Space Model)由Salton等人于60年代提出,并成功地应用于著名的SMART文本检索系统。VSM概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量,就可以通过计算向量之间的相似性来度量文档间的相似性。文本处理中最常用的相似性度量方式是余弦距转载 2014-08-08 17:06:37 · 8937 阅读 · 0 评论 -
数据挖掘笔记-特征选择-算法实现-1
代码托管:https://github.com/fighting-one-piece/repository-datamining.git。关于特征选择相关的知识可以参考一下连接。原创 2014-07-17 18:32:07 · 12805 阅读 · 8 评论 -
数据挖掘笔记-特征选择-遗传算法
基于遗传策略的特征选取遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群...原创 2014-08-13 13:11:13 · 12636 阅读 · 3 评论 -
数据挖掘笔记-特征选择-信息增益
除了开方检验(CHI)以外,信息增益(IG,Information Gain)也是很有效的特征选择方法。但凡是特征选择,总是在将特征的重要程度量化之后再进行选择,而如何量化特征的重要性,就成了各种方法间最大的不同。开方检验中使用特征与类别间的关联性来进行这个量化,关联性越强,特征得分越高,该特征越应该被保留。在信息增益中,重要性的衡量标准就是看特征能够为分类系统带来多少信息,带来的信息越多转载 2014-07-17 15:49:41 · 4869 阅读 · 0 评论 -
数据挖掘笔记-特征选择-开方检验
除了分类算法以外,为分类文本作处理的特征提取算法也对最终效果有巨大影响,而特征提取算法又分为特征选择和特征抽取两大类,其中特征选择算法有互信息,文档频率,信息增益,开方检验等等十数种,这次先介绍特征选择算法中效果比较好的开方检验方法。大家应该还记得,开方检验其实是数理统计中一种常用的检验两个变量独立性的方法。(什么?你是文史类专业的学生,没有学过数理统计?那你做什么文本分类?在这捣什么乱?)转载 2014-07-17 15:44:55 · 3247 阅读 · 0 评论 -
数据挖掘笔记-特征选择-期望交叉熵
期望交叉熵也称为KL距离,反映的是文本类别的概率分布和在出现了某个特征的条件下文本类别的概率分布之间的距离,具体公式表示如下其中, P(t)表示特征t在文本中出现的概率, P(ci)表示ci类文本在文本集中出现的概率, P(ci|t)表示文本包含特征t时属于类别c的概率,|c|表示类别总数。如果特征t和类别强相关,即P(ci|t)大,并且相应的P(ci)又比较小,则说明特征t对分类转载 2014-08-14 18:22:26 · 7976 阅读 · 0 评论 -
数据挖掘笔记-特征选择-互信息
互信息(Mutual Information)是一有用的信息度量,它是指两个事件集合之间的相关性。两个事件X和Y的互信息定义为:又可以表示成:其中H(X,Y)是联合熵(Joint Entropy),其定义为:H(X|Y)是条件熵(conditional entropy);x,y互信息与多元对数似然比检验以及皮尔森χ2校验有着密切的联系。 在转载 2014-07-30 18:28:05 · 6660 阅读 · 1 评论 -
数据挖掘笔记-分类-支持向量机SVM-1
SVM的简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy转载 2014-07-18 13:17:23 · 2148 阅读 · 0 评论 -
数据挖掘笔记-寻找相似文章-Python
原理在http://blog.youkuaiyun.com/fighting_one_piece/article/details/36658323原创 2014-07-17 15:01:44 · 1607 阅读 · 0 评论 -
数据挖掘笔记-情感倾向点互信息算法
点间互信息(PMI)主要用于计算词语间的语义相似度,基本思想是统计两个词语在文本中同时出现的概率,如果概率越大,其相关性就越紧密,关联度越高。两个词语word1与word2的PMI值计算公式如下式所示为:P(word1&word2)表示两个词语word1与word2共同出现的概率,即word1与word2共同出现的文档数,P(word1)与P(word2)分别表示两个词语单独出现原创 2014-10-04 12:28:31 · 39917 阅读 · 4 评论 -
数据挖掘笔记-文本情感简单判断
文本情感简单判断的过程大概如下:经过预处理后的文本,首先识别不同极性类别的特征项,通过构建好的情感词表(褒义词、贬义词)、否定词词表、程度副词词表以及反问句标记词表做相应处理,获取该条文本中每个特征项的权值,最后作求和运算,获得整段文本的情感倾向值,进而判别出情感倾向性。 文本以句子为单位,以标点符号为分割标志,将每条文本分割为N个句子,提取每个句子中的情感词,根据以下情况计算权值原创 2014-10-04 12:42:04 · 4218 阅读 · 1 评论 -
数据挖掘笔记-聚类-DBSCAN-文档聚类
本篇主要是根据DBSCAN算法实现文档集的聚类。首先是要将需要聚类的文档进行向量化处理,这里采用的是TFIDF值来表示。文档之间的距离选用的是余弦距离,后面步骤没什么变化。DBSCAN算法聚类完成之后发现结果不是很理想,后面发现将数据降维后,结果还是比较理想的。代码托管:https://github.com/fighting-one-piece/repository-datamining.git。DBSCAN算法原理可以参考。java实现代码如下。原创 2014-08-21 17:22:48 · 2188 阅读 · 0 评论 -
数据挖掘笔记-分类-决策树-ID3和C4.5
在这种情况下,处理缺少属性值的通常做法是赋予该属性的常见值,或者属性均值。C4.5算法采用信息增益率作为选择分支属性的标准,并克服了ID3算法中信息增益选择属性时偏向选择取值多的属性的不足,并能够完成对连续属性离散化是处理;构造决策树的关键步骤是分裂属性。2:用信息增益率(Information Gain Ratio)来选择属性 ,克服了用信息增益来选择属性时偏向选择值多的属性的不足。1:算法低效,在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效,尤其是在大量特征属性的数据集中。原创 2014-05-28 14:21:29 · 2679 阅读 · 6 评论