【问题标题】:Generating model file in LIBSVM在 LIBSVM 中生成模型文件
【发布时间】:2015-12-11 12:49:17
【问题描述】:
我正在研究生物信息学。我有一个氨基酸组成序列的数据集。我想使用 SVM 算法将这些氨基酸组成序列分为正类和负类。我正在使用 libsvm 工具对氨基酸序列进行分类。我拥有的数据集包含 3909 行。但是当我应用 libsvm 的 svm-train 函数来生成模型文件时,正在生成的模型文件包含 2233 行。所以我的数据集的实际维度从 3909 减少到 2233。我不明白为什么会这样..??请帮帮我。
【问题讨论】:
标签:
machine-learning
bioinformatics
libsvm
【解决方案1】:
模型仅保留定义类所需的支持向量。坦率地说,我很惊讶它保留了这么多原始行。
您的术语不正确。 “维度”是特征(列)的数量,而不是行数。维数没有减少。考虑这一点的一种方法是,需要 2233 次观察来定义正面和负面之间的整个边界。其他 1694 个点位于其他数据点“后面”,离边界更远。
举一个非常简单的例子,将所有整数视为数据点。我们对它们进行简单的分类:所有大于 pi (3.14159...) 的点都在正集中;所有较小的都标记为负数。将此输入 SVM 算法 - 你得到的只有 two 行:3 是负数; 4 为阳性。所有其他点都在一个或另一个“后面”。
这有帮助吗?