SparseFiltering

Выделение признаков разреженной фильтрацией

Описание

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

Создание

Создайте объект SparseFiltering с помощью функции sparsefilt.

Свойства

развернуть все

Это свойство доступно только для чтения.

Подходящая история, возвращенная как структура с двумя полями:

  • Iteration — Числа итерации от 0 до итоговой итерации.

  • Цель Значение целевой функции в каждой соответствующей итерации. Итерация 0 соответствует начальным значениям перед любым подбором кривой.

Типы данных: struct

Это свойство доступно только для чтения.

Начальные веса преобразования функции, возвращенные как p-by-q матрица, где p является количеством предикторов, передали в X, и q является количеством функций, которые вы хотите. Эти веса являются начальными весами, переданными функции создания. Тип данных является одним, когда данные тренировки X являются одним.

Типы данных: single | double

Это свойство доступно только для чтения.

Параметры использовали для обучения модель, возвращенную как структура. Структура содержит подмножество полей, которое соответствует парам "имя-значение" sparsefilt, которые были в действительности во время образцового создания:

  • IterationLimit

  • VerbosityLevel

  • Lambda

  • Standardize

  • GradientTolerance

  • StepTolerance

Для получения дополнительной информации смотрите пары "имя-значение" sparsefilt в документации.

Типы данных: struct

Это свойство доступно только для чтения.

Средние значения предиктора при стандартизации, возвратились как p-by-1 вектор. Это свойство непусто, когда парой "имя-значение" Standardize является true при образцовом создании. Значение является вектором средних значений предиктора в данных тренировки. Тип данных является одним, когда данные тренировки X являются одним.

Типы данных: single | double

Это свойство доступно только для чтения.

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

Типы данных: double

Это свойство доступно только для чтения.

Количество входных предикторов, возвращенных как положительное целое число. Это значение является количеством предикторов, переданных в X функции создания.

Типы данных: double

Это свойство доступно только для чтения.

Стандартные отклонения предиктора при стандартизации, возвратились как p-by-1 вектор. Это свойство непусто, когда парой "имя-значение" Standardize является true при образцовом создании. Значение является вектором стандартных отклонений предиктора в данных тренировки. Тип данных является одним, когда данные тренировки X являются одним.

Типы данных: single | double

Это свойство доступно только для чтения.

Покажите веса преобразования, возвращенные как p-by-q матрица, где p является количеством предикторов, переданных в X, и q является количеством функций, которые вы хотите. Тип данных является одним, когда данные тренировки X являются одним.

Типы данных: single | double

Функции объекта

transformПреобразуйте предикторы в извлеченные функции

Примеры

свернуть все

Создайте объект SparseFiltering при помощи функции sparsefilt.

Загрузите закрашенные фигуры caltech101 изображений.

data = load('caltech101patches');
size(data.X)
ans = 1×2

      100000         363

Существует 100 000 закрашенных фигур изображений, каждый содержащий 363 функции.

Извлеките 100 функций от данных.

rng default % For reproducibility
Q = 100;
obj = sparsefilt(data.X,Q,'IterationLimit',100)
Warning: Solver LBFGS was not able to converge to a solution.
obj = 
  SparseFiltering
            ModelParameters: [1x1 struct]
              NumPredictors: 363
         NumLearnedFeatures: 100
                         Mu: []
                      Sigma: []
                    FitInfo: [1x1 struct]
           TransformWeights: [363x100 double]
    InitialTransformWeights: []


  Properties, Methods

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

Введенный в R2017a