'ImportError: No module named 'sklearn.lda'

When I run classifier.py in the openface demos directory using:

classifier.py train ./generated-embeddings/

I get the following error message:

--> from sklearn.lda import LDA

ModuleNotFoundError: No module named 'sklearn.lda'.

I think to have correctly installed sklearn.

What could be the reason for this message?



Solution 1:[1]

It seems that you have installed a newer version of sklearn but you are trying to call an old one.

1) First check your version

import sklearn
sklearn.__version__

2) Then use something like the following depending on the version that you have installed

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA

Documentation here:

http://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html

Solution 2:[2]

Best guess is that you're using the call for Linear Discriminant Analysis from sklearn 0.16, not the current version (0.19).

Try using sklearn.discriminant_analysis.LinearDiscriminantAnalysis instead.

Here's the link to the docs.

Solution 3:[3]

In case you are using new version and using

from sklearn.qda import QDA

it will give error, try

from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 grundy
Solution 3 Shivendra Rajawat