список подпакетов и функций, установленных в sklearn

#python #scikit-learn #module #package

#python #scikit-learn #модуль #пакет

Вопрос:

Я действительно борюсь с этим. Я пытаюсь открыть модули sklearn, чтобы просмотреть установленные версии, поскольку у меня возникли проблемы с пакетами и кодом. В частности, xgboost , from sklearn import impute.KNNImputer и другие. Моя система:

 System:
    python: 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
executable: C:ProgramDataAnaconda3python.exe
   machine: Windows-10-10.0.18362-SP0

Python deps:
       pip: 19.2.3
setuptools: 41.4.0
   sklearn: 0.21.3
     numpy: 1.16.5
     scipy: 1.3.1
    Cython: 0.29.13
    pandas: 0.25.1
  

И это не так просто обновить, поскольку я работаю с Office notebook, поэтому у меня нет разрешения на обновление / установку пакетов по моему желанию. Итак:

-Как мне получить список подпакетов и версий sklearn? Хотелось бы увидеть все возможности / пакеты и функции:

 from sklearn.subpackage import function1, function2 # this is my definition os subpackage and function, correct me if I'm wrong
from sklearn.subpackage2 import function10, function20, function30
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.pipeline import FeatureUnion, make_pipeline
  
  • Получив этот список выше, узнаю ли я, какая from sklearn import impute.KNNImputer такая же / похожая функция была для более старой версии sklearn? Здесь вы можете видеть, что sklearn.impute.KNNImputer это для 0.22 версии sklearn, и у меня есть 0.21 . (Поэтому я готов найти в этом списке аналогичную функцию)

  • То же самое xgboost , поскольку это пакет, установленный отдельно, некоторые из них должны быть sklearn.xgboost установлены по умолчанию в sklearn, где, используя приведенный выше список, я смогу узнать, какую функцию / модуль xgboost я смогу использовать.

Итак, я ищу функцию / метод, который выполняет что-то вроде:

 sklearn.list_subpackages()
output: package (version 1.2), package2 (version 2.3), model_selection (version 5.1), metrics (version 10.1), pipeline (version 2.1)

package2.list_functions()
output: function10, function20, function30

model_selection.list_functions()    
output: train_test_split
  

Есть предложения?

Комментарии:

1. вы можете запустить conda prompt ?

2. если вы имеете в виду терминал Anaconda, да, я могу

Ответ №1:

Вам нужно перейти по каталогу пакетов python, открыть папку sklearn, найти файл подпакета, щелкнуть по нему правой кнопкой мыши и отредактировать его с помощью sublime text или другого текстового редактора или ide …. подождите, не редактируйте! Большинство модулей и пакетов имеют номер версии и описание в них либо в виде строк, либо в виде строк с комментариями, таких как:

 """
This is the subpackage, version number blah blah and more information..
"""
from example import example
  

но вы можете хранить их в переменных подпакетов, например, смотрите этот __init__.py файл из keras (просто посмотрите последнюю строку), код внутри выглядит так:

 
try:
    from tensorflow.keras.layers.experimental.preprocessing import RandomRotation
except ImportError:
    raise ImportError(
        'Keras requires TensorFlow 2.2 or higher. '
        'Install TensorFlow via `pip install tensorflow`')

from . import utils
from . import activations
from . import applications
from . import backend
from . import datasets
from . import engine
from . import layers
from . import preprocessing
from . import wrappers
from . import callbacks
from . import constraints
from . import initializers
from . import metrics
from . import models
from . import losses
from . import optimizers
from . import regularizers

# Also importable from root
from .layers import Input
from .models import Model
from .models import Sequential

__version__ = '2.4.3'
  

Как вы можете видеть в последней строке.. __version__ = '2.4.3' вы можете сделать то же самое с нужным подпакетом, прочитать из строки комментария и создать переменную версию, сохранить номер версии, затем вы можете легко получить доступ к переменной подпакетов в вашей функции после их импорта.

Комментарии:

1. как вы находите папку sklearn? Я установил его с помощью anaconda, и когда я просматриваю его папку, там около 40 папок и вложенных папок, очень похожих на «пакеты», «библиотека» и т.д.