标签: data-mining

最好的聚类算法?(简单解释)

想象一下以下问题:

  • 你有一个数据库,在一个名为"文章"的表中包含大约20,000个文本
  • 您希望使用聚类算法连接相关的文件,以便一起显示相关文章
  • 算法应该做平面聚类(不是分层)
  • 相关文章应插入表"相关"
  • 聚类算法应根据文本决定两篇或多篇文章是否相关
  • 我想用PHP编写代码,但伪代码或其他编程语言的例子也可以

我用函数检查()编写了第一个草稿,如果两个输入文章是相关的则给出"true",否则给出"false".其余的代码(从数据库中选择文章,选择要比较的文章,插入相关的文章)也是完整的.也许你也可以改善休息.但对我来说重要的要点是函数check().因此,如果您可以发布一些改进或完全不同的方法,那将是很棒的.

方法1

<?php
$zeit = time();
function check($str1, $str2){
    $minprozent = 60;
    similar_text($str1, $str2, $prozent);
    $prozent = sprintf("%01.2f", $prozent);
    if ($prozent > $minprozent) {
        return TRUE;
    }
    else {
        return FALSE;
    }
}
$sql1 = "SELECT id, text FROM articles ORDER BY RAND() LIMIT 0, 20";
$sql2 = mysql_query($sql1);
while ($sql3 = mysql_fetch_assoc($sql2)) {
    $rel1 = "SELECT id, text, MATCH (text) AGAINST ('".$sql3['text']."') AS score FROM articles WHERE MATCH (text) AGAINST ('".$sql3['text']."') AND …
Run Code Online (Sandbox Code Playgroud)

algorithm text cluster-analysis data-mining text-mining

19
推荐指数
2
解决办法
9942
查看次数

如何在时间序列数据上执行K-means聚类?

如何进行K-means聚类时间序列数据?我理解当输入数据是一组点时它是如何工作的,但我不知道如何用1XM聚类时间序列,其中M是数据长度.特别是,我不确定如何更新时间序列数据的集群平均值.

我有一组标记时间序列的,我想用K-means算法来检查我是否会得到一个类似的标签或没有.我的X矩阵将是NXM,其中N是时间序列的数量,M是如上所述的数据长度.

有谁知道如何做到这一点?例如,我如何修改这个k-means MATLAB代码,以便它适用于时间序列数据?此外,我希望能够使用欧几里德距离以外的不同距离指标.

为了更好地说明我的疑虑,这里是我为时间序列数据修改的代码:


% Check if second input is centroids
if ~isscalar(k) 
    c=k;
    k=size(c,1);
else
    c=X(ceil(rand(k,1)*n),:); % assign centroid randomly at start
end

% allocating variables
g0=ones(n,1); 
gIdx=zeros(n,1);
D=zeros(n,k);

% Main loop converge if previous partition is the same as current
while any(g0~=gIdx)
%     disp(sum(g0~=gIdx))
    g0=gIdx;
    % Loop for each centroid
    for t=1:k
        %  d=zeros(n,1);
        % Loop for each dimension
        for s=1:n
            D(s,t) = sqrt(sum((X(s,:)-c(t,:)).^2)); 
        end
    end
    % Partition data to closest centroids
    [z,gIdx]=min(D,[],2);
    % Update …
Run Code Online (Sandbox Code Playgroud)

matlab cluster-analysis time-series data-mining k-means

19
推荐指数
1
解决办法
2万
查看次数

Matlab - PCA分析和多维数据重建

我有一个大型数据集的多维数据(132维).

我是执行数据挖掘的初学者,我想使用Matlab应用主成分分析.但是,我已经看到网上有很多功能,但我不明白它们应该如何应用.

基本上,我想应用PCA并从我的数据中获取特征向量及其相应的特征值.

在此步骤之后,我希望能够基于所获得的特征向量的选择来对我的数据进行重建.

我可以手动执行此操作,但我想知道是否有任何可以执行此操作的预定义函数,因为它们应该已经过优化.

我的初始数据如下:size(x) = [33800 132].所以基本上我有132功能(维度)和33800数据点.我想在这个数据集上执行PCA.

任何帮助或提示都可以.

matlab data-mining pca

19
推荐指数
2
解决办法
4万
查看次数

如何在大量文本中查找常用短语

我正在研究一个项目,我需要在大量文本中挑选最常见的短语.比如说我们有三个句子如下:

  • 那只狗跳过那个女人.
  • 那只狗跳进了车里.
  • 狗跳上楼梯.

从上面的例子我想提取" 狗跳 ",因为它是文本中最常见的短语.起初我想,"哦,让我们使用有序图[重复节点]":

有向图http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

编辑:道歉,我把这个图表"翻过","进入"和"向上"都犯了一个错误,所有这些都应该链接回"the".

我将维持每个节点对象中一个单词出现次数的计数("the"将是6;"dog"和"jumped",3;等等)但是尽管存在许多其他问题,但主要出现了我们添加了一些例子(请忽略坏语法:-)):

  • 狗跳上跳下.
  • 狗跳得像以前没有狗跳过.
  • 狗高兴地跳了起来.

