exponenta event banner

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около-Q матрица

и возвращает

Y

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

PS

Параметры процесса, позволяющие согласованно обрабатывать значения

[y,ps] = fixunknowns(X,FP) принимает пустую структуру 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