shaare.it

ValueError: LDA solver incompatible with shrinkage

ValueError: LDA shrinkage solver mismatch

$ python -c "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA; LDA(solver='svd', shrinkage='auto').fit([[0,0],[1,1]], [0,1])"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ValueError: shrinkage is not supported with solver 'svd'

Why this happens

shrinkage requires solver='lsqr' or 'eigen'.

Fix

Switch to a compatible solver when using shrinkage.

Wrong code

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
LDA(solver='svd', shrinkage='auto')

Fixed code

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
LDA(solver='lsqr', shrinkage='auto')