我们现在有一个问题,因为" dog "会启动一个新的根节点(与"the"处于同一级别),我们不会将" dog jumped " 识别为现在最常见的短语.所以现在我想也许我可以使用无向图来映射所有单词之间的关系,并最终选出常用短语,但我不确定这是如何工作的,因为你失去了重要的秩序关系这些话.

那么,对于如何识别大量文本中的常用短语以及我将使用什么数据结构,任何人都有任何一般性的想法.

谢谢,本

graph text-analysis data-mining data-structures

18
推荐指数
1
解决办法
1万
查看次数

是否可以使用作者独特的"文学风格"来识别他/她作为文本的作者?

让我们想象一下,我有两个由同一个人写的英语文本.是否有可能应用一些马尔可夫链算法来分析每个:基于统计数据创建某种指纹,并比较从不同文本得到的指纹?比方说,我们有一个包含100个文本的库.有人写了第1号文字和其他一些文字,我们需要通过分析他/她的写作风格来猜测哪一个.有没有已知的算法呢?可以在这里应用马尔可夫链吗?

nlp machine-learning markov-chains data-mining

18
推荐指数
1
解决办法
4237
查看次数

估计句子之间"近似"语义相似性的好方法是什么?

在过去的几个小时里,我一直在寻找SO上的nlp标签,我相信我没有错过任何东西,但如果我这样做,请指出我的问题.

但与此同时,我将描述我想要做的事情.我在许多帖子中观察到的一个常见概念是语义相似性很难.例如,从这篇文章中,接受的解决方案建议如下:

First of all, neither from the perspective of computational 
linguistics nor of theoretical linguistics is it clear what 
the term 'semantic similarity' means exactly. .... 
Consider these examples:

Pete and Rob have found a dog near the station.
Pete and Rob have never found a dog near the station.
Pete and Rob both like programming a lot.
Patricia found a dog near the station.
It was a dog who found Pete and Rob under the snow. …
Run Code Online (Sandbox Code Playgroud)

python nlp machine-learning data-mining nltk

18
推荐指数
1
解决办法
2204
查看次数

比tf/idf和余弦相似性更好的文本文档聚类?

我正在尝试聚集Twitter流.我想把每条推文都放到一个谈论相同主题的集群中.我尝试使用具有tf/idf和余弦相似性的在线聚类算法对流进行聚类,但我发现结果非常糟糕.

使用tf/idf的主要缺点是它聚类关键字相似的文档,因此只能识别几乎相同的文档.例如,考虑以下句子:

1-网站Stackoverflow是一个不错的地方.2- Stackoverflow是一个网站.

由于它们共享许多关键字,因此预先使用两个句子可能会与合理的阈值聚集在一起.但现在考虑以下两句话:

1-网站Stackoverflow是一个不错的地方.2-我定期访问Stackoverflow.

现在通过使用tf/idf,聚类算法将会失败,因为它们只共享一个关键字,即使它们都讨论相同的主题.

我的问题:是否有更好的技术来聚类文件?

cluster-analysis machine-learning data-mining text-mining

18
推荐指数
3
解决办法
1万
查看次数

GBM R函数:为每个类分别获取变量重要性

我在R(gbm包)中使用gbm函数来拟合用于多类分类的随机梯度增强模型.我只是试图分别为每个班级获得每个预测因子的重要性,就像哈斯蒂(Hastie)书(统计学习要素)(第382页)中的这张图片一样.

在此输入图像描述

但是,该函数summary.gbm仅返回预测变量的总体重要性(它们对所有类的平均重要性).

有谁知道如何获得相对重要性值?

r classification machine-learning data-mining gbm

18
推荐指数
2
解决办法
1万
查看次数

Twitter:如何提取包含符号(!,%,$)的推文?

对于一个项目,我希望能够创建一个包含一些特定符号串的推文数据集.因为我还要去早的时间有可能,我尝试使用GetOldTweets脚本(https://github.com/Jefferson-Henrique/GetOldTweets-python这里提到):/sf/answers/2455454431/.

问题是,它无法提取包含符号作为输入的推文.实际上,人们甚至无法直接在Twitter上搜索包含所需符号的任何推文.

为了更清楚地解释问题,请考虑以下示例案例.我想提取包含字符串'!!!'的所有推文 在过去两年内.

最好的方法是什么(如果这是可行的)?

python twitter data-mining web-scraping

18
推荐指数
1
解决办法
521
查看次数

计算相似度的方法

我正在做一个社区网站,要求我计算任何两个用户之间的相似性.使用以下属性描述每个用户:

年龄,皮肤类型(油性,干性),头发类型(长,短,中),生活方式(活跃的户外爱好者,电视垃圾)等.

任何人都可以告诉我如何解决这个问题或指向我一些资源?

statistics pattern-recognition similarity data-mining social-networking

17
推荐指数
2
解决办法
9473
查看次数