Initializers#

Модуль, предоставляющий интерфейс и конкретные классы для инициализации начального приближения смеси.

Select Parameters

Было решено вынести инициализаторы в отдельный модуль, а так же не связывать BaseEstimator и BaseInitializer отношением композиции потому что:

  • Интерфейсы инициализатора и оценщика разные, один принимает готовую смесь, а второй список распределений.

  • Будет сложнее отслеживать поведение инициализатора, по той причине, что его результат будет обрабатываться внутри оценщика. Поэтому не получится отдельно еще каким либо образом поработать с начальным приближением перед тем, как отправить его в алгоритм.

Классы#

BaseInitializer#

Абстрактный класс, занимающийся инициализацией начального приближение смеси.

  • Атрибуты

  • Методы

    • + perform(X, list[Distribution]): MixtureModel

      Абстрактный метод, который некоторым образом по выборке и списку распределений подбирает начальное приближение. Это приближение в виде смеси можно передать в объекты, реализующие интерфейс BaseEstimator.

  • Мысли

    Думаю, стоит так же через стратегии (@singledispatch) делать, т.к. инициализировать каждую компоненту надо отдельно.

ClusterizeInitializer#

Реализация абстрактного класса BaseInitializer, основанная на кластеризации выборки и последующей инициализации параметров с учетом кластеров.

  • Атрибуты

    • - is_soft: bool

      Флаг, влияющий на то, будет ли матрица ответственностей жёсткой или мягкой. Если его значение true, то матрица будет содержать вероятности между 0 и 1. В противном случае будут устанавливаться жесткие вероятности, либо 0 либо 1.

    • - clusterizer

      Кластеризатор из sklearn, который будет проводить кластеризацию.

    • + labels: list

      Метки принадлежности элементов к тому или иному кластеру.

Различные диаграммы#