Questions tagged «clustering»

聚类分析或聚类是将一组对象进行分组的任务,以使同一组(称为聚类)中的对象(在某种意义上或彼此)比其他组(聚类)中的对象更相似。它是探索性数据挖掘的主要任务,也是统计数据分析的常用技术,广泛用于机器学习,模式识别,图像分析,信息检索等领域。

2
通过useragent,ip,session_id聚集唯一身份访问者
在满足session_id, ip, user_agent以下条件的情况下,给定形式为的网站访问数据,以及可选的时间戳记,请按照以下条件进行操作,如何最好地将会话归类为唯一身份访问者? session_id:是给每个新访客的ID。它不会过期,但是如果用户不接受cookie /清除cookie /更改浏览器/更改设备,则将不再识别他 IP 可以在不同的用户之间共享(想像一个免费的Wi-Fi咖啡馆,或者您的ISP重新分配IP),他们通常会至少拥有2个家庭和工作场所。 User_agent是浏览器+操作系统版本,可区分设备。例如,用户可能同时使用手机和笔记本电脑,但不太可能使用Windows + Apple笔记本电脑。同一会话ID不可能有多个用户代理。 数据可能看起来像这里的小提琴:http ://sqlfiddle.com/#!2/ c4de40/1 当然,我们在谈论假设,但这是在尽可能接近现实。例如,如果我们在有限的时间内遇到具有不同session_id的相同ip和useragent,则可以合理地假设它是同一用户,但有一些例外情况。 编辑:解决问题的语言是反讽的,它主要是关于逻辑而不是实现。伪代码很好。 编辑:由于小提琴的缓慢性质,您可以选择读取/运行mysql: select session_id, floor(rand()*256*256*256*256) as ip_num , floor(rand()*1000) as user_agent_id from (select 1+a.nr+10*b.nr as session_id, ceil(rand()*3) as nr from (select 1 as nr union all select 2 union all select 3 union all select …
15 clustering 

2
使用属性来分类/集群用户配置文件
我有一个用户从网站购买产品的数据集。 我具有的属性是用户ID,用户的地区(州),产品的类别ID,产品的关键字ID,网站的关键字ID和产品的销售金额。 目的是使用产品和网站的信息来识别用户的身份,例如“年轻的男性玩家”或“待在家里的妈妈”。 我附上了一个示例图片,如下所示: 产品共有1940个唯一类别和13845个唯一关键字。对于该网站,有13063个唯一关键字。整个数据集非常庞大,因为这是每日的记录数据。 我正在考虑聚类,因为它们是无监督的,但是这些id是没有数字含义的有序数字。然后我不知道如何应用该算法。我也在考虑分类。如果我根据购买的产品的销售额添加一列类。我认为群集是更可取的。我不知道在这种情况下应该使用哪种算法,因为关键字id的尺寸可能会超过10000(每个产品可能有很多关键字,网站也是如此)。我需要在该项目中使用Spark。 有人可以帮我一些想法或建议吗? 非常感谢!

2
快速的k均值算法,例如10 ^ 10分?
我正在寻找在一组10维点上进行k均值聚类的方法。问题是:有10 ^ 10分。 我只是在寻找最大群集的中心和大小(假设10到100个群集);我不在乎每个点最终会聚在什么簇上。专门使用k均值并不重要;我只是在寻找类似的效果,任何近似的k均值或相关算法都很好(minibatch-SGD表示,...)。由于GMM在某种意义上与k均值存在相同的问题,因此在相同大小的数据上执行GMM也很有趣。 在这种规模下,对数据进行二次采样可能不会显着改变结果:使用第1/10000个数据样本查找相同的前10个聚类的几率非常高。但是即使那样,这仍然是一个10 ^ 6的问题,超出了易处理的范围。

1
识别模糊记号序列中的语法
我有一些文本文档,其中主要包含项目列表。 每个项目都是一组不同名称的多个标记:名字,姓氏,出生日期,电话号码,城市,职业等。标记是一组单词。 项目可以位于多行上。 文档中的项目具有大致相同的令牌语法,但不一定必须完全相同。 它们可能是项目之间以及项目内部的更多/更少标记。 FirstName LastName BirthDate PhoneNumber Occupation City FirstName LastName BirthDate PhoneNumber PhoneNumber Occupation City FirstName LastName BirthDate PhoneNumber Occupation UnrecognizedToken FirstName LastName PhoneNumber Occupation City FirstName LastName BirthDate PhoneNumber City Occupation 目的是识别所使用的语法,例如 Occupation City 最后找出所有项目,甚至认为它们不完全匹配。 为了简短易懂,让我们改用一些别名A,B,C,D ...来指定这些标记类型。 例如 A B C D F A B C …

