标签: classification

对单词和类别值进行分类

我们今天在课堂上设置了一个算法问题,作为"如果你找到一个你不必做这个主题的解决方案".当然,我们都认为我们会试一试.

基本上,我们提供了100个单词和10个类别的DB.单词或类别之间不匹配.所以它基本上是100个单词和10个类别的列表.

我们必须将单词"放置"到正确的类别中 - 也就是说,我们必须"弄清楚"如何将单词放入正确的类别中.因此,我们必须"理解"这个词,然后将其置于最合适的类别中.

即其中一个词是"钓鱼"类别"运动" - >所以这将属于这一类.单词和类别之间存在一些重叠,因此某些单词可能会进入多个类别.

如果我们弄明白,我们必须增加样本大小,并且匹配率"最佳"的人获胜.

有没有人知道如何开始这样的事情?还是任何资源?最好是在C#中?

即使是关键字DB或其他东西可能会有所帮助?有人知道任何免费的吗?

algorithm classification

13
推荐指数
3
解决办法
5183
查看次数

Scikit和Pandas:适合大数据

如何使用scikit-learn在大型csv数据(~75MB)上训练模型而不会遇到内存问题?

我正在使用IPython笔记本作为编程环境,并使用pandas + sklearn软件包来分析来自kaggle的数字识别器教程的数据.

数据在网页上提供,链接到我的代码,这是错误消息:

KNeighborsClassifier 用于预测.

问题:

使用read_csv函数加载大型数据集时发生"MemoryError".为了暂时绕过这个问题,我必须重新启动内核,然后read_csv函数成功加载文件,但是当我再次运行相同的单元格时会发生同样的错误.

read_csv函数成功加载文件后,在对其进行更改后dataframe,我可以将功能和标签传递给KNeighborsClassifier的fit()函数.此时,发生类似的内存错误.

我尝试了以下方法:

以块的形式迭代CSV文件,并相应地拟合数据,但问题是每次对于一大块数据都会覆盖预测模型.

您认为如何成功训练我的模型而不会遇到内存问题,我怎么办?

memory classification machine-learning pandas scikit-learn

13
推荐指数
1
解决办法
7931
查看次数

弱分类器

我正在尝试实现一个使用AdaBoost算法的应用程序.我知道AdaBoost使用了一组弱分类器,但我不知道这些弱分类器是什么.你能用一个例子向我解释一下,告诉我是否必须创建自己的弱分类器,或者我是否想要使用某种算法?

artificial-intelligence classification machine-learning adaboost

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

KNN分类与分类数据

我正在忙着一个涉及k-最近邻回归的项目.我混合了数字和分类领域.分类值是序数(例如银行名称,帐户类型).数字类型,例如工资和年龄.还有一些二元类型(例如,男性,女性).

如何将分类值纳入KNN分析?

据我所知,人们不能简单地将每个分类字段映射到数字键(例如,银行1 = 1;银行2 = 2等),因此我需要一种更好的方法来使用分类字段.我听说可以使用二进制数 - 这是一种可行的方法吗?建议将不胜感激.

matlab classification octave ordinal knn

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

Scikit在测试集上学习 - fit_transform

我正在努力使用Scikit学习Python中的随机森林.我的问题是我用它进行文本分类(3个类 - 正/负/中性),我提取的特征主要是单词/ unigrams,所以我需要将它们转换为数字特征.我找到了一种方法做它DictVectorizerfit_transform:

from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import classification_report
from sklearn.feature_extraction import DictVectorizer

vec = DictVectorizer(sparse=False)
rf = RandomForestClassifier(n_estimators = 100)
trainFeatures1 = vec.fit_transform(trainFeatures)

# Fit the training data to the training output and create the decision trees
rf = rf.fit(trainFeatures1.toarray(), LabelEncoder().fit_transform(trainLabels))

testFeatures1 = vec.fit_transform(testFeatures)
# Take the same decision trees and run on the test data
Output = rf.score(testFeatures1.toarray(), LabelEncoder().fit_transform(testLabels))

print "accuracy: " + str(Output)
Run Code Online (Sandbox Code Playgroud)

我的问题是该fit_transform方法正在处理火车数据集,其中包含大约8000个实例,但是当我尝试将我的测试集转换为数字特征时,也就是大约80000个实例,我得到一个内存错误,说:

