标签: data-mining

在Java中实现NaïveBayes算法 - 需要一些指导

作为学校作业,我需要实现NaïveBayes算法,我打算用Java做.

在试图理解它是如何完成的时候,我读过"数据挖掘 - 实用机器学习工具和技术"一书,其中有一节关于这个主题,但我仍然不确定阻碍我进步的一些主要观点.

由于我在这里寻求指导而不是解决方案,我会告诉你们我在想什么,我认为正确的方法,并作为回报要求更正/指导非常值得赞赏.请注意,我是NaïveBayes算法,数据挖掘和一般编程的绝对初学者,因此您可能会在下面看到愚蠢的评论/计算:

我给出的训练数据集有4个属性/特征,使用Weka(无缺失值)和一个名义类(是/否)进行数字化和标准化(在[0 1]范围内)

1)来自csv文件的数据是数字HENCE

    *鉴于属性是数字,我使用PDF(概率密度函数)公式.
      +要在java中计算PDF,我首先根据它们是在类yes还是class no中分离属性并将它们保存到不同的数组中 (array class yes and array class no)
      +然后计算sum of the values in row / number of values in that row每个类的4个属性(列)中每个属性的mean()和标准占卜
      +现在找到给定值(n)的PDF (n-mean)^2/(2*SD^2),
      +然后查找P( yes | E) P( no | E) i multiply the PDF value of all 4 given attributes and compare which is larger,表示它所属的类

在Java的temrs中,我正在使用ArrayList of ArrayListDouble 存储属性值.

最后我不确定如何获取新数据?我应该要求输入文件(如csv)或命令提示符并要求4个值吗?

我现在停在这里(确实有更多的问题),但我担心这会得到任何回应,因为它得到了多长时间.对于那些花时间阅读我的问题和评论的人,我将非常感激.

java algorithm data-mining

7
推荐指数
1
解决办法
6717
查看次数

Hadoop初学者

我正在尝试使用hadoop练习一些数据挖掘算法.我可以单独使用HDFS,还是需要使用像hive/hbase/pig这样的子项目?

hadoop data-mining

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

DBSCAN中的参数估计

我需要根据不同介词的分布(如agentive,instrumental,time,place等)找到自然发生的名词类.我尝试使用k-means聚类但帮助较少,但效果不好,我所寻找的类有很多重叠(可能是因为类的非球形形状和k-means中的随机初始化) ).

我现在正在使用DBSCAN,但我无法理解此聚类算法中的epsilon值和迷你点值.我可以使用随机值,还是需要计算它们.任何人都可以帮忙.特别是对于epsilon,至少如果我需要的话,如何计算它.

cluster-analysis data-mining dbscan

7
推荐指数
2
解决办法
7409
查看次数

R:tuneRF函数的行为不清楚(randomForest包)

stepFactortuneRF函数参数的含义感到不舒服,该函数用于调整函数中mtry进一步使用的参数randomForest.

记录tuneRF说,这stepFactor是所选择mtry的放气或膨胀的程度.显然,由于mtry是随机选择的一些变量,它必须是一个整数,但是我在网上看到了许多例子stepFactor=1.5.起初我认为R默认使用下一个mtry等于floor(mtry_current-stepFactor),但事实证明我错了.此外,我不明白显示R命令search left... search right...tuneRF正在工作.我认为这是关于膨胀或mtry缩小参数的信息,但我的假设并没有证明是正确的.

总结这个长期而不是太优雅的描述我的怀疑,我的问题是:为什么stepFactor不是整数?

如何mtry选择后续值?左/右搜索实际意味着什么?

任何帮助将非常感谢!! :)

optimization r machine-learning data-mining random-forest

7
推荐指数
1
解决办法
4048
查看次数

流数据的规范化方法

我正在使用Clustream算法,我发现我需要规范化我的数据.我决定使用min-max算法来做到这一点,但我认为通过这种方式,新的数据对象的值将以不同的方式计算,因为min和max的值可能会发生变化.你认为我是对的吗?如果是这样,我应该使用哪种算法?

machine-learning stream normalization data-mining

7
推荐指数
2
解决办法
1025
查看次数

使用mahout mapreduce计算用户相似度

我正在使用Mahout群集,我有大型群集,每个群集拥有大约10万用户,每个用户有5个功能.在下一步中,我需要计算pearson相关性以找出群集用户之间的相似性.

目前我有一个python脚本,它对我做同样的事情,但正如预期的那样,它需要长时间的计算,不再是一个可行的选择

