标签: classification

sklearn逻辑回归与不平衡的类

我在python中用sklearn的逻辑回归解决了一个分类问题.

我的问题是一般/通用问题.我有一个包含两个类/结果(正/负或1/0)的数据集,但该集非常不平衡.有约5%的阳性和~95%的阴性.

我知道有很多方法可以解决像这样的不平衡问题,但是没有找到如何使用sklearn软件包正确实现的良好解释.

到目前为止,我所做的是通过选择具有正结果和相同数量的随机选择的否定条目的条目来建立平衡训练集.然后我可以将模型训练到这个集合,但我仍然坚持如何修改模型,然后处理原始的不平衡人口/集合.

这样做的具体步骤是什么?我已经倾倒了sklearn文档和示例,并没有找到一个很好的解释.

python classification scikit-learn

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

如何计算要分类的单个新文档的TF*IDF?

我使用文档术语向量来表示文档集合.我使用TF*IDF来计算每个文档向量的术语权重.然后我可以使用这个矩阵来训练文档分类的模型.

我期待将来对新文档进行分类.但是为了对其进行分类,我需要首先将文档转换为文档术语向量,并且向量也应该由TF*IDF值组成.

我的问题是,如何只用一个文件来计算TF*IDF?

据我所知,TF可以根据单个文档本身计算,但IDF只能用文档集合计算.在我目前的实验中,我实际上计算了整个文档集合的TF*IDF值.然后我使用一些文档作为训练集,其他文档作为测试集.

我突然意识到这似乎不适用于现实生活.

添加1

因此,实际上有两种微妙的分类方案:

  1. 对某些内容已知但标签未知的文件进行分类.
  2. 对一些完全看不见的文件进行分类.

对于1,我们可以组合所有文档,包括标签和不标签.并获得所有这些TF*IDF.这样,即使我们只使用带有标签的文件进行培训,培训结果仍然会包含没有标签的文件的影响.

但我的情况是2.

假设我从训练集语料库的摘要中获得了关于术语T的以下信息:

  • 训练集中T的文档计数为n
  • 培训文件总数为N.

我应该如下计算看不见的文件D 的ID的IDF 吗?

IDF(t,D)= log((N + 1)/(n + 1))

添加2

如果我在新文档中遇到一个之前没有出现在训练语料库中的术语怎么办?我应该如何计算doc-term向量中的权重?

information-retrieval classification machine-learning text-mining document-classification

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

ConfusionMatrix中的错误数据和参考因子必须具有相同的级别数

我用R caret训练了一个树模型.我现在正在尝试生成混淆矩阵并继续收到以下错误:

confusionMatrix.default(predictionsTree,testdata $ catgeory)出错:数据和参考因子必须具有相同的级别数

prob <- 0.5 #Specify class split
singleSplit <- createDataPartition(modellingData2$category, p=prob,
                                   times=1, list=FALSE)
cvControl <- trainControl(method="repeatedcv", number=10, repeats=5)
traindata <- modellingData2[singleSplit,]
testdata <- modellingData2[-singleSplit,]
treeFit <- train(traindata$category~., data=traindata,
                 trControl=cvControl, method="rpart", tuneLength=10)
predictionsTree <- predict(treeFit, testdata)
confusionMatrix(predictionsTree, testdata$catgeory)
Run Code Online (Sandbox Code Playgroud)

生成混淆矩阵时会发生错误.两个对象的级别相同.我无法弄清问题是什么.它们的结构和水平如下.它们应该是一样的.任何帮助将非常感谢,因为它让我破解!

> str(predictionsTree)
 Factor w/ 30 levels "16-Merchant Service Charge",..: 28 22 22 22 22 6 6 6 6 6 ...
> str(testdata$category)
 Factor w/ 30 levels "16-Merchant Service Charge",..: 30 30 7 7 7 7 7 30 7 …
Run Code Online (Sandbox Code Playgroud)

r classification machine-learning r-caret

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

知道任何好的c ++支持向量机(SVM)库吗?

你知道有什么好的c ++ svm库我试过libsvm http://www.csie.ntu.edu.tw/~cjlin/libsvm/但是到目前为止我并没有大吃一惊.

我也听说过SVMLightTinySVM.你试过吗?任何新球员?

谢谢 !

c++ classification machine-learning svm libsvm

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

音乐指纹识别是如何工作的(对于像Shazam和Lala.com这样的网站)?

我的大型(120gb)音乐收藏包含许多重复的歌曲,我一直在试图指纹轨道,以期检测重复.既然我是CS专业,我很好奇在那里做了什么?我所做的一切几乎都没有Shazam或Lala.com这样的准确性.他们如何"哈希"曲目?我已经在我的所有文件(26,000个文件)上运行了标准的MD5哈希,并且我在不同的轨道上发现了数百个相等的哈希,所以这不起作用.

我对Lala.com更感兴趣,因为他们使用完整的文件,不像Shazam,但我假设两者都使用类似的技术.任何人都可以解释如何为音乐生成唯一标识符?

classification fingerprinting categorization