testFeatures1 = vec.fit_transform(testFeatures)
File …
Run Code Online (Sandbox Code Playgroud)

classification machine-learning random-forest scikit-learn text-classification

13
推荐指数
1
解决办法
9204
查看次数

朴素贝叶斯:不平衡的测试数据集

我使用scikit-learn Multinomial Naive Bayes分类器进行二进制文本分类(分类器告诉我文档是否属于X类).我使用平衡数据集训练我的模型和平衡测试集来测试它,结果很有希望.

该分类器需要实时运行并不断分析随机抛出的文档.

但是,当我在生产中运行我的分类器时,误报的数量非常高,因此我的精度非常低.原因很简单:在实时场景中(大约90%的时间),分类器会遇到更多负面样本,这与我用于测试和培训的理想平衡数据集不对应.

有没有办法可以在训练期间模拟这个实时案例,或者我可以使用任何技巧(包括对文档进行预处理以查看它们是否适合于分类器)?

我计划使用不平衡的数据集来训练我的分类器,其比例与我在实时案例中的比例相同,但我担心这可能会使朴素贝叶斯偏向负面阶级而失去对正面课程的回忆.

任何建议表示赞赏.

python classification machine-learning scikit-learn text-classification

13
推荐指数
1
解决办法
5533
查看次数

在sklearn中的TfidfVectorizer中向stop_words列表添加单词

我想在TfidfVectorizer中为stop_words添加一些单词.我按照添加单词的解决方案来scikit-learn的CountVectorizer的停止列表.我的停用词列表现在包含"英语"停用词和我指定的停用词.但是仍然TfidfVectorizer不接受我的停用词列表,我仍然可以在我的功能列表中看到这些词.以下是我的代码

from sklearn.feature_extraction import text
my_stop_words = text.ENGLISH_STOP_WORDS.union(my_words)

vectorizer = TfidfVectorizer(analyzer=u'word',max_df=0.95,lowercase=True,stop_words=set(my_stop_words),max_features=15000)
X= vectorizer.fit_transform(text)
Run Code Online (Sandbox Code Playgroud)

我还尝试在TfidfVectorizer中将stop_words设置为stop_words = my_stop_words.但它仍然无效.请帮忙.

python classification stop-words scikit-learn text-classification

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

在scikit中结合随机森林模型学习

我有两个RandomForestClassifier模型,我想将它们组合成一个元模型.他们都使用类似但不同的数据进行培训.我怎样才能做到这一点?

rf1 #this is my first fitted RandomForestClassifier object, with 250 trees
rf2 #this is my second fitted RandomForestClassifier object, also with 250 trees
Run Code Online (Sandbox Code Playgroud)

我想创建big_rf所有树木组合成一个500树模型

python classification python-2.7 random-forest scikit-learn

13
推荐指数
2
解决办法
6504
查看次数

sklearn LogisticRegression并更改分类的默认阈值

我正在使用sklearn包中的LogisticRegression,并且有一个关于分类的快速问题.我为我的分类器建立了一条ROC曲线,结果证明我的训练数据的最佳阈值大约为0.25.我假设创建预测时的默认阈值是0.5.如何进行10倍交叉验证时,如何更改此默认设置以了解模型的准确度?基本上,我希望我的模型能够为大于0.25但不是0.5的任何人预测"1".我一直在查看所有文档,我似乎无法到达任何地方.

在此先感谢您的帮助.

python regression classification scikit-learn

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

使用Keras进行物体检测:更快的R-CNN或YOLO的简单方法

这个问题可能已得到解答,但我没有找到一个简单的答案.我使用Keras创建了一个convnet来对"辛普森一家"字符进行分类(这里是数据集).
我有20个类并给出一个图像作为输入,我返回字符名称.这很简单.我的数据集包含图片中主要字符的图片,并且只有字符的名称作为标签.

现在我想添加一个对象检测问题,即在图片中的字符周围绘制一个边界框并预测它是哪个字符.我不想使用滑动窗口,因为它真的很慢.所以我考虑使用更快的RCNN(github repo)或YOLO(github repo).我是否应该为训练集的每张图片添加边界框的坐标?有没有办法在没有给出训练集的坐标的情况下进行物体检测(并在我的测试中得到边界框)?

总之,我想创建一个简单的对象检测模型,我不知道是否有可能创建一个更简单的YOLO或更快的RCNN.

非常感谢您的帮助.

classification object-detection deep-learning keras

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