Scikit-learn(SVC估计器)总是为预测提供相同的值

时间:2016-04-09 14:29:23

标签: python pandas scikit-learn svm

我正在完成有监督学习的任务。我有两套数据 - 训练和测试。

我的训练数据集约有2000条记录。我的测试数据有10条记录 当我运行以下代码时,预测函数给出与输出相同的值。

我不确定我做错了什么......我尝试改变伽玛和C的值。仍然没有运气..

我想知道是否:

  1. 与数据(训练集大小)或
  2. 有关
  3. 我只是使用错误的估算器或
  4. 我的代码搞砸了?
  5. 这是完整的python代码:

    array([7734, 7734, 7734, 7734, 7734, 7734, 7734, 7734, 7734, 7734], dtype=int64)
    

    这是输出:

          <div class="media text-xs-left">
            <div class="media-left media-middle">
              <p class="lead">
                <img src="default.jpg">
              </p>
            </div>
            <div class="media-body">
              <p class="lead">
                <h6>here text</h6>
              </p>
            </div>
          </div>
    

    我甚至尝试过使用LinearSVC。仍然没有运气。唯一的区别是预测输出是一个不同的值(9240),但在整个......

1 个答案:

答案 0 :(得分:2)

始终提供相同的输出可能有两个原因:

  • 您的模型是否过度拟合(不平衡数据集?)
  • 您没有向模型提供正确的数据

您似乎没有将Pandas DataFrame转换为numpy数组,请尝试

clf = svm.SVC()    
X = data.values
Y = target.values
assert len(X) == len(Y)

clf.fit(X,Y)
print clf.score(X,Y)

对测试数据执行相同的操作,并尝试至少打印数据的形状和数组的一个元素。