标签: classification

测量分类算法的性能

我手上有一个分类问题,我想用机器学习算法解决这个问题(可能是贝叶斯或马尔可夫,问题与要使用的分类器无关).鉴于一些培训实例,我正在寻找一种方法来衡量已实施的分类器的性能,同时考虑数据过度拟合问题.

那就是:给定N [1..100]训练样本,如果我在每个样本上运行训练算法,并使用这个相同的样本来测量适应度,它可能会陷入数据过度拟合问题 - 分类器会知道训练实例的确切答案,没有太多的预测能力,使健身结果无用.

一个明显的解决方案是将手工标记的样品分成训练和测试样品; 我想学习选择具有统计学意义的训练样本的方法.

白皮书,书籍指针和PDF非常感谢!

nlp artificial-intelligence classification machine-learning bayesian

8
推荐指数
1
解决办法
2036
查看次数

如何创建语料库或语料库来分类NLTK中的文本?

我正在构建一个分类器文本.

1,有10个类别,每个类别都有更多的相对关键词.2,现在,我有一个文字.我需要将它分类为一个类别3,我使用NLTK但我不知道如何创建最佳的火车语料库,语料库

有人可以用提取功能的方法来帮助我,... tks u

python classification corpus nltk

8
推荐指数
0
解决办法
2189
查看次数

从python输出创建ARFF文件

gardai-plan-crackdown-on-troublemakers-at-protest-2438316.html': {'dail': 1, 'focus': 1, 'actions': 1, 'trade': 2, 'protest': 1, 'identify': 1, 'previous': 1, 'detectives': 1, 'republican': 1, 'group': 1, 'monitor': 1, 'clashes': 1, 'civil': 1, 'charge': 1, 'breaches': 1, 'travelling': 1, 'main': 1, 'disrupt': 1, 'real': 1, 'policing': 3, 'march': 6, 'finance': 1, 'drawn': 1, 'assistant': 1, 'protesters': 1, 'emphasised': 1, 'department': 1, 'traffic': 2, 'outbreak': 1, 'culprits': 1, 'proportionate': 1, 'instructions': 1, 'warned': 2, 'commanders': 1, 'michael': 2, 'exploit': 1, 'culminating': 1, 'large': 2, 'continue': 1, 'team': …
Run Code Online (Sandbox Code Playgroud)

python classification file weka arff

8
推荐指数
2
解决办法
7738
查看次数

分类得分:SVM

我使用libsvm进行多类分类.如何将分类分数与分类的置信度与给定样本的输出进行比较,如下所示:

Class 1: score1

Class 2: score2

Class 3: score3

Class 4: score4
Run Code Online (Sandbox Code Playgroud)

statistics classification svm libsvm

8
推荐指数
1
解决办法
3714
查看次数

识别图像中的图案

鉴于所有图像都是从相同的角度拍摄,这意味着要识别的模式将是图像中识别图案(可能是文本,签名,徽标,不是面孔,物体,人等)的最佳方法始终以相同的角度可见,但不是位置/尺寸/质量/亮度等.

假设我有徽标,我想对1000张不同尺寸和质量的图像进行测试,并获得嵌入此图案的图像,或者至少很有可能嵌入此图案.

谢谢,

classification image-processing image-recognition computer-vision

8
推荐指数
2
解决办法
1967
查看次数

GTZAN音乐流派数据集

我想在公共数据集中测试我的音乐类型算法,以与其他预先存在的算法进行比较.在MIREX的情况下,所有数据都不可用.我发现GTZAN数据集在链接中可用(marsyas.info/download/data_sets)但是,现在我无法使用它.

你知道我怎么能得到这些数据?因为我使用除MFCC以外的其他功能,所以我需要流派注释以及音乐.

提前致谢.

classification

8
推荐指数
2
解决办法
7645
查看次数

如何计算roc曲线?

我写了一个分类器(高斯混合模型)来分类五个人类行为.对于每次观察,分类器计算属于群集的后验概率.

我想要用阈值参数化我的系统的性能,值为0到100.对于每个阈值,对于每个观察,如果属于一个簇的概率大于阈值,我接受分类器的结果否则我丢弃它.

对于每个阈值,我计算真阳性,真阴性,假阳性,假阴性的数量.

比我计算两个函数:灵敏度和特异性为

sensitivity = TP/(TP+FN);

specificity=TN/(TN+FP);
Run Code Online (Sandbox Code Playgroud)

在matlab中:

plot(1-specificity,sensitivity);
Run Code Online (Sandbox Code Playgroud)

有ROC曲线.但结果并不是我所期望的.

这是丢弃,错误,纠正,敏感性和特异性功能的图,改变了一个动作的阈值.

