【发布时间】:2014-08-19 03:02:39
【问题描述】:
我必须使用 MATLAB 编写一个脚本来对我的数据进行分类。
我的数据由 1051 个网页(行)和 11000 多个单词(列)组成。我在每页的矩阵中都保存了单词出现。前 230 行是关于计算机科学课程的(标记为 +1),其余 821 行不是(标记为 -1)。我将自己标记这些行的一部分(比如 30 行)。然后 SVM 将标记剩余的未标记行。
我发现我可以使用 MATLAB 的 svmtrain() 和 svmclassify() 方法解决我的问题。首先我需要创建SVMStruct。
SVMStruct = svmtrain(Training,Group)
那我需要使用
Group = svmclassify(SVMStruct,Sample)
但我不知道Training 和Group 是什么。对于Group Mathworks 说:
分组变量,可以是分类变量、数字变量或逻辑变量 向量、字符串的单元向量或每行的字符矩阵 代表一个类标签。 Group 的每个元素指定组 对应的培训行。小组应分培训 分成两组。组具有相同数量的元素 训练中的行。 svmtrain 处理每个 NaN、空字符串或 Group 中的 'undefined' 作为缺失值,并忽略相应的 训练行。
对于Training,据说:
训练数据矩阵,其中每一行对应一个观察值 或复制,每一列对应一个特征或变量。 svmtrain 将 Training 中的 NaN 或空字符串视为缺失值 并忽略 Group 的相应行。
我想知道如何将我的数据用于Training 和Group?我需要(至少)一些代码示例。
编辑
我不明白的是,为了拥有SVMStruct,我必须运行
SVMStruct = svmtrain(Training, Group);
为了拥有组我必须运行
Group = svmclassify(SVMStruct,Sample);
另外我还是没明白Sample应该是什么样子?
我很困惑。
【问题讨论】: