我正在寻找一个用Java编写的开源NaïveBayes分类器库.非常感谢找到一个帮助.
NaïveBayes分类器与贝叶斯网络相同吗?
我已经阅读了词干损害精确度但提高了文本分类中的召回率.这是怎么发生的?当你阻止你增加查询和样本文件之间的匹配数对吗?
当在matlab中测试天真分类器时,即使我在相同的样本数据上进行了训练和测试,我得到了不同的结果,我想知道我的代码是否正确以及是否有人可以帮助解释为什么这样做?
%% dimensionality reduction
columns = 6
[U,S,V]=svds(fulldata,columns);
%% randomly select dataset
rows = 1000;
columns = 6;
%# pick random rows
indX = randperm( size(fulldata,1) );
indX = indX(1:rows)';
%# pick random columns
%indY = randperm( size(fulldata,2) );
indY = indY(1:columns);
%# filter data
data = U(indX,indY);
%% apply normalization method to every cell
data = zscore(data);
%create a training set the same as datasample
training_data = data;
%match the class labels to the corresponding rows
target_class = classlabels(indX,:) …Run Code Online (Sandbox Code Playgroud) matlab classification machine-learning probability naivebayes
我有一个csv文件,其格式如下
productname,产品评论
现在使用mallet我必须训练分类器,这样如果测试数据集作为输入包含产品评论,它应该告诉我特定评论属于哪个产品
mallet java api帮助将不胜感激
ID3算法使用"信息增益"度量.
C4.5使用"增益比"度量,即信息增益除以SplitInfo,而SplitInfo对于分割,其中记录在不同结果之间均匀分配,否则为低.
我的问题是:
这有助于解决信息增益偏向于具有多种结果的分裂的问题?我看不出原因.SplitInfo甚至没有考虑结果的数量,只考虑分裂中的记录分布.
很可能是结果数量较少(比如2),并且记录在这两种结果之间平均分配.在这种情况下,SplitInfo高,增益比率低,C4.5选择的结果很少.
另一方面,可能是结果数量较少,但分布远不均匀.在这种情况下,SplitInfo低,增益比率高,并且更有可能选择具有许多结果的分裂.
我错过了什么?
我正在使用OpenCV实现Bag-of-Words图像分类器.最初我测试了在SURF关键点中提取的SURF描述符.我听说Dense SIFT(或PHOW)描述符可以更好地用于我的目的,所以我也尝试过它们.
令我惊讶的是,他们表现得更差,实际上差了近10倍.我能做错什么?我正在使用OpenCV的DenseFeatureDetector获取关键点.我从9层中提取每个图像大约5000个描述符,并将它们聚类成500个簇.
我应该从VLFeat库中尝试PHOW描述符吗?此外,我不能在OpenCV的SVM实现中使用chi square内核,这在许多论文中都是推荐的.这对分类器质量至关重要,我应该尝试另一个库吗?
另一个问题是尺度不变性,我怀疑它可能受到密集特征提取的影响.我对吗?
我的数字数据缺少值.我想在Weka中使用朴素贝叶斯分类器对数据进行分类,但选项显示为灰色.请帮忙.
我正在做一个根据教程检测垃圾邮件帐户的项目.两个标签 - "垃圾邮件"和"非垃圾邮件"用于训练和测试.分类已经完成,我正在进行评估.
结果是:
*Spam* precision: 0.962917933131
*Spam* recall: 0.6336
*Not spam* precision: 0.72697466468
*Not spam* recall: 0.9756
Run Code Online (Sandbox Code Playgroud)
我已经阅读了精确和召回的维基,仍然感到困惑,并且不知道如何将它用于测量.
我的目的是减少标记为"垃圾邮件"的普通帐户的数量.一些"垃圾邮件"帐户可以逃脱并不重要.所以我想知道上面哪些结果我应该集中精力改进?谢谢.
我想尝试使用Python 3.5 PerceptronTagger中的nltk包,但我收到错误TypeError: 'LazySubsequence' object does not support item assignment
我想用棕色语料库中带有universal标签的数据训练它.
这是我遇到问题时运行的代码.
import nltk,math
tagged_sentences = nltk.corpus.brown.tagged_sents(categories='news',tagset='universal')
i = math.floor(len(tagged_sentences)*0.2)
testing_sentences = tagged_sentences[0:i]
training_sentences = tagged_sentences[i:]
perceptron_tagger = nltk.tag.perceptron.PerceptronTagger(load=False)
perceptron_tagger.train(training_sentences)
Run Code Online (Sandbox Code Playgroud)
它无法正确训练,并提供以下堆栈跟踪.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-61332d63d2c3> in <module>()
1 perceptron_tagger = nltk.tag.perceptron.PerceptronTagger(load=False)
----> 2 perceptron_tagger.train(training_sentences)
/home/nathan/anaconda3/lib/python3.5/site-packages/nltk/tag/perceptron.py in train(self, sentences, save_loc, nr_iter)
192 c += guess == tags[i]
193 n += 1
--> 194 random.shuffle(sentences)
195 logging.info("Iter {0}: {1}/{2}={3}".format(iter_, c, n, _pc(c, …Run Code Online (Sandbox Code Playgroud) 我开始在Coursera上观看Andrew Ng的ML视频。在关于分类的课程中(在第三个视频中),他说了以下几行
“再次,决策边界不是训练集的属性,而是假设和参数的属性。
但是一旦有了参数theta,就可以确定决策边界。”
我的问题:
训练集和假设之间有什么区别?
为什么决策边界是假设的属性而不是训练集的属性?
classification ×10
data-mining ×2
anaconda ×1
bayesian ×1
java ×1
mallet ×1
math ×1
matlab ×1
naivebayes ×1
nlp ×1
nltk ×1
open-source ×1
opencv ×1
perceptron ×1
probability ×1
python-3.5 ×1
spam ×1
statistics ×1
stemming ×1
text ×1
weka ×1