pythonmachine-learningscikit-learnsvm

Why do I get a NotImplementedError when trying to use SVC for probability prediction?


I'm trying to use SVC from sklearn to do a classification problem. Given a bunch of data, and information telling me whether some subject is in a certain class or not, I want to be able to give a probability that a new, unknown subject is in a class.

I only have 2 classes, so the problem is binary. Here is my code and some of my errors

from sklearn.svm import SVC
clf=SVC()

clf=clf.fit(X,Y)


SVC(probability=True)
print clf.predict_proba(W) #Error is here

But it returns the following error:

NotImplementedError: probability estimates must be enabled to use this method

How can I fix this?


Solution

  • You have to construct the SVC object with probability=True

    from sklearn.svm import SVC
    clf=SVC(probability=True)
    clf.fit(X,Y)
    print clf.predict_proba(W) #No error
    

    Your code creates a SVC with probability estimates and discards it (as you do not store it in any variable) and use some previous SVC stored in clf (without probability)