这是丢弃,错误,纠正,敏感性和特异性功能改变阈值的图

这是一个动作的ROC曲线图 这是ROC曲线的图

这是同一动作的ROC曲线的主干 在此输入图像描述

我错了,但我不知道在哪里.也许我错误地计算了FP,FN,TP,TN,特别是当分类器的结果小于阈值时,所以我丢弃了.当丢弃时我必须增加什么?

matlab classification false-positive threshold roc

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

使用插入符号在R中进行分类的预测(模型)和预测(模型$ finalModel)之间的差异

什么区别

predict(rf, newdata=testSet)
Run Code Online (Sandbox Code Playgroud)

predict(rf$finalModel, newdata=testSet) 
Run Code Online (Sandbox Code Playgroud)

我训练模型 preProcess=c("center", "scale")

tc <- trainControl("repeatedcv", number=10, repeats=10, classProbs=TRUE, savePred=T)
rf <- train(y~., data=trainingSet, method="rf", trControl=tc, preProc=c("center", "scale"))
Run Code Online (Sandbox Code Playgroud)

当我在一个居中和缩放的testSet上运行它时,我会收到0个正数

testSetCS <- testSet
xTrans <- preProcess(testSetCS)
testSetCS<- predict(xTrans, testSet)
testSet$Prediction <- predict(rf, newdata=testSet)
testSetCS$Prediction <- predict(rf, newdata=testSetCS)
Run Code Online (Sandbox Code Playgroud)

但是当我在一个未缩放的testSet上运行它时会收到一些真正的积极因素.我必须使用rf $ finalModel在居中和缩放的testSet和未缩放的rf对象上接收一些真正的postive ...我缺少什么?


编辑

测试:

tc <- trainControl("repeatedcv", number=10, repeats=10, classProbs=TRUE, savePred=T)
RF <-  train(Y~., data= trainingSet, method="rf", trControl=tc) #normal trainingData
RF.CS <- train(Y~., data= trainingSet, method="rf", trControl=tc, preProc=c("center", "scale")) #scaled and centered trainingData
Run Code Online (Sandbox Code Playgroud)

在正常的testSet上:

RF predicts …
Run Code Online (Sandbox Code Playgroud)

r classification prediction r-caret

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

年龄的神经网络序数分类

我创建了一个简单的神经网络(Python,Theano),根据他们从不同商店选择的消费历史来估计一个人的年龄.不幸的是,它并不是特别准确.

网络不了解普通性这一事实可能会损害准确性.对于网络,年龄分类之间没有关系.它目前正在从softmax输出层中选择概率最高的年龄.

我考虑将输出分类更改为每个年龄的加权概率的平均值.

例如,给定年龄概率:(年龄10:20%,年龄20:20%,年龄30:60%)

Rather than output: Age 30 (Highest probability)
Weighted Average: Age 24 (10*0.2+20*0.2+30*0.6 weighted average)
Run Code Online (Sandbox Code Playgroud)

该解决方案感觉次优.是否有更好的方法在神经网络中实现序数分类,还是有更好的机器学习方法可以实现?(例如逻辑回归)

regression classification machine-learning neural-network theano

8
推荐指数
1
解决办法
3473
查看次数

如何在scikit-learn中将数字特征与文本(词袋)正确组合?

我正在为网页编写分类器,所以我有多种数字特征,我也想对文本进行分类.我正在使用词袋方法将文本转换为(大)数字向量.代码最终是这样的:

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
import numpy as np

numerical_features = [
  [1, 0],
  [1, 1],
  [0, 0],
  [0, 1]
]
corpus = [
  'This is the first document.',
  'This is the second second document.',
  'And the third one',
  'Is this the first document?',
]
bag_of_words_vectorizer = CountVectorizer(min_df=1)
X = bag_of_words_vectorizer.fit_transform(corpus)
words_counts = X.toarray()
tfidf_transformer = TfidfTransformer()
tfidf = tfidf_transformer.fit_transform(words_counts)

bag_of_words_vectorizer.get_feature_names()
combinedFeatures = np.hstack([numerical_features, tfidf.toarray()])
Run Code Online (Sandbox Code Playgroud)

这有效,但我很关心准确性.请注意,有4个对象,只有两个数字特征.即使是最简单的文本也会产生具有九个特征的向量(因为语料库中有九个不同的单词).显然,对于真实文本,将会有数百个或数千个不同的单词,因此最终的特征向量将是<10个数字特征但是> 1000个单词的特征向量.

因此,分类器(SVM)不会将数字特征上的单词加权100到1倍吗?如果是这样,我该如何补偿以确保单词包的数量与数字特征的权重相等?

python classification scikit-learn text-classification

8
推荐指数
1
解决办法
2341
查看次数