我查看了Mahout,因为它提供了使用Pearson,Tanimoto,loglikelyhood度量来查找UserSimilarity的功能,我无法找到的是开发这些相似性度量的Mapreduce版本的方法.

是否有任何资源可以举例并解释如何开发UserSimilarity的mapreduce版本,或者使用hadoop流和相同的java类是否有意义.

编辑

即使我在群集中拥有100k用户,我也很少需要计算100k*100k矩阵.大多数时候它将是一个10k*100k的矩阵.然而,我有大约500个这样的集群,所以计算500个10k*100k集群的时间相当长,这就是我寻找更好的方法和触发讨论的原因

hadoop mapreduce cluster-analysis data-mining mahout

6
推荐指数
1
解决办法
3774
查看次数

频繁项目集和关联规则 - Apriori算法

我试图理解用于数据挖掘的Apriori(Basket)算法的基本原理,

我最好用一个例子来解释我所遇到的并发症:

这是一个事务数据集:

t1: Milk, Chicken, Beer
t2: Chicken, Cheese
t3: Cheese, Boots
t4: Cheese, Chicken, Beer
t5: Chicken, Beer, Clothes, Cheese, Milk
t6: Clothes, Beer, Milk
t7: Beer, Milk, Clothes
Run Code Online (Sandbox Code Playgroud)

用于上述最小支持度为0.5或50%.

从上面可以看出,我的交易数量显然是7,意味着项目集"频繁",它必须有4/7的计数.因此,这是我的常用项目集1:

F1:

Milk = 4
Chicken = 4
Beer = 5
Cheese = 4
Run Code Online (Sandbox Code Playgroud)

然后我创建了我的第二个改进的候选者(C2)并将其缩小到:

F2:

{Milk, Beer} = 4
Run Code Online (Sandbox Code Playgroud)

这是我感到困惑,如果有人问我,以显示所有的频繁项集我记下所有的F1F2或只F2F1对我来说不是"套装".

然后我被要求为我刚刚定义的频繁项目集创建关联规则并计算他们的"置信度"数字,我得到:

Milk -> Beer = 100% confidence
Beer -> Milk = 80% …
Run Code Online (Sandbox Code Playgroud)

algorithm data-mining apriori

6
推荐指数
1
解决办法
4128
查看次数

当一个向量全为零时,余弦相似性

如何表达余弦相似度(http://en.wikipedia.org/wiki/Cosine_similarity)

当其中一个向量全部为零时?

v1 = [1,1,1,1,1]

v2 = [0,0,0,0,0]

当我们根据经典公式计算时,我们得到除零:

Let d1 = 0 0 0 0 0 0
Let d2 = 1 1 1 1 1 1
Cosine Similarity (d1, d2) =  dot(d1, d2) / ||d1|| ||d2||dot(d1, d2) = (0)*(1) + (0)*(1) + (0)*(1) + (0)*(1) + (0)*(1) + (0)*(1) = 0

||d1|| = sqrt((0)^2 + (0)^2 + (0)^2 + (0)^2 + (0)^2 + (0)^2) = 0

||d2|| = sqrt((1)^2 + (1)^2 + (1)^2 + (1)^2 + (1)^2 …
Run Code Online (Sandbox Code Playgroud)

cluster-analysis machine-learning data-mining cosine-similarity

6
推荐指数
1
解决办法
6080
查看次数

DBSCAN错误与python中的余弦指标

我试图使用带有余弦度量的scikit-learn库中的DBSCAN算法,但却遇到了错误.代码行是

db = DBSCAN(eps=1, min_samples=2, metric='cosine').fit(X)    
Run Code Online (Sandbox Code Playgroud)

这里 X是一个csr_matrix.错误如下:

度量'余弦'对算法'auto'无效,

虽然文档说可以使用此指标.我尝试使用选项algorithm='kd_tree','ball_tree'但得到了相同.但是,如果我使用euclidean或者比如l1指标,则没有错误.

矩阵X很大,所以我不能使用成对距离的预先计算矩阵.

我用python 2.7.6scikit-learn 0.16.1.我的数据集没有完整的零行,因此余弦度量是明确定义的.

cluster-analysis data-mining cosine-similarity dbscan scikit-learn

6
推荐指数
2
解决办法
5982
查看次数

什么是分层引导程序?

我已经学会了引导和分层。但是什么是分层引导?以及它如何运作?

假设我们有一个n个实例(观察)的数据集,而m是类的数量。我应该如何划分数据集,训练和测试的百分比是多少?

algorithm machine-learning data-mining

6
推荐指数
1
解决办法
2774
查看次数