我开始使用LIBSVM
进行回归分析。我的世界有大约20个特征和数千到数百万的训练样本。
我很好奇两件事:
是否有指示模型准确性或置信度的指标,可能在.model文件或其他地方?
如何确定某项功能是否重要?例如,如果我试图预测体重是身高,肩宽,性别和头发颜色的函数,我可能会发现头发颜色不是预测体重的重要特征。这是否反映在.model文件中,或者是否有某种方法可以找到?
答案 0 :(得分:2)
libSVM根据分类器的确定性计算测试点的 p - 值(即,距离决策边界的测试点有多远以及边距有多宽)。
我认为您应该考虑将特征重要性的确定作为训练SVM的单独问题。 “功能选择”的方法有吨(只需打开任何教科书),但一个易于理解,直截了当的方法是简单的交叉验证,如下所示:
您也可以单独测试每个 n 功能,但您可能会错过功能之间重要的二阶和更高阶互动。
然而,一般情况下,SVM擅长忽略不相关的特征。
您可能还想尝试使用主成分分析来可视化您的数据,以了解数据的分布方式。
答案 1 :(得分:1)
F-score 是机器学习中常用于功能选择的指标。
从3.0版开始,LIBSVM库包含一个名为 tools 的目录。在该目录中是一个名为 fselect.py 的python脚本,它计算F-score。要使用它,只需从命令行执行并传入由训练数据(以及可选的测试数据文件)组成的文件。
python fselect.py data_training data_testing
输出由 fscore 组成,用于数据集中的每个功能,这些功能对应于该功能对模型结果(回归分数)的重要性。