标签: classification

多层神经网络不会预测负值

我已经实现了多层感知器来预测输入向量的罪.向量由随机选择的四个-1,0,1和偏置设置为1组成.网络应该预测向量内容之和的sin.

例如,输入= <0,1,-1,0,1>输出= Sin(0 + 1 +( - 1)+ 0 + 1)

我遇到的问题是网络永远不会预测负值,并且许多向量的sin值都是负数.它完美地预测所有正或零输出.我假设更新权重存在问题,在每个纪元后更新.以前有没有人遇到过NN的这个问题?任何帮助都会很棒!!

注意:网络有5个输入,6个隐藏单元,1个隐藏层和1个输出.我在激活隐藏和输出层使用sigmoid函数,并尝试了吨学习率(目前为0.1);

perl classification backpropagation neural-network

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

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

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

在此输入图像描述

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

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

r classification machine-learning data-mining gbm

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

用NLTK python对使用样本数据或web服务的句子进行情感分析?

我正着手进行情绪分析的NLP项目.

我已经成功安装了用于python的NLTK(看起来像是一个很棒的软件).但是,我无法理解如何使用它来完成我的任务.

这是我的任务:

  1. 我从一段长篇数据开始(比如说,从他们的网络服务中就英国大选的主题发表几百条推文)
  2. 我想把它分解成句子(或者信息不超过100个字符)(我想我可以在python中做到这一点?)
  3. 然后搜索该句中特定实例的所有句子,例如"David Cameron"
  4. 然后我想检查每个句子中的正面/负面情绪并相应地计算它们

注意:我对准确性并不是太担心,因为我的数据集很大,而且对讽刺也不太担心.

以下是我遇到的麻烦:

  1. 我可以找到的所有数据集,例如NLTK附带的语料库电影评论数据不是web服务格式.看起来这已经完成了一些处理.据我所知,处理(斯坦福)由WEKA完成.NLTK不可能单独完成这一切吗?这里所有数据集已经被组织成正/负已经例如极性数据集http://www.cs.cornell.edu/People/pabo/movie-review-data/这是如何完成的?(按情绪​​组织句子,肯定是WEKA?还是其他什么?)

  2. 我不确定我理解为什么WEKA和NLTK会一起使用.似乎他们做了很多相同的事情.如果我首先用WEKA处理数据以找到情绪,为什么我需要NLTK?有可能解释为什么这可能是必要的吗?

我发现了一些接近此任务的脚本,但所有脚本都使用相同的预处理数据.是否不可能自己处理这些数据以查找句子中的情绪而不是使用链接中给出的数据样本?

非常感谢任何帮助,将为我节省很多头发!

干杯柯

nlp classification nltk weka

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

在R中计算精确度,召回率和F1得分的简便方法

rpart在R中使用分类器.问题是 - 我想在测试数据上测试训练好的分类器.这很好 - 我可以使用该predict.rpart功能.

但我也想计算精度,召回率和F1得分.

我的问题是 - 我是否必须为自己编写函数,或者R或任何CRAN库中是否有任何函数?

r classification auc precision-recall

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

使用libsvm进行交叉验证后重新培训

我知道交叉验证用于选择好的参数.找到它们之后,我需要在不使用-v选项的情况下重新训练整个数据.

但我面临的问题是,在使用-v选项训练后,我获得了交叉验证的准确性(例如85%).没有模型,我看不到C和gamma的值.在那种情况下,我如何重新训练?

顺便说一句,我应用10倍交叉验证.例如

optimization finished, #iter = 138
nu = 0.612233
obj = -90.291046, rho = -0.367013
nSV = 165, nBSV = 128
Total nSV = 165
Cross Validation Accuracy = 98.1273%
Run Code Online (Sandbox Code Playgroud)

需要一些帮助..

为了获得最佳的C和gamma,我使用LIBSVM FAQ中提供的代码

