fixunknowns

Обработайте данные путем маркировки строк неизвестными значениями

Синтаксис

[y,ps] = fixunknowns(X)
[y,ps] = fixunknowns(X,FP)
Y = fixunknowns('apply',X,PS)
X = fixunknowns('reverse',Y,PS)
name = fixunknowns('name')
fp = fixunknowns('pdefaults')
pd = fixunknowns('pdesc')
fixunknowns('pcheck',fp)

Описание

fixunknowns обрабатывает матрицы путем замены каждой строки, содержащей неизвестные значения (представленные NaN) с двумя строками информации.

Первая строка содержит исходную строку с NaN значения заменены средним значением строки. Вторая строка содержит 1 и 0 значений, указывающих, какие значения в первой строке были известны или неизвестны, соответственно.

[y,ps] = fixunknowns(X) принимает эти входы,

X

N-by- Q матрица

и возвращает

Y

M-by- Q матрица с M - N добавлены строки

PS

Настройки процесса, которые позволяют последовательно обрабатывать значения

[y,ps] = fixunknowns(X,FP) принимает пустой struct FP параметров.

Y = fixunknowns('apply',X,PS) возвращает Y, заданные X и настройки PS.

X = fixunknowns('reverse',Y,PS) возвращает X, заданные Y и настройки PS.

name = fixunknowns('name') возвращает имя этого метода процесса.

fp = fixunknowns('pdefaults') возвращает структуру параметра процесса по умолчанию.

pd = fixunknowns('pdesc') возвращает описание параметров процесса.

fixunknowns('pcheck',fp) выдает ошибку, если какой-либо параметр недопустим.

Примеры

Вот как форматировать матрицу со смесью известных и неизвестных значений во второй строке:

x1 = [1 2 3 4; 4 NaN 6 5; NaN 2 3 NaN]
[y1,ps] = fixunknowns(x1)

Затем примените те же настройки обработки к новым значениям:

x2 = [4 5 3 2; NaN 9 NaN 2; 4 9 5 2]
y2 = fixunknowns('apply',x2,ps)

Противоположная обработка y1 чтобы получить x1 снова.

x1_again = fixunknowns('reverse',y1,ps)

Подробнее о

свернуть все

Перекодируйте данные с NaNs Использование fixunknowns

Если у вас есть входные данные с неизвестными значениями, можно представлять их с NaN значения. Для примера вот пять векторов с 2 элементами с неизвестными значениями в первом элементе двух векторов:

p1 = [1 NaN 3 2 NaN; 3 1 -1 2 4];

Сеть не сможет обработать NaN значения правильно. Используйте функцию fixunknowns для преобразования каждой строки с помощью NaN значения (в этом случае только первая строка) в две строки, которые кодируют ту же информацию численно.

[p2,ps] = fixunknowns(p1);

Вот как первая строка значений была перекодирована как две строки.

p2 =
   1  2  3  2  2
   1  0  1  1  0
   3  1 -1  2  4

Первая новая строка является исходной первой строкой, но со средним значением для этой строки (в этом случае 2) замена всех NaN значения. Элементы второй новой строки теперь либо 1, что указывает на то, что исходный элемент был известным значением, или 0 указывает, что он неизвестен. Исходная вторая строка теперь является новой третьей строкой. Таким образом, как известные, так и неизвестные значения кодируются численно таким образом, чтобы можно было обучать и моделировать сеть.

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

p2new = fixunknowns('apply',p1new,ps);

Функция fixunkowns рекомендуется только для входа. Неизвестные цели, представленные NaN значения могут обрабатываться непосредственно алгоритмами обучения тулбокса. Для образца эффективности функции, используемые алгоритмами обратного распространения, распознают NaN значения как неизвестные или неважные значения.

См. также

| |

Введенный в R2006a