标签: classification

C5算法实现?

你知道在哪里可以找到这个算法的一些信息,去研究它吗?是否已经有一个实现的例子,或者只有Quinlan知道它的实现?

pattern-recognition classification

7
推荐指数
1
解决办法
2072
查看次数

如何从party ::: ctree模型中删除训练数据?

我创建了几个ctree模型(大约40到80),我想要经常评估.

一个问题是模型对象非常大(40个模型需要超过2.8G的内存),在我看来,他们存储了训练数据,可能是modelname @ data和modelname @ response,而不仅仅是相关的信息预测新数据.

大多数其他R学习包具有可配置选项,是否将数据包含在模型对象中,但我在文档中找不到任何提示.我还尝试通过分配空的ModelEnv对象

modelname@data <- new("ModelEnv")
Run Code Online (Sandbox Code Playgroud)

但是对各个RData文件的大小没有影响.

任何人都知道ctree是否真的存储了训练数据以及如何从ctree模型中删除与新预测无关的所有数据,以便我可以将其中的许多数据放入内存中?

非常感谢,

斯特凡


感谢您的反馈,这已经非常有帮助.

我使用dputstr深入研究了对象,发现模型中没有包含任何训练数据,但是有一个responses插槽,似乎有训练标签和rownames.无论如何,我注意到每个节点都有一个每个训练样本的权重向量.经过一段时间检查代码后,我最后搜索了一下,在partyNEWS日志中找到了以下注释:

         CHANGES IN party VERSION 0.9-13 (2007-07-23)

