我已经实现了多层感知器来预测输入向量的罪.向量由随机选择的四个-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);
我在R(gbm包)中使用gbm函数来拟合用于多类分类的随机梯度增强模型.我只是试图分别为每个班级获得每个预测因子的重要性,就像哈斯蒂(Hastie)书(统计学习要素)(第382页)中的这张图片一样.

但是,该函数summary.gbm仅返回预测变量的总体重要性(它们对所有类的平均重要性).
有谁知道如何获得相对重要性值?
我正着手进行情绪分析的NLP项目.
我已经成功安装了用于python的NLTK(看起来像是一个很棒的软件).但是,我无法理解如何使用它来完成我的任务.
这是我的任务:
注意:我对准确性并不是太担心,因为我的数据集很大,而且对讽刺也不太担心.
以下是我遇到的麻烦:
我可以找到的所有数据集,例如NLTK附带的语料库电影评论数据不是web服务格式.看起来这已经完成了一些处理.据我所知,处理(斯坦福)由WEKA完成.NLTK不可能单独完成这一切吗?这里所有数据集已经被组织成正/负已经例如极性数据集http://www.cs.cornell.edu/People/pabo/movie-review-data/这是如何完成的?(按情绪组织句子,肯定是WEKA?还是其他什么?)
我不确定我理解为什么WEKA和NLTK会一起使用.似乎他们做了很多相同的事情.如果我首先用WEKA处理数据以找到情绪,为什么我需要NLTK?有可能解释为什么这可能是必要的吗?
我发现了一些接近此任务的脚本,但所有脚本都使用相同的预处理数据.是否不可能自己处理这些数据以查找句子中的情绪而不是使用链接中给出的数据样本?
非常感谢任何帮助,将为我节省很多头发!
干杯柯
我rpart在R中使用分类器.问题是 - 我想在测试数据上测试训练好的分类器.这很好 - 我可以使用该predict.rpart功能.
但我也想计算精度,召回率和F1得分.
我的问题是 - 我是否必须为自己编写函数,或者R或任何CRAN库中是否有任何函数?
我知道交叉验证用于选择好的参数.找到它们之后,我需要在不使用-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) 我正在研究一个分类问题,根据使用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) 这是我的问题的简要描述:
我绘制了几个分类器的ROC图,并且都表现出很好的AUC,这意味着分类很好.但是,当我测试分类器并计算f-measure时,我得到一个非常低的值.我知道这个问题是由数据集的类偏度引起的,到现在为止,我发现了两个处理它的选项:
我选择了第一个选项,解决了我的问题(f-measure令人满意).但是,现在,我的问题是:哪种方法更可取?有什么区别?
PS:我正在使用Python和scikit-learn库.
我正在使用具有欧几里德距离的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函数的作用吗?有没有其他方法可以做到这一点?
我正在使用Google的TensorFlow开发深度学习模型.该模型应用于分割和标记场景.
问题: 我应该将均值平均值或argmax应用于我的最后一层,使其形状变为[256,256,1],然后循环遍历每个像素并进行分类,好像我在对256x256实例进行分类?如果答案是肯定的,如果没有,还有什么其他选择?
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)
我已经搜索了一些错误消息,但还没找到我可以应用的东西.任何提示?
classification ×10
r ×3
matlab ×2
python ×2
auc ×1
data-mining ×1
gbm ×1
java ×1
knn ×1
labeling ×1
libsvm ×1
lucene ×1
nlp ×1
nltk ×1
numpy ×1
perl ×1
query-parser ×1
scene ×1
scikit-learn ×1
svm ×1
tensorflow ×1
weka ×1