1
根据2个功能和事件时间序列对客户进行分类
在设计算法的下一步时,我需要帮助。 由于NDA的原因,我无法透露太多,但我会尽量做到通俗易懂。 基本上,在算法中经过几个步骤之后,我得到了: 对于我拥有的每个客户及其一个月内发生的事件,在第一步中,我将事件分为几类(每位客户将事件分为从1到x等于1到25之间的x的类别,通常,第一类别的事件密度高于其他类别。 我为每个类别和客户创建了一个时间序列,汇总每小时每小时的事件(获取完成这些事件的时间的模式)。我还使用了一些归一化变量,这些变量基于一个人在一个月(30天)内执行至少一个事件的天数,以及在一个事件中至少发生一个事件的天数中至少发生一个事件的天数事件(汇总所有群集)。第一个给了我一个月客户活跃度的比率,第二个给了这个类别与其他类别的权重。 决赛桌看起来像这样 |*Identifier*| *firstCat* | *feature1* | *feature2* | { *(TIME SERIES)* } CustomerID | ClusterID | DaysOver30 | DaysOverTotal | Events9AM Events10AM ... xx | 1 | 0,69 | 0,72 | 0,2 0,13 ... xx | 2 | 0,11 | 0,28 | 0,1 0,45 ... …

1
MinHashing vs SimHashing
假设我有五组要聚类。我了解SimHashing技术在这里描述: https://moultano.wordpress.com/2010/01/21/simple-simhashing-3kbzhsxyg4467-6/ 可能产生三个集群({A},{B,C,D}和{E}),举例来说,如果其结果是: A -> h01 B -> h02 C -> h02 D -> h02 E -> h03 同样,MMDS书籍的第3章中介绍了MinHashing技术: http://infolab.stanford.edu/~ullman/mmds/ch3.pdf 如果其结果是,也可以产生相同的三个聚类: A -> h01 - h02 - h03 B -> h04 - h05 - h06 | C -> h04 - h07 - h08 | D -> h09 - h10 - …

1
我应该使用多少个LSTM细胞?
是否有关于我应使用的LSTM电池的最小,最大和“合理”数量的经验法则(或实际规则)?具体来说,我与TensorFlow和property 有关的BasicLSTMCell有关num_units。 请假设我有以下定义的分类问题: t - number of time steps n - length of input vector in each time step m - length of output vector (number of classes) i - number of training examples 例如,训练示例的数量应该大于: 4*((n+1)*m + m*m)*c c单元数在哪里?我基于此:如何计算LSTM网络的参数数量?据我了解,这应该给出参数的总数,该总数应少于训练示例的数量。
12 rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

1
连续在线集群识别的解决方案?
让我向您展示一个假设的在线集群应用程序的示例: 在时间n,点1,2,3,4被分配给蓝色群集A,点b,5,6,7被分配给红色群集B。 在时间n + 1,引入了新的点a,该点被分配给蓝色聚类A,但也导致点b也被分配给蓝色聚类A。 最后,点1,2,3,4,a,b属于A,点5,6,7属于B。对我来说,这似乎是合理的。 乍一看似乎很简单,实际上有点棘手-要跨时间步长维护标识符。让我尝试通过更多边界示例来阐明这一点: 绿点将导致两个蓝色和两个红色点合并为一个簇,我任意决定将其着色为蓝色-请注意,这已经是我在工作中的启发性思维! 做出此决定的计算机将必须使用规则。例如,当点合并到群集中时,群集的身份由多数决定。在这种情况下,我们将面临平局-蓝色和红色可能是新(此处为蓝色)群集的有效选择。 想象一下靠近绿色的第五个红色点。然后大多数将是红色(3红色vs 2蓝色),因此红色将是新群集的一个不错的选择-但这将与最右边群集的红色的更清晰选择相矛盾,因为那些群集是红色的,可能应该保持这种状态。 我觉得这很可疑。归根结底,我想这还没有完美的规则-启发式优化了某些稳定性标准。 这最终导致我的问题: 这个“问题”是否具有可以引用的名称? 是否有“标准”的解决方案,并... ...甚至可能有R包吗? 重复聚类中聚类身份的合理继承

4
在文本处理中使用群集
嗨,这是我在数据科学堆栈中的第一个问题。我想创建一种文本分类算法。假设我有大量的文字和文章。可以说大约5000篇纯文本。我首先使用一个简单的函数来确定所有四个及以上字符词的频率。然后,我将其用作每个训练样本的功能。现在,我希望我的算法能够根据训练集的特征对训练集进行聚类,这是文章中每个单词的出现频率。(请注意,在此示例中,每篇文章将具有其自己的独特功能,因为每篇文章具有不同的功能,例如,一篇文章有​​10个“水”和23个“纯”,另一个则有8个“政治”和14个“杠杆”)。您能否为该示例建议最佳的聚类算法?

3
最佳科学计算语言[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 似乎大多数语言都具有一定数量的科学计算库。 Python有 Scipy Rust 有 SciRust C++有几个包括ViennaCL和Armadillo Java具有Java Numerics和Colt其他几个 且不说像语言R和Julia明确的科学计算而设计。 有这么多种选择,您如何选择适合任务的最佳语言?另外,哪种语言的性能最高?Python并且R似乎在该领域具有最大的吸引力,但从逻辑上讲,编译语言似乎是一个更好的选择。会有什么表现胜过Fortran?此外编译语言往往有GPU加速,而解释性语言如R并Python没有。选择一种语言时应该考虑什么?哪些语言可以在效用和性能之间取得最佳平衡?还有我错过的具有重要科学计算资源的语言吗?
10 efficiency  statistics  tools  knowledge-base  machine-learning  neural-network  deep-learning  optimization  hyperparameter  machine-learning  time-series  categorical-data  logistic-regression  python  visualization  bigdata  efficiency  classification  binary  svm  random-forest  logistic-regression  data-mining  sql  experiments  bigdata  efficiency  performance  scalability  distributed  bigdata  nlp  statistics  education  knowledge-base  definitions  machine-learning  recommender-system  evaluation  efficiency  algorithms  parameter  efficiency  scalability  sql  statistics  visualization  knowledge-base  education  machine-learning  r  python  r  text-mining  sentiment-analysis  machine-learning  machine-learning  python  neural-network  statistics  reference-request  machine-learning  data-mining  python  classification  data-mining  bigdata  usecase  apache-hadoop  map-reduce  aws  education  feature-selection  machine-learning  machine-learning  sports  data-formats  hierarchical-data-format  bigdata  apache-hadoop  bigdata  apache-hadoop  python  visualization  knowledge-base  classification  confusion-matrix  accuracy  bigdata  apache-hadoop  bigdata  efficiency  apache-hadoop  distributed  machine-translation  nlp  metadata  data-cleaning  text-mining  python  pandas  machine-learning  python  pandas  scikit-learn  bigdata  machine-learning  databases  clustering  data-mining  recommender-system 

1
Hartigan-Wong k-means方法和其他算法的收敛性
我一直试图理解主要stats在R语言包中实现的不同的k均值聚类算法。 我了解劳埃德(Lloyd)算法和麦昆(MacQueen)的在线算法。我对它们的理解如下: 劳埃德算法: 最初选择“ k”个随机观测值作为“ k”簇的质心。然后,以下步骤迭代进行,直到质心收敛。 计算每个观测值与所选质心之间的欧几里得距离。 最接近每个质心的观测值标记在“ k”桶中。 每个存储桶中所有观测值的平均值用作新的质心。 新的质心取代了旧的质心,如果旧的和新的质心尚未收敛,则迭代返回到步骤1。 收敛的条件如下:旧质心和新质心完全相同,质心之间的差异很小(约为10 ^ -3)或达到最大迭代次数(10或100)。 麦昆的算法: 这是一个在线版本,其中第一个“ k”实例被选为质心。 然后,根据哪个质心最接近该实例,将每个实例放置在存储桶中。重新计算各个质心。 重复此步骤,直到将每个实例放置在适当的存储桶中。 此算法只有一次迭代,并且循环针对“ x”个实例进行 Hartigan-Wong算法: 将所有点/实例分配给随机存储桶并计算相应的质心。 从第一个实例开始,找到最近的质心并装配该铲斗。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心 遍历所有点并获得新的质心。 对点2和3进行第二次迭代,这将执行某种清理操作并将杂散点重新分配给正确的存储桶。 因此,该算法执行2次迭代,然后才能看到收敛结果。 现在,我不确定在Hartigan-Wong算法的第4点中我认为的方法是否正确。我的问题是,Hartigan-Wong的以下方法是否是实现k-means的正确方法?此方法只有两次迭代吗?如果不是,收敛的条件是什么(何时停止)? 我了解的另一个可能的实现说明是。 将所有点/实例分配给随机存储桶并计算相应的质心。 从第一个实例开始,找到最近的质心并分配该存储桶。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心。 一旦存储桶中的任何点发生更改,请回到第一实例并再次重复这些步骤。 当所有实例都被迭代且所有点均未更改存储桶时,迭代结束。 这样,每次实例更改存储桶时,都会从数据集的开头一次又一次地进行很多迭代。 任何说明都将有所帮助,如果我对这些方法中的任何一种理解有误,请告诉我。
10 r  clustering  k-means 

3
日志文件分析:从值部分中提取信息部分
我正在尝试在我们产品之一的多个日志文件上构建数据集。 不同的日志文件具有各自的布局和内容。我成功地将它们分组在一起,只剩下一步了... 确实,日志“消息”是最好的信息。我没有所有这些消息的完整列表,并且基于这些消息进行硬编码是一个坏主意,因为该列表每天都可能更改。 我想做的是将标识文本与值文本分开(例如:“ Loaded file XXX”变成(标识:“ Loaded file”,值:“ XXX”))。不幸的是,该示例很简单,并且在现实世界中存在不同的布局,有时还有多个值。 我当时在考虑使用字符串内核,但它是为了集群化而设计的……cluseting在这里不适用(我不知道各种类型的消息的数量,尽管那会太多)。 你有什么主意吗? 谢谢你的帮助。 PS:对于那些编程的人,这可能更容易理解。假设该代码包含printf(“ blabla%s”,“ xxx”)->我希望将“ blabla”和“ xxx”分开

1
集群存储在ElasticSearch中的客户数据
我在弹性搜索集群中存储了一堆客户资料。这些配置文件现在用于为我们的电子邮件订阅创建目标组。 现在,目标群体是通过使用Elasticsearch多面搜索功能手动形成的(例如,让所有23岁的男性顾客拥有一辆汽车和3个孩子)。 如何使用数据科学,机器学习,集群或其他方法自动搜索有趣的组? r编程语言似乎是完成此任务的好工具,但我无法形成这种群体搜索的方法。一种解决方案是以某种方式找到最大的客户群并将其用作目标组,因此问题是: 如何自动选择相似客户的最大集群(按目前尚不知道的参数相似)? 例如:我的程序将连接到elasticsearch,将客户数据卸载到CSV,然后使用R语言脚本将发现很大一部分客户是没有孩子的男性,而另一大部分客户是汽车,并且眼睛是棕色。

2
使用从潜在Dirichlet分配派生的主题对文档进行聚类
我想将Latent Dirichlet Allocation用于项目,并且将gensim库与Python一起使用。找到主题之后,我想使用诸如k-means之类的算法对文档进行聚类(理想情况下,我想对重叠的聚类使用一个好的聚类,因此欢迎提出任何建议)。我设法得到了主题,但它们的形式为: 0.041 *部长+ 0.041 *按键+ 0.041 *瞬间+ 0.041 *有争议的+ 0.041 *总理 为了应用聚类算法并在错误的情况下纠正我,我相信我应该找到一种使用tfidf或word2vec将每个单词表示为数字的方法。 您是否对如何从列表中“剥离”文本信息有什么想法,然后再放回它们以进行适当的乘法? 例如,如果我看到“部长”一词的tfidf权重为0.042,以此类推,那么对于同一主题内的任何其他单词,我应该这样计算: 0.041 * 0.42 + ... + 0.041 * tfidf(Prime)并获得稍后将用于聚类结果的结果。 感谢您的时间。

4
建议文本分类器训练数据集
我可以使用哪些免费数据集来训练文本分类器? 我们正在尝试通过向用户推荐最相关的内容来增强用户的参与度,因此我们认为,如果我们根据预定义的单词袋对内容进行分类,那么我们可以通过获取用户对已经分类的随机帖子数量的反馈来向其推荐内容之前。 我们可以使用此信息为他推荐标有这些类别的豆类。但是我们发现,如果使用与内容无关的预定义词袋,则特征向量将充满零,类别也可能与内容不相关。因此出于这些原因,我们尝试了另一种解决方案,该解决方案将内容分类而不是对其进行分类。 谢谢 :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.