o   update `mvt.f'

o   improve the memory footprint of RandomForest objects
    substancially (by removing the weights slots from each node).
Run Code Online (Sandbox Code Playgroud)

事实证明,派对包中有一个C函数可以删除这些权限,R_remove_weights并使用以下定义调用:

SEXP R_remove_weights(SEXP subtree, SEXP removestats) {
    C_remove_weights(subtree, LOGICAL(removestats)[0]);
    return(R_NilValue);
}
Run Code Online (Sandbox Code Playgroud)

它也工作正常:

# cc is my model object

sum(unlist(lapply(slotNames(cc), function (x)  object.size(slot(cc, x)))))
# returns: [1] 2521256
save(cc, …
Run Code Online (Sandbox Code Playgroud)

memory-management r classification decision-tree

7
推荐指数
1
解决办法
1696
查看次数

将实体命名为文本分类中的功能?

使用现有的文本分类(监督)技术,为什么我们不将文本中的命名实体(NE)视为培训和测试中的一个特征?您认为使用NE作为功能可以提高精度吗?

text classification machine-learning named-entity-recognition

7
推荐指数
1
解决办法
1011
查看次数

哪种分类算法可用于文档分类?

嘿,这是我的问题,

给定一组文档,我需要将每个文档分配给预定义的类别.

我将使用n-gram方法来表示每个文档的文本内容,然后在我拥有的训练数据上训练SVM分类器.
如果我想念一些东西,请纠正我.

现在的问题是类别应该是动态的.意思是,我的分类器应该处理新类别的新训练数据.

因此,例如,如果我训练分类器将给定文档分类为类别A,类别B或类别C,然后我获得了类别D的新训练数据.我应该能够通过提供它来增量训练我的分类器. "D类"的新培训数据.

总而言之,我不想将旧的训练数据(包括3个类别)和新的训练数据(使用新的/看不见的类别)组合在一起并再次训练我的分类器.我想在飞行中训练我的分类器

这可以用SVM实现吗?如果没有,你能推荐我几种分类算法吗?或任何可以帮助我的书/纸.

提前致谢.

algorithm classification machine-learning document-classification

7
推荐指数
1
解决办法
4716
查看次数

使用Sci-Kit学习使用大型语料库对文本进行分类

我的数据库中有大约1600篇文章,每篇文章都已经预先标记了以下类别之一:

Technology
Science
Business
World
Health
Entertainment
Sports
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用sci-kit学习构建一个分类新文章的分类器.(我想我会将训练数据分成两半,用于训练和测试?)

我希望使用tf-idf,因为我没有停止词的列表(我可以使用NLTK仅提取形容词和名词,但我宁愿给scikit - 学习完整的文章).

我已经阅读了关于scikit-learn的所有文档,但是他们的例子涉及单词出现和N-gram(很好),但他们从未指定如何将一段数据绑定到标签.

我已经尝试过查看他们的示例代码了,但是它太难以理解了.

有人可以帮我解决这个问题,还是指出我正确的方向?

谢谢.

python classification scikit-learn

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

sklearn中的分类树给出不一致的答案

我正在使用分类树sklearn,当我使用相同的数据进行两次模型训练时,并使用相同的测试数据进行预测,我得到的结果不同.我尝试在较小的虹膜数据集上进行再现,并且它按预期工作.这是一些代码

from sklearn import tree
from sklearn.datasets import iris

clf = tree.DecisionTreeClassifier()
clf.fit(iris.data, iris.target)
r1 = clf.predict_proba(iris.data)

clf.fit(iris.data, iris.target)
r2 = clf.predict_proba(iris.data)
Run Code Online (Sandbox Code Playgroud)

r1并且r2对于这个小例子是相同的,但是当我运行我自己的更大的数据集时,我会得到不同的结果.是否会出现这种情况?

编辑在查看一些文档后,我看到它DecisionTreeClassifier有一个random_state控制起点的输入.通过将此值设置为常量,我摆脱了以前遇到的问题.但是现在我担心我的模型不尽如人意.这样做的推荐方法是什么?随便尝试一下?或者预计所有结果大致相同?

python classification decision-tree scikit-learn

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

从字符串列表中,确定哪些是人名,哪些不是

我有一个类似下面的矢量,并希望确定列表中的哪些元素是人名,哪些不是.我发现了humaniformat包,它格式化了名称,但遗憾的是并不确定字符串是否实际上是一个名称.我还发现了一些用于实体提取的包,但它们似乎需要实际的文本来进行词性标注,而不是单个名称.

pkd.names.quotes <- c("Mr. Rick Deckard", # Name
                      "Do Androids Dream of Electric Sheep", # Not a name
                      "Roy Batty", # Name 
                      "How much is an electric ostrich?", # Not a name
                      "My schedule for today lists a six-hour self-accusatory depression.", # Not a name
                      "Upon him the contempt of three planets descended.", # Not a name
                      "J.F. Sebastian", # Name
                      "Harry Bryant", # Name
                      "goat class", # Not a name
                      "Holden, Dave", # Name
                      "Leon Kowalski", # Name …
Run Code Online (Sandbox Code Playgroud)

text nlp r classification

7
推荐指数
1
解决办法
3391
查看次数

以y_true取决于y_pred的方式自定义Keras的损失函数

我正在研究多标签分类器.我有很多输出标签[1,0,0,1 ...],其中1表示输入属于该标签,0表示否则.

在我的情况下,我使用的损失函数基于MSE.我想以一种方式改变损失函数,当输出标签为-1时,它将改变为该标签的预测概率.

检查附加的图像以最好地理解我的意思:场景是 - 当输出标签为-1时我希望MSE等于零:

这是场景: 在此输入图像描述

在这种情况下,我希望它改为:

在此输入图像描述

在这种情况下,第二个标签的MSE(中间输出)将为零(这是我不希望分类器了解此标签的特殊情况).

感觉这是一个必要的方法,我真的不相信我是第一个考虑它的人,所以首先我想知道是否有这样的训练神经网络的名称,其次我想知道如何我可以做吗.

我知道我需要更改损失函数中的一些东西,但我真的是Theano的新手,并且不确定如何查找特定值以及如何更改张量的内容.

python classification theano keras

7
推荐指数
1
解决办法
4618
查看次数

用于具有大量类的多标签分类的神经网络仅输出零

我正在训练一个用于多标签分类的神经网络,具有大量的类(1000).这意味着每个输入都可以激活多个输出.平均而言,每个输出帧有两个活动类.在具有交叉熵损失的训练中,神经网络倾向于仅输出零,因为它具有该输出的最小损失,因为99.8%的我的标签是零.关于我如何推动网络给予积极课程更多权重的任何建议?

classification machine-learning neural-network keras

7
推荐指数
1
解决办法
1687
查看次数

如何在R中为决策树模型创建增益图表?

我在R中创建了一个决策树模型.目标变量是Salary,我们试图根据其他输入变量来预测一个人的工资是高于还是低于50k

df<-salary.data 

train = sample(1:nrow(df), nrow(df)/2)
train = sample(1:nrow(df), size=0.2*nrow(df))
test = - train
training_data = df[train, ]
testing_data = df[test, ]

fit <- rpart(training_data$INCOME ~ ., method="class", data=training_data)##generate tree
testing_data$predictionsOutput = predict(fit, newdata=testing_data, type="class")##make prediction
Run Code Online (Sandbox Code Playgroud)

之后,我尝试通过执行以下操作创建增益图表

# Gain Chart
pred <- prediction(testing_data$predictionsOutput, testing_data$INCOME)
gain <- performance(pred,"tpr","fpr")
plot(gain, col="orange", lwd=2)
Run Code Online (Sandbox Code Playgroud)

通过查看引用,我无法理解如何使用ROCR包通过使用"预测"功能来构建图表.这仅适用于二进制目标变量吗?我收到的错误是"预测格式无效"

任何帮助都将非常感谢帮助我为上述模型构建增益图表.谢谢!!

  AGE          EMPLOYER     DEGREE             MSTATUS            JOBTYPE     SEX C.GAIN C.LOSS HOURS
1  39         State-gov  Bachelors       Never-married       Adm-clerical    Male   2174      0    40
2  50  Self-emp-not-inc  Bachelors  Married-civ-spouse    Exec-managerial    Male      0      0 …
Run Code Online (Sandbox Code Playgroud)

r classification machine-learning decision-tree rstudio

6
推荐指数
1
解决办法
5085
查看次数