【问题标题】:Why SVC model returns prediction with array of values all equal to 1?为什么 SVC 模型返回值数组都等于 1 的预测?
【发布时间】:2021-02-11 23:23:11
【问题描述】:

我有一个数据库,代表不同类型的餐厅堂兄弟。对于这个数据库,我已经进行了一次热编码,它产生了一系列具有二进制值的列,如下所示(并非所有列都显示)。

我必须建立一个预测模型,以便在给定所有 cousin_type 的情况下预测 y "%equal_class" 值(从 1 到 10)。 我尝试使用带有以下代码的 SVC 模型

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test=train_test_split(X,y,test_size=0.2,random_state=4)
from sklearn import svm
clf=svm.SVC(kernel='sigmoid',gamma='auto')
clf.fit(X_train,y_train)
yhat=clf.predict(X_test)
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

预测的 yhat 值返回一个数组,其中所有值都等于 1。我尝试了不同的内核,但结果是相同的。 你能告诉我我错了吗?

【问题讨论】:

    标签: machine-learning scikit-learn svm


    【解决方案1】:

    可能是因为@ 987654321(与标签1的许多样本与其他标签相比)。您应该在F1得分中执行网格搜索并优化Hyper参数(在案例伽玛中),而不是将其设置为“自动”。

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 2020-09-12
      • 1970-01-01
      • 2017-12-08
      • 2019-01-06
      • 2019-05-28
      • 2019-04-03
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多