Tag: 机器学习

如何在WEKA中交叉validation后打印预测类

使用分类器完成10倍交叉validation后,如何打印出每个实例的预测类以及这些实例的分布? J48 j48 = new J48(); Evaluation eval = new Evaluation(newData); eval.crossValidateModel(j48, newData, 10, new Random(1)); 当我尝试类似于下面的内容时,它说分类器没有构建 。 for (int i=0; i<data.numInstances(); i++){ System.out.println(j48.distributionForInstance(newData.instance(i))); } 我正在尝试做的是与WEKA GUI中相同的function,其中一旦训练了分类器,我就可以点击Visualize classifier error” > Save ,我将在文件中找到预测的类。但是现在我需要它在我自己的Java代码中工作。 我尝试过类似下面的内容: J48 j48 = new J48(); Evaluation eval = new Evaluation(newData); StringBuffer forPredictionsPrinting = new StringBuffer(); weka.core.Range attsToOutput = null; Boolean outputDistribution = […]

如何使用WordNet或与wordnet相关实现基于类别的文本标记?

如何使用wordnet的类别(java作为接口)使用wordnet标记文本? 例 考虑句子: 1)计算机需要键盘,监视器,CPU才能工作。 2)汽车使用齿轮和离合器。 现在我的目标是,例句必须被标记为 第一句话 电脑/电子 键盘/电子 CPU /电子 第二句话 汽车/机械 齿轮/机械 离合/机械 一些额外的例子…… “使用微芯片监控离合器和齿轮” – >离合器/机械,齿轮/机械,微芯片/电子 “此处用于监测氢气水平的软件” – >软件/计算机,氢/化学.. 我想在java上实现上面提到的目标,即通过技术,机械,电气等相关类别来标记名词。 如何使用wordnet执行此操作。 我以前的作品 为了实现我的目标,我在每个类别的文本文件中创建了一个术语索引,并将其与标题匹配..如果它在文本文件中包含一个单词,则标题将被分类。 例如 Automobile.txt有car , gear , wheel , clutch 。 networking.txt有server,IP Address,TCP , RIP 这是算法: String Classify (String title) { String area; if (compareWordsFrom (“Automobile.txt”,title) == true ) area = […]

是否可以使用没有hadoop依赖的apache mahout?

是否可以使用Apache mahout而不依赖于Hadoop。 我想在单个计算机上使用mahout算法,只在我的Java项目中包含mahout库,但我根本不想使用hadoop,因为无论如何我将在单个节点上运行。 那可能吗?

如何使用java获取weka中最近的邻居

我一直在尝试使用与weka机器学习库一起使用的Ibk最近邻算法。 我知道如何对实例进行分类,但我想实现协同过滤function,因此我需要实际获取最接近感兴趣对象的实际对象列表。 我怎样才能在weka中使用它的java API实际这样做?

用于商业用途的Java机器学习库?

有谁知道我可以用于商业产品的好的Java机器学习库? 不幸的是,Weka和Rapidminer不允许这样做。 我已经找到了Apache Mahout和Java Data Mininng Package 。 有没有人经历过这些并提供一些决策支持? 该任务需要聚类和分类算法。

签名识别是否有任何代码或算法?

我的用户使用触摸事件在我的应用程序中绘制他们的签名,然后将其转换为位图。 我想提取每个签名的唯一规范,并根据存储在主服务器中的规范进行比较。 我怎样才能做到这一点? 提取签名的唯一function的主要和企业算法是什么? 提前致谢,

什么是最好的开源Java贝叶斯垃圾邮件filter库?

在Stackoverflow的其他答案中,有人建议Weka很好,但还有其他( Classifier4j , jBNC , Naiban )。 有没有人有这些实际经验?

支持Java的矢量机?

我想在Java中编写一个“智能监视器”,它会在检测到即将发生的性能问题时发出警报。 我的Java应用程序将结构化格式的数据写入日志文件: | | 因此,例如,如果我有一个Widget#doSomething(String)方法需要812ms来执行,它将被记录为: 2013-03-24 11:39:21 | Widget#doSomething(String) | 812 随着性能开始下降(例如在主要收集期间,在峰值负载期间,或者如果系统正在慢慢爬行),方法执行时间开始减慢; 所以最右边的列开始看到很大的数字(有时候执行单个方法需要20到40秒)。 在大学 – 进行机器学习练习 – 我写了我的教授所谓的线性二分法 ,它采用简单的测试数据(一个人的身高,体重和性别)并“学会”如何根据他们的人将男性或女性分类身高体重。 然后,一旦它掌握了所有的训练数据,我们就会向它提供新的数据,以确定它可以准确地确定性别。 我认为 线性二分法的多变量版本称为支持向量机 (SVM) 。 如果我错了,请澄清,我会将问题的标题更改为更合适的名称。 无论如何 ,我需要这个应用程序来做以下事情: 以“测试模式”运行,我从我的主Java应用程序(我希望监视的那个)提供结构化日志文件,并获取每个日志条目(如上所示)并将其用于测试数据 只有java-method和seconds-to-execute列作为输入/测试数据很重要; 我不关心日期时间 在“监控模式”下运行,它正在从日志文件中主动读取新的日志数据,并使用类似的“机器学习”技术来确定性能下降是否迫在眉睫 重要的是要注意,执行seconds-to-execute列不是这里唯一重要的因素,因为我已经看到了某些方法在令人敬畏的性能期间的可怕时序,并且在服务器看起来像其他方法的时候真的很棒。它即将死去并推动雏菊。 因此,显然某些方法比其他方法“加权”/对性能更重要。 我的问题 谷歌搜索“线性二分法”或“支持向量机”出现了一些非常可怕,高度学术,超脑白皮书,我只是没有精神能量(也没有时间)消费 – 除非他们真的是我唯一的选择; 所以我问是否有一个外行人对这些东西的介绍,或者是用Java构建这样一个系统的优秀网站/文章/教程 ? 有没有稳固/稳定的开源Java库? 我只能找到jlibsvm和svmlearn但前者看起来处于纯beta状态,而后者似乎只支持二元决策(就像我的旧线性二分法)。 我知道有Mahout,但它位于Hadoop之上,我认为我没有足够的数据来保证建立我自己的Hadoop集群所需的时间和精力。 提前致谢!

Weka的PCA运行时间太长

我正在尝试使用Weka进行使用PCA算法的特征选择。 我的原始特征空间包含~9000个属性,在2700个样本中。 我尝试使用以下代码减少数据的维度: AttributeSelection selector = new AttributeSelection(); PrincipalComponents pca = new PrincipalComponents(); Ranker ranker = new Ranker(); selector.setEvaluator(pca); selector.setSearch(ranker); Instances instances = SamplesManager.asWekaInstances(trainSet); try { selector.SelectAttributes(instances); return SamplesManager.asSamplesList(selector.reduceDimensionality(instances)); } catch (Exception e ) { … } 但是,它没有在12小时内完成。 它停留在方法selector.SelectAttributes(instances); 。 我的问题是: weka的PCA需要这么长的计算时间吗? 或者我错误地使用PCA? 如果预计长时间运行: 如何调整PCA算法以更快地运行? 你能建议一个替代方案吗? (+示例代码如何使用它)? 如果不是: 我究竟做错了什么? 我应该如何使用weka调用PCA并获得降低的维数? 更新:评论证实了我的怀疑,它花费的时间远远超过预期。 我想知道 :我怎样才能在java中获得PCA – 使用weka或替代库。 […]

Java开源文本挖掘框架

我想知道什么是最好的基于Java的开源文本挖掘框架,使用botg机器学习和字典方法。 我正在使用Mallet,但没有那么多文档,我不知道它是否符合我的所有要求。