Написание сигмоидной функции с вводом в виде (X * тета) - PullRequest
0 голосов
/ 24 декабря 2018

В курсе машинного обучения я не могу визуализировать вводимые данные.

у нас ниже уравнение в логистической регрессии:

enter image description here

Мы можем записать его в октаве, как показано ниже в sigmoid.m:

g = (1 ./ ( 1 + e.^(-z)));

Теперь, чтобы вычислить costFUnction.m, мы получаем вероятность как:

h = sigmoid(X*theta);

Из приведенного выше рисунка не должно быть:

h = sigmoid(theta'*X);

Что мне здесь не хватает.Я новичок в ML, так что прости меня, если я что-то здесь упустил.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Самое важное - понять, что означает каждый вектор.В большинстве курсов они говорят о

    h = theta'* x

Но здесь они используют векторы столбца, поэтому h является скаляром для одного примера обучения.Векторизованная нотация говорит вам

    h = X * theta

Где X - это матрица всех ваших обучающих примеров, где каждый пример - строка, а функции - столбцы.Итак, mxn с m количеством обучающих примеров и n количеством функций.Вы хотите, чтобы h дал вывод для каждого примера обучения, поэтому вы хотите матрицу amx 1.Вы знаете, что тэта будет беспокоиться 1 матрица, так как это тета для каждой функции, и у вас есть 1 модель.Если вы выполните вторую формулу, которую я записал сверху, вы получите матрицу Hamx 1, которая является предпочтительной.

0 голосов
/ 25 декабря 2018

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

enter image description here

и что мы хотим отh(x) - это:

enter image description here

enter image description here

для визуализации:

X =  [ 1 x1 ; 1 x2 ; 1 x3;]
theta = [ t0 t1;]
X * theta
% will give  [ t0+(x1*t1) ; t0+(x2*t1) ; t0+(x3*t1) ; ] 

, где каждый ряд вышеуказанных матриц представляет отдельную гипотезу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...