20
推荐指数
2
解决办法
7194
查看次数

我想要一台机器来学习对短文本进行分类

我有大约500字的短篇小说,我想把它们分成20个类别中的一个:

  • 娱乐
  • 餐饮
  • 音乐
  • 等等

我可以对其中的一大堆进行手工分类,但我希望实现机器学习以最终猜测类别.什么是最好的方法来解决这个问题?我应该使用机器学习的标准方法吗?我认为决策树不会很好,因为它是文本数据......我在这个领域是全新的.

任何帮助将不胜感激,谢谢!

nlp classification machine-learning

20
推荐指数
3
解决办法
8717
查看次数

使用线性内核的svm最好用在哪里?

我目前正在研究svm,并想知道svm对线性内核的应用是什么.在我看来,它必须适用于解决线性优化问题.它是否正确?

我感谢你的回答!

classification machine-learning mathematical-optimization svm

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

scikit将输出metrics.classification_report学习为CSV /制表符分隔格式

我正在Scikit-Learn中进行多类文本分类.使用具有数百个标签的Multinomial Naive Bayes分类器训练数据集.以下是Scikit Learn脚本的摘录,用于拟合MNB模型

from __future__ import print_function

# Read **`file.csv`** into a pandas DataFrame

import pandas as pd
path = 'data/file.csv'
merged = pd.read_csv(path, error_bad_lines=False, low_memory=False)

# define X and y using the original DataFrame
X = merged.text
y = merged.grid

# split X and y into training and testing sets;
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)

# import and instantiate CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer()

# create document-term matrices …
Run Code Online (Sandbox Code Playgroud)

python text classification machine-learning scikit-learn

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

如何在非常不平衡的数据集上使用vowpal wabbit进行逻辑回归

我正在尝试使用vowpal wabbit进行逻辑回归.我不确定这是否是正确的语法

For training, I do

 ./vw -d ~/Desktop/new_data.txt --passes 20 --binary --cache_file cache.txt -f lr.vw --loss_function logistic --l1 0.05

For testing I do 
./vw -d ~/libsvm-3.18_test/matlab/new_data_test.txt --binary -t -i lr.vw -p predictions.txt -r raw_score.txt
Run Code Online (Sandbox Code Playgroud)

这是我的火车数据的片段

-1:1.00038 | 110:0.30103 262:0.90309 689:1.20412 1103:0.477121 1286:1.5563 2663:0.30103 2667:0.30103 2715:4.63112 3012:0.30103 3113:8.38411 3119:4.62325 3382:1.07918 3666:1.20412 3728:5.14959 4029:0.30103 4596:0.30103

1:2601.25 | 32:2.03342 135:3.77379 146:3.19535 284:2.5563 408:0.30103 542:3.80618 669:1.07918 689:2.25527 880:0.30103 915:1.98227 1169:5.35371 1270:0.90309 1425:0.30103 1621:0.30103 1682:0.30103 1736:3.98227 1770:0.60206 1861:4.34341 1900:3.43136 1905:7.54141 1991:5.33791 2437:0.954243 2532:2.68664 3370:2.90309 …
Run Code Online (Sandbox Code Playgroud)

classification vowpalwabbit logistic-regression

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

TensorFlow对象检测API奇怪的行为

我正在使用TensorFlow的全新Object Detection API,并决定在其他一些公开的数据集上进行训练.

我偶然偶然发现这个杂货数据集,其中包括超市货架上各种品牌香烟盒的图像,以及一个文本文件,其中列出了每个图像中每个香烟盒的边界框.数据集中已标注10个主要品牌,所有其他品牌均属于第11个"杂项"类别.

我按照他们的教程设法在这个数据集上训练模型.由于处理能力的限制,我只使用了数据集的三分之一,并进行了70:30分割,用于训练和测试数据.我使用了faster_rcnn_resnet101模型.配置文件中的所有参数与TF提供的默认参数相同.

在16491个全局步骤之后,我在一些图像上测试了模型,但我对结果不太满意 -

无法在顶层检测到Camels,而在其他图像中检测到该产品

为什么它没能检测到顶行的万宝路?

我遇到的另一个问题是模型从未检测到除标签1之外的任何其他标签

未从训练数据中检测到产品的裁剪实例

即使在负像中,它也可以99%的置信度检测香烟盒!

有人可以帮我解决问题吗?我该怎么做才能提高准确度?为什么它会检测到属于第1类的所有产品,尽管我已经提到总共有11个类?

编辑添加了我的标签贴图:

item {
  id: 1
  name: '1'
}

item {
  id: 2
  name: '2'
}

item {
  id: 3
  name: '3'
}

item {
  id: 4
  name: '4'
}

item {
  id: 5
  name: '5'
}

item {
  id: 6
  name: '6'
}

item {
  id: 7
  name: '7'
}

item {
  id: 8
  name: '8'
}

item {
  id: …
Run Code Online (Sandbox Code Playgroud)

python classification machine-learning object-detection tensorflow

19
推荐指数
2
解决办法
7082
查看次数