bestcv = 0;
for log2c = -6:10,
  for log2g = -6:3,
    cmd = ['-v 5 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g)];
    cv = svmtrain(TrainLabel,TrainVec, cmd);
    if (cv >= bestcv),
      bestcv = cv; bestc = 2^log2c; bestg = 2^log2g;
    end
    fprintf('(best c=%g, g=%g, rate=%g)\n',bestc, bestg, …
Run Code Online (Sandbox Code Playgroud)

matlab classification machine-learning svm libsvm

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

Lucene:exception - 查询解析器在"some word"之后遇到<EOF>

我正在研究一个分类问题,根据使用Lucene API的培训数据将产品评论分类为正面,负面或中性.

我正在使用Review对象的ArrayList - "reviewList",它在抓取网页时存储每个评论的属性.

然后使用索引器索引包括"极性"和"评论内容"的评论属性.此后,基于索引对象,我需要对剩余的审阅对象进行分类.但是在执行此操作时,有一个查询对象,查询解析器在"审阅内容"中遇到EOF字符,因此终止.

导致错误的行已相应评论 -

    IndexReader reader = IndexReader.open(FSDirectory.open(new File("index")));
    IndexSearcher searcher = new IndexSearcher(reader);
    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
    QueryParser parser = new QueryParser(Version.LUCENE_31, "Review", analyzer);

    int length = Crawler.reviewList.size();
    for (int i = 200; i < length; i++) {
        String true_class;
        double r_stars = Crawler.reviewList.get(i).getStars();

        if (r_stars < 2.0) {
            true_class = "-1";
        } else if (r_stars > 3.0) {
            true_class = "1";
        } else {
            true_class = "0";
        }

        String[] reviewTokens = Crawler.reviewList.get(i).getReview().split(" "); …
Run Code Online (Sandbox Code Playgroud)

java lucene classification query-parser

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

处理二进制分类中的类不平衡

这是我的问题的简要描述:

  1. 我正在进行有监督的学习任务来训练二元分类器.
  2. 我有一个具有大类不平衡分布的数据集:每个正数为8个负实例.
  3. 我使用f-measure,即特异性和灵敏度之间的调和平均值来评估分类器的性能.

我绘制了几个分类器的ROC图,并且都表现出很好的AUC,这意味着分类很好.但是,当我测试分类器并计算f-measure时,我得到一个非常低的值.我知道这个问题是由数据集的类偏度引起的,到现在为止,我发现了两个处理它的选项:

  1. 采用成本敏感通过对数据集的情况下,分配权重的方法(见本岗位)
  2. 对分类器返回的预测概率进行阈值处理,以减少误报和漏报的数量.

我选择了第一个选项,解决了我的问题(f-measure令人满意).但是,现在,我的问题是:哪种方法更可取?有什么区别?

PS:我正在使用Python和scikit-learn库.

python r classification machine-learning

17
推荐指数
1
解决办法
7835
查看次数

寻找K-最近邻及其实现

我正在使用具有欧几里德距离的KNN对简单数据进行分类.我已经看到了一个关于我想用MATLAB knnsearch函数完成的例子,如下所示:

load fisheriris 
x = meas(:,3:4);
gscatter(x(:,1),x(:,2),species)
newpoint = [5 1.45];
[n,d] = knnsearch(x,newpoint,'k',10);
line(x(n,1),x(n,2),'color',[.5 .5 .5],'marker','o','linestyle','none','markersize',10)
Run Code Online (Sandbox Code Playgroud)

上面的代码采用了一个新点,即[5 1.45]找到与新点最接近的10个值.任何人都可以给我看一个MATLAB算法,详细解释该knnsearch函数的作用吗?有没有其他方法可以做到这一点?

matlab classification machine-learning knn

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

如何在TensorFlow中实现场景标注的逐像素分类?

我正在使用Google的TensorFlow开发深度学习模型.该模型应用于分割和标记场景.

  1. 我使用的是SiftFlow数据集,它有33个语义类256x256像素的图像.
  2. 结果,在我使用卷积和反卷积的最后一层,我得到了下面的张量(数组)[256,256,33].
  3. 接下来我想应用Softmax并将结果与​​大小为[256,256]的语义标签进行比较 .

问题: 我应该将均值平均值或argmax应用于我的最后一层,使其形状变为[256,256,1],然后循环遍历每个像素并进行分类,好像我在对256x256实例进行分类?如果答案是肯定的,如果没有,还有什么其他选择?

classification computer-vision scene labeling tensorflow

17
推荐指数
1
解决办法
6164
查看次数

混淆矩阵不支持多标签指示符

multilabel-indicator is not supported 是我尝试运行时收到的错误消息:

confusion_matrix(y_test, predictions)

y_test是一个DataFrame形状:

Horse | Dog | Cat
1       0     0
0       1     0
0       1     0
...     ...   ...
Run Code Online (Sandbox Code Playgroud)

predictions是一个numpy array:

[[1, 0, 0],
 [0, 1, 0],
 [0, 1, 0]]
Run Code Online (Sandbox Code Playgroud)

我已经搜索了一些错误消息,但还没找到我可以应用的东西.任何提示?

python numpy classification scikit-learn

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