Вопросы по логистике c и линейной регрессии - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь понять логистику c и линейную регрессию и смог понять теорию, лежащую в основе этого (делает курс Andrew NG).

У нас есть X -> данные особенности -> матрица (m, n + 1), где m - нет. заданных случаев и n- функций (исключая x0)

У нас есть y -> метка для прогнозирования -> матрица (m, 1)

Теперь, пока я реализую ее с нуля в python, Я не понимаю, почему мы используем транспонирование тета в сигмовидной функции.

enter image description here

Также мы используем тета-транспонирование X и для линейной регрессии.

Нам не нужно нигде выполнять умножение матриц во время кодирования, его прямой элемент-элементное кодирование, какая необходимость в транспонировании или моя неправильно понимая, и мы должны брать матричное умножение во время реализации.

Моя главная проблема в том, что я очень озадачен тем, где мы делаем матричное умножение и где мы делаем поэлементное умножение в логистике c и линейной регрессии

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Вы немного не в теме c для этой области, но фигура, на которой вы, кажется, зависаете, является обработкой x и Тета .

В описанных вами случаях использования x - это вектор входов или «вектор признаков». Вектор Theta является вектором коэффициентов. Оба обычно выражаются в виде векторов столбцов и, конечно, должны иметь одинаковое измерение.

Таким образом, чтобы «сделать прогноз», вам нужен внутренний продукт этих двух, а результат должен быть скалярным (по определение для внутреннего произведения), поэтому вам нужно транспонировать вектор theta , чтобы правильно express эту операцию, которая представляет собой матричное умножение двух векторов. Имеет смысл?

0 голосов
/ 22 марта 2020

Для умножения матриц количество столбцов в первом элементе должно равняться количеству строк во втором элементе . Поскольку один из элементов вашего умножения имеет либо один столбец, либо одну строку, он не выглядит как матричное умножение из-за своей простоты. Но это все еще матричное умножение

Позвольте мне привести пример,

Пусть A будет (m, n) матрицей. Мы можем выполнить скалярное умножение для некоторого фиксированного a в реальном числа Если мы хотим умножить A на некоторый вектор, x, нам нужно соблюдать некоторые ограничения. Здесь принято ошибочно принимать точечное произведение за умножение матриц, но они служат полностью для различных целей.

Таким образом, наши ограничения для умножения (m, n) матрица, A по вектору x означает, что x имеет такое же количество записей, что и A имеет столбцы Для этого в вашем примере один из элементов необходимо транспонировать .

...