Classification workflow: "error: module sklearn multioutput has no attribute MultiOutputEstimator"

Issue #632 resolved
Former user created an issue

Hello, when I try to run the RF classifier with 3 classes, created from a vector point file, on a 5-band image with defined nodata values, step 2 stops with this error: "module sklearn multioutput has no attribute MultiOutputEstimator". The package installer shows "Latest version "scikit-learn" = 0.24.1". I am using the EnMap toolbox version 3.7 on the QGIS version 3.16.3 Hannover installed via OSGeo4W. I appreciate your help. Many thanks, Jane

Comments (7)

  1. Tom Flipsen

    I have the identical problem while trying to create a classification using the example data set. I’m on Qgis 3.12.3 (had issues getting enmap-box to work on the newest version of Qgis), on the newest experimental version of Enmapbox 3.7.20201026T172128.DEVELOP (necessary for my data type) and have the most recent version of sklearn 1.0.2.

  2. Andreas Janz

    Hi Tom,

    EnMAP-Box 3.7 is quite old. Current version is 3.9. You have to update your QGIS to see that version.

    Please check, if the problem still exists in v3.9.

    Regards
    Andreas

  3. Tom Flipsen

    Hi Andreas,

    Thanks for the fast response. I have updated to Qgis 3.22.3. and installed 3.9.20211123T125541.MASTER. Enmap-box’s internal package installer confirms I have all recent modules installed, which I did through the Osgeo4W shell. I have two problems though:

    1. If I try to execute a quickmap classification workflow using example data i get the error ‘No module named sklearn’ (full response at the end).
    2. If I try to load PRISMA L2D data, I get the error: ‘no module named h5py’.

    The internal package installer confirms I have h5py version 3.6.0 and sklearn version 1.0.2. Do you know what might be going wrong?

    error message 1:

    Traceback (most recent call last):

    File "C:\Users/tom/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapboxprocessing\algorithm\fitclassifieralgorithmbase.py", line 67, in checkParameterValues

    self.parameterAsClassifier(parameters, self.P_CLASSIFIER, context)

    File "C:\Users/tom/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\site-packages\typeguard\__init__.py", line 903, in wrapper

    retval = func(*args, **kwargs)

    File "C:\Users/tom.flipsen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapboxprocessing\algorithm\fitclassifieralgorithmbase.py", line 58, in parameterAsClassifier

    exec(code, namespace)

    File "<string>", line 1, in <module>

    File "C:\PROGRA~1/QGIS32~1.3/apps/qgis/./python\qgis\utils.py", line 888, in _import

    mod = _builtin_import(name, globals, locals, fromlist, level)

    ModuleNotFoundError: No module named 'sklearn'

    error message 2:

    Traceback (most recent call last):
    File "C:\Users/tom.flipsen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\site-packages\typeguard\__init__.py", line 903, in wrapper
    retval = func(*args, **kwargs)
    File "C:\Users/tom.flipsen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapboxprocessing\algorithm\importprismal2dalgorithm.py", line 69, in processAlgorithm
    import h5py
    File "C:\PROGRA~1/QGIS32~1.3/apps/qgis/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
    ModuleNotFoundError: No module named 'h5py'

  4. Tom Flipsen

    I actually had all missing packages installed via the package installer already. I decided to clean my pc of alle qgis and python files and downloaded it again. now it works, there was likely a problem with the file structure due to the use of different qgis versions.

  5. Log in to comment