预测sklearn中的训练数据

发布于 2021-01-29 15:01:40

我像这样使用scikit-learn的SVM:

clf = svm.SVC()
clf.fit(td_X, td_y)

我的问题是,当我使用分类器预测训练集成员的班级时,即使在scikit-
learns实现中,分类器也可能是错误的。(例如clf.predict(td_X[a])==td_Y[a]

关注者
0
被浏览
78
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    是的,可以运行以下代码,例如:

    from sklearn import svm
    import numpy as np
    clf = svm.SVC()
    np.random.seed(seed=42)
    x=np.random.normal(loc=0.0, scale=1.0, size=[100,2])
    y=np.random.randint(2,size=100)
    clf.fit(x,y)
    print(clf.score(x,y))
    

    分数是0.61,因此将近40%的训练数据被错误分类。部分原因是,即使默认内核是'rbf'(理论上也应该能够对任何训练数据集进行完美分类,只要您没有两个带有不同标签的相同训练点),也可以进行正则化以减少过度拟合。默认的正则化器为C=1.0

    如果您运行与上述相同的代码,但切换clf = svm.SVC()clf = svm.SVC(C=200000),则精度为0.94。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看