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