我正在Support Vector Machines使用document classification。我为每个文档设置的特征是tf-idf向量。我有大小为N的每个tf-idf向量的M个文档。 给出M * N矩阵。
M的大小只有10个文档,tf-idf向量是1000个单词向量。所以我的功能远远大于文档数量。每个单词也出现在2或3个文档中。当我使用
对每个特征(单词)进行标准化时,即[0,1]中的列标准化val_feature_j_row_i = ( val_feature_j_row_i - min_feature_j ) / ( max_feature_j - min_feature_j)
它当然要么给我0,1。
它给了我不好的结果。我使用libsvm,rbf function C = 0.0312,gamma = 0.007815
有什么建议吗?
我应该包含更多文件吗?或其他函数,如sigmoid或更好的规范化方法?
答案 0 :(得分:2)
要考虑和纠正的事项列表很长,所以首先我会在尝试面对问题之前推荐一些机器学习阅读。有许多好书(如Haykin的“神经网络和学习机器”)以及在线课程,它们将帮助您完成这些基础知识,如下面列出的那些:http://www.class-central.com/search?q=machine+learning。
回到问题本身:
C
和gamma
值并期望任何合理的结果。你必须检查几十个,甚至得到“在哪里搜索”的线索。这样做的最简单方法是所谓的grid search
,最后为什么简单的功能压缩
它当然要么给我0,1。
它应该导致[0,1]间隔中的值,而不仅仅是它的限制。因此,如果是这种情况,您可能在实施中遇到了一些错误。