[解决]用SVM建立初步模型进行滤波

kasper2304kasper2304 成员职位:28因素二世
2019年6月编辑 帮助
大家好。

这种情况是,我正在构建一个文本分类模型。我有大约500.000论坛帖子,我想分类,如果他们包含一个想法或不。我已经分类了300个帖子,其中9个是阳性病例。这个想法是使用已经分类的帖子来建立一个“坏”模型,这个模型可以给我一个更好的线索,告诉我哪些帖子包含积极的案例。这样做之后,我们的想法是使用这个初步的坏模型作为过滤器来挑选出大约3000个应该手动分类的帖子。

我想问两个问题。

1)如何挑选出大量的变量。Fx主成分,决策树还是只取高度相关的变量?
2)如何在快速矿工中设置支持向量机(我期待的只是提示,我已经看了视频)

我将文档项矩阵作为二元加权和tf-idf分数加权。我只是想尝试一下,看看它们的表现如何。

欢迎任何帮助

最好的
卡斯帕

答案

  • MariusHelfMariusHelf RapidMiner认证专家、会员职位:1869年独角兽
    你好,卡斯帕,让我们从你的第二个问题开始吧,因为这个问题很简单。对于文本分类,您可能希望使用线性支持向量机。在这种情况下,唯一需要优化的参数是c。一个较好的范围是在对数尺度上从1E-6到1E3。使用优化参数(网格)操作符和交叉验证可以很容易地做到这一点。带有rbf核的SVM有一个额外的重要参数gamma,它必须在与C相同的范围内进行优化。

    第一个问题没有明确的答案。你主要有两种选择:使用统计方法,或者使用实验方法。后一种方法的一个例子是Forward Selection,它有一个子流程,通常包含对您选择的模型的交叉验证。在执行期间,前向选择从一个空示例集开始,并迭代地从原始数据中添加该属性,从而获得最高的性能增益。当添加新属性无法获得显著增益时,算法停止。这通常比统计方法慢得多,但它具有捕获属性交互的优点,并且针对您特定的模型创建方法进行了固有的优化。
    另一方面,统计方法通常要快得多,但通常找不到属性交互。你已经提到了其中的一些,我能给你的唯一提示是,试一试:)

    挖掘快乐!
    马吕斯~
  • kasper2304kasper2304 成员职位:28因素二世
    谢谢马吕斯的回信。

    到目前为止,我拥有的最好的模型是带有“点”内核和x验证的逻辑回归。对于降维,我对50个提取的术语进行PCA,并将术语数量减少到20个,然后用于我的逻辑回归。回想起我老师说过的关于传统回归模型适用于小数据集的事情……我真的不记得他是否真的说过,但我认为它们在科学研究和统计中被普遍使用一定是有原因的……

    我发现一个有趣的事情是,我有3个人对我的训练集进行分类,而不是只使用“完全一致”的情况,我还使用了两个人类分类器为积极情况的情况。这给了我12个积极案例,我的逻辑回归比只有“纯”积极案例要好得多,这在我的世界里很有意义。在和您一起去接近马吕斯之前,我有以下的结论:

    类召回率(0)= 96,53%
    类召回率(1)= 41,67%
    类精度(0)= 97,54%
    类精度(1)= 33,33%

    我会尝试你告诉我的SVM方法。大多数文献建议支持向量机,所以我有点困惑,当我第一次尝试它时,它没有表现得那么好,但也许你的设置会。

    再次感谢你的回答。

    我的教授现在很忙,所以我不能指望从他那里得到太多的帮助,所以你的帮助是非常感谢的!
  • MariusHelfMariusHelf RapidMiner认证专家、会员职位:1869年独角兽
    你好,

    经常使用并不是质量的好指标。有成千上万的例子表明,大众被引导到一个完全错误的方向,最常见的是一些很酷的流行语。以神经网络为例,它是一个可怕的野兽,很难解释和优化。然而,大多数数据挖掘的新手都要求使用神经网络,即使存在一种非常好的SVM替代形式。

    关于你的糟糕性能:svm需要优化,正如我在上面的帖子中所写的那样。顺便说一句,RapidMiner的逻辑回归是由一个具有特殊内核类型的SVM内部驱动的。

    优化快乐!
    马吕斯~
  • kasper2304kasper2304 成员职位:28因素二世
    是的。神经网络可能很可怕,尤其是在过度拟合方面。

    关于逻辑回归很好的信息。作为一个相对较新的数据挖掘者,我以前从未听说过它。我想我该调查一下。有好的消息来源吗?在这一点上,我最好的结果是使用dot内核的逻辑回归,使用标准设置的x验证。我想我还是用这个,用最优节点吧。

    在这一点上,我唯一担心的是过度拟合我拥有的小数据集的风险。当我决定使用什么模型时,这个想法是使用模型来提取基于我刚刚构建的模型的3000个新帖子,并让2个人手动对它们进行分类。这当然会给出更多正的情况,这很好,因为正的情况在我的问题中是很少的。我现在唯一担心的是,我用于3000例过滤器的模型不应该太适合300例数据集,但我真的不知道如何评估这一点。什么好主意吗?

    只是运行逻辑回归与点内核优化与您建议的设置,它是一个表现最好的到目前为止。我想我走的方向是对的!:)
登录注册置评。