我们如何使用朴素贝叶斯解释weka中的分类结果?
如何计算平均值,标准差,重量和和精度?
如何计算kappa统计量,平均绝对误差,均方根误差等?
混淆矩阵的解释是什么?
我正在尝试解析CSV文件,理想情况下使用weka.core.converters.CSVLoader.但是我的文件不是有效的UTF-8文件.它主要是一个UTF-8文件,但是一些字段值采用不同的编码,因此没有整个文件有效的编码,但无论如何我需要解析它.除了使用像Weka这样的java库之外,我主要在Scala中工作.我甚至无法使用scala.io.Source读取文件:例如
Source.
fromFile(filename)("UTF-8").
foreach(print);
Run Code Online (Sandbox Code Playgroud)
抛出:
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:337)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:153)
at java.io.BufferedReader.read(BufferedReader.java:174)
at scala.io.BufferedSource$$anonfun$iter$1$$anonfun$apply$mcI$sp$1.apply$mcI$sp(BufferedSource.scala:38)
at scala.io.Codec.wrap(Codec.scala:64)
at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38)
at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38)
at scala.collection.Iterator$$anon$14.next(Iterator.scala:150)
at scala.collection.Iterator$$anon$25.hasNext(Iterator.scala:562)
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:400)
at scala.io.Source.hasNext(Source.scala:238)
at scala.collection.Iterator$class.foreach(Iterator.scala:772)
at scala.io.Source.foreach(Source.scala:181)
Run Code Online (Sandbox Code Playgroud)
我很高兴将所有无效字符丢弃或用一些虚拟替换它们.我将有很多这样的文本以各种方式处理,可能需要将数据传递给各种第三方库.理想的解决方案是某种全局设置会导致所有低级java库忽略文本中的无效字节,这样我就可以在不修改的情况下调用此数据上的第三方库.
解:
import java.nio.charset.CodingErrorAction
import scala.io.Codec
implicit val codec = Codec("UTF-8")
codec.onMalformedInput(CodingErrorAction.REPLACE)
codec.onUnmappableCharacter(CodingErrorAction.REPLACE)
val src = Source.
fromFile(filename).
foreach(print)
Run Code Online (Sandbox Code Playgroud)
感谢+ Esailija指出我正确的方向.这引导我如何检测非法的UTF-8字节序列以在java输入流中替换它们? 它提供了核心java解决方案.在Scala中,我可以通过隐式编解码器使其成为默认行为.我想通过在包对象中加入隐式编解码器定义,我可以使它成为整个包的默认行为.
我一直在想,我读到的交叉验证是这样执行的:
在k倍交叉验证中,原始样本被随机分成k个子样本.在k个子样本中,保留单个子样本作为用于测试模型的验证数据,并且剩余的k-1个子样本用作训练数据.然后将交叉验证过程重复k次(折叠),其中每个k个子样本仅使用一次作为验证数据.然后可以对折叠的k结果进行平均(或以其他方式组合)以产生单个估计
所以建立了k个模型,最后一个是平均值.在Weka指南中写道,每个模型总是使用所有数据集构建.那么Weka中的交叉验证如何工作呢?是否根据所有数据构建模型,"交叉验证"意味着创建了k折叠,然后对其进行评估,最终输出结果只是折叠的平均结果?
我有一个存储在S3中的weka模型,大小约为400MB.现在,我有一些记录,我想在其中运行模型并执行预测.
为了进行预测,我试过的是,
在驱动程序上下载并加载模型作为静态对象,将其广播给所有执行程序.对预测RDD执行映射操作.---->不工作,如在Weka中执行预测,需要修改模型对象,并且广播需要只读副本.
在驱动程序上下载并加载模型作为静态对象,并在每个映射操作中将其发送到执行程序.----->工作(效率不高,如在每个地图操作中,我传递400MB对象)
在驱动程序上下载模型并将其加载到每个执行程序上并将其缓存在那里.(不知道该怎么做)
有人知道如何在每个执行程序上加载模型一次并将其缓存,以便其他记录我不再加载它?
我正在为我正在上大学课做一个项目.
我正在使用PHP构建一个简单的Web应用程序,根据一组字典将推文分类为"积极"(或快乐)和"消极"(或悲伤).我现在想到的算法是朴素贝叶斯分类器或决策树.
但是,我找不到任何帮助我进行严肃语言处理的PHP库.Python有NLTK(http://www.nltk.org).PHP有什么类似的吗?
我打算使用WEKA作为Web应用程序的后端(通过在PHP中从命令行调用Weka),但它看起来效率不高.
你知道我应该为这个项目使用什么吗?或者我应该切换到Python?
谢谢
我正在尝试增加java中的堆大小,因为weka会不断崩溃.我使用了建议的行:
> java -Xmx500m -classpath
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
-classpath requires class path specification
Run Code Online (Sandbox Code Playgroud)
我不确定这意味着什么.有什么建议?
我创建了一个包含+/- 13000行+/- 50个特征的数据集.我知道如何输出每个分类结果:预测和实际,但我希望能够输出某些ID与这些结果.所以我已经在我的数据集中添加了一个ID列,但我不知道在分类时如何忽略ID,同时仍然能够输出每个预测结果的ID.我知道如何选择每个预测输出的功能.
我一直试图将这个数据集http://archive.ics.uci.edu/ml/datasets/Communities+and+Crime+Unnormalized
输入Weka并且根本没有运气.我将其转换为CSV,然后将其加载到Weka中,然后尝试将其转换为ARFF,但仍然给我错误"attribute names are not unique"
.
此外,我是否必须从测试数据集中传播训练数据集或将它们保持在一起?
我正着手进行情绪分析的NLP项目.
我已经成功安装了用于python的NLTK(看起来像是一个很棒的软件).但是,我无法理解如何使用它来完成我的任务.
这是我的任务:
注意:我对准确性并不是太担心,因为我的数据集很大,而且对讽刺也不太担心.
以下是我遇到的麻烦:
我可以找到的所有数据集,例如NLTK附带的语料库电影评论数据不是web服务格式.看起来这已经完成了一些处理.据我所知,处理(斯坦福)由WEKA完成.NLTK不可能单独完成这一切吗?这里所有数据集已经被组织成正/负已经例如极性数据集http://www.cs.cornell.edu/People/pabo/movie-review-data/这是如何完成的?(按情绪组织句子,肯定是WEKA?还是其他什么?)
我不确定我理解为什么WEKA和NLTK会一起使用.似乎他们做了很多相同的事情.如果我首先用WEKA处理数据以找到情绪,为什么我需要NLTK?有可能解释为什么这可能是必要的吗?
我发现了一些接近此任务的脚本,但所有脚本都使用相同的预处理数据.是否不可能自己处理这些数据以查找句子中的情绪而不是使用链接中给出的数据样本?
非常感谢任何帮助,将为我节省很多头发!
干杯柯
每一个人.我对分类算法的主题完全陌生,需要一些关于从哪里开始"严肃阅读"的好指示.我现在正在发现,机器学习和自动分类算法是否值得添加到我的某些应用程序中.
我已经通过Z. Michalewicz和D. Fogel(特别是关于使用神经元网络的线性分类器的章节)扫描了"如何解决它:现代启发式",并且在实践方面,我目前正在查看WEKA工具包源代码码.我的下一个(计划好的)步骤是深入了解贝叶斯分类算法的领域.
不幸的是,我在这个领域缺乏一个认真的理论基础(更不用说,到目前为止已经以任何方式使用过它),所以任何关于下一步看的提示都会受到赞赏; 特别是,对可用的分类算法的良好介绍将是有帮助的.作为一名工匠而不是理论家,越实用,越好......
提示,有人吗?
pattern-recognition artificial-intelligence classification machine-learning weka
weka ×10
java ×2
nlp ×2
nltk ×2
scala ×2
apache-spark ×1
data-mining ×1
fold ×1
jvm ×1
memory ×1
partitioning ×1
php ×1
utf-8 ×1
validation ×1