数据库分析的架构
我们有一个体系结构,我们为他们的网站(Internet Merchant)提供每个类似客户智能的服务.现在,我需要在内部分析这些数据(以进行算法改进,性能跟踪等),这些数据可能很重:我们有多达数百万的行/客户/天,我可能想知道多少疑问我们在上个月,每周比较等等……这是数十亿条参赛作品的顺序. 当前完成的方式是非常标准的:每日脚本扫描数据库并生成大型CSV文件.我不喜欢这种解决方案,原因有几个: 作为典型的脚本,它们属于写入和从未触摸的类别 在"实时"中跟踪事物是必要的(我们有单独的工具集可以查询最近几个小时的ATM). 这是缓慢而非"敏捷" 尽管我在处理科学用法的大量数据集方面有一些经验,但就传统的RDBM而言,我是一个完整的初学者.似乎使用面向列的数据库进行分析可能是一个解决方案(分析不需要我们在应用程序数据库中拥有的大多数数据),但是我想知道此类问题还有哪些其他选项. 解决方案 您将需要Google star starme .基本思想是对现有OLTP系统
4 2024-01-26
编程技术问答社区
如何分析一个稀疏的邻接矩阵?
我正在研究大多数细胞为零的稀疏邻接矩阵,而在这里和这里的某些细胞之间,两个细胞之间的每个关系都具有多项式描述,可以很长,并且他们的分析手动耗时.我的教练是根据gröbnerBases提出纯粹的代数方法分析稀疏的邻接矩阵?是否存在一些数据挖掘工具来分析它们? 解决方案 多元多项式计算,Gröbner基础是一个主动研究领域.在1991年,可可分析. se正在收集很棒的材料,例如 m2中的GR计算分析 - 书籍中概述的示例和不同的答案.对于稀疏的矩阵,存在稀疏的矩阵算法,该算法构建了GR基础,例如找到更多信息时更新此信息!
6 2024-01-26
编程技术问答社区
拟议的文本标记的NLP算法
我正在寻找OpenSource工具,可以帮助您识别社交媒体上任何用户帖子的tags,并在该帖子上识别主题/非主题或垃圾邮件评论.即使在寻找一整天之后,我也找不到任何合适的工具/库. 在这里,我提出了自己的算法,用于标记属于7个类别的用户帖子(作业,讨论,事件,文章,服务,购买/出售,才华). 最初,当用户发表帖子时,他会标记自己的帖子.标签可以像marketing, suggestion, entrepreneurship, MNC etc.因此,请考虑一些我有标签的帖子,它们属于哪个类别. 步骤: 在用户帖子上执行POS(语音的一部分)标记. 这里可以做两件事. 仅考虑名词.名词可能代表帖子的标签 我猜想 同时考虑名词和形容词.在这里我们可以收集大量 名词和形容词的数量.可以使用此类单词的频率 确定该帖子的标签. 对于每个用户定义的标签,我们将为属于特定标签的帖子收集POS.例子.考虑用户分配的标签marketing,并发布此标签的张贴包含po
0 2024-01-23
编程技术问答社区
k-means聚类算法的实现
在我的程序中,我要为k-mean算法的k = 2,即我只需要2个簇即可. 我已经以非常简单明了的方式实施,但我仍然无法理解为什么我的程序进入无限循环. 谁能指导我在哪里犯错..? 为简单起见,我在程序代码本身中获取了输入. 这是我的代码: import java.io.*; import java.lang.*; class Kmean { public static void main(String args[]) { int N=9; int arr[]={2,4,10,12,3,20,30,11,25}; // initial data int i,m1,m2,a,b,n=0; boolean flag=true; float sum1=0,sum2=0; a=arr[0];b=arr[1]; m1=a; m2=b; int cluster1[]=new int[9],cluster2[]=new int[9]; for(i=0;i
2 2024-01-23
编程技术问答社区
K-Medoid(PAM)算法的缺点
我已经研究了K-Medoid算法(PAM)是一种基于主管的聚类算法和K-Means算法的变体.它解决了K均问题,例如产生空簇和对异常值/噪声的敏感性. 然而,与K-均值(lloyd's算法)不同的时间复杂的时间复杂性为O(n^2),该算法具有O(n)的时间复杂性.我想问一下K-Medoid算法除了时间复杂性外是否还有其他缺点. 解决方案 K-Medoid算法(PAM,Clara或Clarans)的主要缺点是,它们不适合聚类非球体(任意形状)对象的基团. 这是因为它们依赖于最小化非膜对象与Medoid(群集中心)之间的距离 - 简要地,它们将紧凑性用作聚类标准而不是连接性. PAM的另一个缺点是,它可能会在同一数据集上的不同运行中获得不同的结果,因为第一个 k medoi类型是随机选择的. 除了上述缺点外,您还必须提前指定 k (簇数)的值.
8 2024-01-23
编程技术问答社区
k手段聚类算法
我想在一组10个数据点上执行k表示聚类分析,每个数据点都有一个与它们关联的4个数字值的数组.我正在使用Pearson相关系数作为距离度量.我做了K的前两个步骤,表示聚类算法是: 1)选择一组K簇的初始中心. [我随机选择了两个初始中心] 2)将每个对象分配给具有最接近中心的群集. [我将Pearson相关系数用作距离度量 - 见下文] 现在我需要帮助了解算法中的第三步: 3)计算簇的新中心: 其中x,在这种情况下为4维向量,n是群集中的数据点的数量. 我将如何计算以下数据计算C(s)? # Cluster 1 A 10 15 20 25 # randomly chosen centre B 21 33 21 23 C 43 14 23 23 D 37 45 43 49 E 40 43 32 32 # Cluster 2 F 100 102 143 212 #random chosen ce
6 2024-01-23
编程技术问答社区
对具有相似兴趣的人进行聚类的算法
我想根据他们的兴趣将人们群分组.例如.喜欢机器学习和图形的人可能会被放置在一个小组中,并且对数学和经济学等感兴趣的人可能会放在另一个小组中. 该算法应该能够根据人的利益并创建集群的利益来确定哪些人具有最匹配的兴趣.它也应该能够输出放置特定人的其他人的兴趣. 解决方案 这听起来并不是一个特别困难的聚类问题,并且任何现成的聚类算法都可能效果很好.如果您知道想要多少个簇,请尝试K-均值或K-Medoid聚类.如果您不知道有多少个簇,请尝试聚集聚类. 问题的困难部分将是功能.您提到"兴趣"可以用作群集的特征,但是功能工程和选择将始终涉及一些反复试验. 其他解决方案 没有更多问题的上下文,我真的无法给出一个明确的答案.大多数聚类算法都可以使用,问题是您的结果如何"好".我引用"良好"一词,因为您需要某种指标来衡量(通常是集群间和集群距离). 这是我被教导如何决定如何决定数据挖掘算法时给我的建议:尝试最简单的算法 - 经常被忽略但表现良好) . 要开始您,请尝试使
0 2024-01-23
编程技术问答社区
相似性矩阵->特征向量算法?
如果我们有一组m单词,并且知道每对单词的含义的相似性对于每个单词,可以通过比较它们的向量(例如获得向量的绝对差异)? 来比较每对单词? 我不知道如何调用这个特定问题.如果我知道,在具有类似描述的一堆算法中找到会更容易. 其他观察: 我认为,这种算法 在这种情况下,在这种情况下需要产生副作用.如果从矩阵中,单词a与单词B和B相似,则与C相似,但是检测到较低的[A,C]相似性,则计算出的结果向量差异也应产生较高的[A,C]相似性.因此,我们将填补矩阵中的先前空白 - 以某种方式使与此算法的相似之处平滑.但是除了这种平滑外,目标是使结果尽可能接近我们在矩阵中的原始数字. 解决方案 您可以进行截断单数值分解(SVD)找到最佳的k-rank近似与矩阵.这个想法是将矩阵分解为三个矩阵:u,sigma和v,因此u和v是正直的,sigma是对角线的. 通过截断不重要的单数值,您可以实现O(k*m)存储空间. 其他解决方案 如果您仅对第一个特征向量 +特征值感兴趣
4 2024-01-23
编程技术问答社区
寻找集群的中心
我有以下问题 - 使抽象提出关键问题. 我有10分,与另一个距离一定距离.我想 能够找到群集的中心,即成对距离彼此的点的点, 令P(j)〜p(k)表示成对距离beteen点J和K p(i)是群集的中心点IFF P(i)S.T.对于所有0 一旦群集中的数据点数量超过某个阈值t. ,确定如何将群集分为两个簇 这不是欧几里得空间.但是距离可以概括如下-p(i)是点I: p(1) p(2) p(3) p(4) p(5) p(6) p(7) p(8) p(9) p(10) p(1) 0 2 1 3 2 3 3 2 3 4 p(2) 2 0 1 3 2 3 3 2 3 4 p
2 2024-01-23
编程技术问答社区
具有离散和连续属性的聚类算法?
有人知道在离散属性和连续属性上执行聚类的好算法吗?我正在研究一个问题,即确定一组相似客户,每个客户都具有离散和连续属性(想想客户类型,该客户产生的收入,地理位置等等.) ) 传统上算法(例如K-均值或EM)为连续属性工作,如果我们有连续和离散属性的混合物怎么办? 解决方案 如果我没记错的话,那么cobweb算法可以与离散属性一起使用. 您还可以对离散属性进行不同的"技巧"以创建有意义的距离指标. 您可以使用Google进行分类/离散属性的聚类,这是第一个命中之一:其他解决方案 r是聚类的绝佳工具 - 标准方法是使用 daisy ,然后使用 agnes . 其他解决方案 您也可以看亲和力传播可能是一种可能的解决方案. 但是要克服连续/离散的困境,您需要定义一个值重视离散状态的函数.
0 2024-01-23
编程技术问答社区
通过每两点之间的距离将点分组的高效算法
我正在寻找以下问题的有效算法: 在2D空间中给定一组点,其中每个点由其x和y坐标定义.需要将这组点分为一组群集,以便如果两个任意点之间的距离少于某个阈值,则这些点必须属于同一群集: 换句话说,这样的群集是一组"足够接近"的点. 幼稚算法看起来像这样: 让 r 成为簇的列表,最初为空 让 p 成为点列表,最初包含所有点 从 p 中选择随机点,并创建一个群集 c 仅包含此点.从 p 删除这一点 每个点 pi 来自 p 4a.每个点 PC 来自 c 4AA.如果距离(PI,PC),则将 pi 添加到 c 中,然后从 p 如果在步骤4中将至少一个点添加到群集 c ,请转到步骤4 添加群集 c 列表 r .如果 p 不是空的,请转到步骤3 但是,天真的方法非常效率低下.我想知道这个问题是否有更好的算法? P.S.我不知道簇的数量apriori 解决方案 这里有一些经典算法: 层次结构聚类 dbscan 您应该阅读和理解. 其
2 2024-01-23
编程技术问答社区
期望最大化抛硬币的例子
我最近一直在自我研究期望最大化,并在此过程中抓住了一些简单的例子: PDF 抛弃时,有3个硬币0、1和2,p0,p1和p2概率降落在头上.将硬币0抛弃,如果结果是头部,则抛硬币1三倍,三倍2次.硬币1和2产生的观察到的数据就是这样:HHH,TTT,HHH,TTT,HHH.隐藏数据是硬币0的结果.估计P0,P1和P2. http://ai.stanford.edu/chuong.edu/~chuong/~chuong/ppapers/papers/papers/em_tutorial. PDF 抛弃时,有两个硬币A和B,PA和PB是头部降落的概率.每个回合,随机选择一枚硬币,然后将其扔10次,然后记录结果.观察到的数据是这两个硬币提供的折腾结果.但是,我们不知道选择哪种硬币进行特定的回合.估计PA和PB. 虽然我可以获得计算,但我无法将它们解决的方式与原始EM理论联系起来.具体来说,在两个示例的M步长期间,我看不出它们是如何最大化任何东西的.似乎他们正在重新计算参数,并且
快速(< n^2)聚类算法
我有100万个5维积分,我需要将其分组为K 但是!我需要运行时间远低于n^2. n log n左右应该很好.我这样做的原因是要避免计算所有n个点的距离矩阵(这需要n^2次或多个小时),而是我只想计算簇之间的距离. 我尝试了pycluster k均值算法,但很快意识到它太慢了.我还尝试了以下贪婪的方法: 在每个维度中将空间切成20件. (因此总共有20^5件).根据他们的质心,我将在这些网格箱中存储簇. 对于每个点,取回在R(最大边界球半径)内的网格箱.如果有足够的群集,请将其添加到该群集中,否则将成为一个新的群集. 但是,这似乎给了我比我想要的更多的集群.我还实施了与此相似的方法,他们给出了非常不同的答案. 是否有比N^2时间更快的标准方法?概率算法是可以的. 解决方案 考虑一个近似最近的邻居(ANN)算法或局部性敏感的哈希(lsh).他们没有直接解决聚类问题,但是他们将能够告诉您哪些点彼此"接近".通过更改参数,您可以根据需要定义接近的距离.而且
2 2024-01-23
编程技术问答社区
K-Medoids / K-Means算法。两个或多个聚类代表之间的距离相等的数据点
我一直在研究和研究基于分区的聚类算法(例如K-均值和K-摩托车).我了解到,与K-均值相比,K-Medoids对离群值更强大.但是,我很好奇,如果在数据点分配过程中会发生什么,两个或多个集群代表在数据点上具有相同的距离.您将分配哪个群集?数据分配指向群集会极大地影响群集结果吗? 解决方案 防止发生坏事发生(无限循环等)始终更喜欢群集,该点已经分配给绑定时.
2 2024-01-23
编程技术问答社区
mlpy-动态时间扭曲取决于x?
我试图获得DTW下面显示的这两个阵列之间的距离. 我使用的是Python mlpy提供 的软件包 dist, cost, path = mlpy.dtw_std(y1, y2, dist_only=False) 我知道DTW确实会照顾"转移".另外,从上面可以看出,mlpy.dtw_std()仅采用2个1D阵列.因此,我希望无论我如何离开/右移动曲线,函数返回的dist 但是,在将我的绿色曲线转移到右侧后,dist dist mlpy.dtw_std()更改! 转移前:Python mlpy.dwt_std报告dist = 14.014 转移后:Python mlpy.dwt_std报告dist = 38.078 显然,由于曲线仍然是这两条曲线,所以我不希望距离有所不同! 为什么这样?哪里出了问题? 解决方案 让我重申我所理解的内容,如果我在任何地方都错了,请纠正我.我观察到,在您的两个地块中,您的1D系列蓝色保持相同,而绿色则延伸.您如何做
0 2024-01-23
编程技术问答社区
轨迹聚类。哪种聚类方法?
作为机器学习的新手,我有一组可能具有不同长度的轨迹.我希望将它们聚集,因为其中一些是实际上是相同的路径,并且由于噪音,它们似乎似乎不同. 另外,不是所有它们的长度相同.因此,尽管轨迹A与轨迹B不同,但它是轨迹B的一部分. > 我只有一些K-means Clustering和Fuzzy N-means Clustering的知识. 我如何在两个之间进行选择?还是我应该采用其他方法? 任何考虑"遗产"的方法? (例如,在聚类之后,我有3个簇A, B and C.一个特定的trajectory X属于cluster A.尽管未在A中群集群中,但较短的trajectory Y被识别为trajectory B的一部分. ) ========================================= 上述轨迹是行人的轨迹.它们可以作为一系列(x, y)点或一系列步骤向量(length, direction)表示.演示形式在我的控制之下. 解决方案 可能有点晚
10 2024-01-22
编程技术问答社区
dbscan-设置最大集群跨度的限制
通过我对DBSCAN的理解,您有可能指定100米的epsilon,并且因为DBSCAN考虑了密度可达性和不是 直接密度可及时性在找到簇时 - 最终以一个群集,其中任何两个点之间的最大距离> 100米.在更极端的可能性中,您似乎可以将100米的Epsilon设置为1公里的簇: 在Scikit Learn的这一数组中,请参见[2] [6]何时发生. (我愿意被告知我是个白痴,如果在这里发生的事情,我会误解DBSCAN.) 是否有一种基于密度的算法,例如dbscan,但要考虑到群集中任意两个点之间的最大距离的某种阈值? 解决方案 dbscan确实没有对集群施加总尺寸约束. 最好将epsilon值解释为分隔两个簇的间隙的大小(最多可能包含minpts-1对象). 我相信,您实际上甚至没有寻找聚类:聚类是发现数据结构的任务.该结构可以更简单(例如K-均值)或复杂(例如由分层聚类和K-均值发现的任意形状的簇). 您可能正在寻找向量量化 - 将数据集简化为较小的代表 -
0 2024-01-22
编程技术问答社区
如何找到一个数据点集群的中心?
假设我在过去一年中每天绘制了直升机的位置,并提出了以下地图: 任何对此进行的人都可以告诉我,这架直升机位于芝加哥. 如何在代码中找到相同的结果? 我正在寻找这样的东西: $geoCodeArray = array([GET=http://pastebin.com/grVsbgL9]); function findHome($geoCodeArray) { // magic return $geoCode; } 最终生成这样的东西: 更新:示例数据集 这是一个带有示例数据集的地图: > 这是150个地理码的粘贴: http://pastebin.com/grvsbgl9 以上包含150个地理编码.前50个是在芝加哥附近的几个集群中.其余的散布在全国各地,包括纽约,洛杉矶和旧金山的一些小集群. 我有大约一百万个(认真的)数据集,我需要迭代并确定最可能的"家".非常感谢您的帮助. 更新2:飞机切换到直升机 飞机概
2 2024-01-22
编程技术问答社区
有没有一种好的方法来进行这种类型的开采?
我正在尝试找到x和y方向最接近空间的点(最后给出的示例数据集),并希望查看是否有比我的琐碎(未经测试的)方法更聪明的方法.这些点在太空中的绘图看起来像以下内容,并且正在尝试查找框中标记的一组点,即我正在寻找的输出是一组组: Group 1: (1,23), (2,23), (3,23)... Group 2: (68,200), (68,201), (68,203), (68,204), (68,100), (68,101), (68,101)... 对于水平频段,我认为我可以继续使用5或10的小滑动窗口(应从哪个尺寸的全局信息中确定最大分组点,但我是我是仍然探索一种良好的方法)并搜索连续点,因为断裂将不再被视为水平频段. 我猜想同样的方法也适用于垂直带,但在所有情况下都不适用,因为水平和垂直频段存在细微的差异:要点应接近水平视为一组,但它们可以在任何地方看起来都在任何地方被认为是垂直带的一部分.观察图中的大垂直带.因此,我猜想我可以寻找具有相同x坐标的点(在这种情况下,
0 2024-01-22
编程技术问答社区