Построение различных линейных функций - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь оптимизировать линейную функцию с помощью метода градиентного спуска.В конце моего алгоритма я получаю вектор коэффициентов и коэффициентов b одинаковых размеров, которые отличаются от a и b, которые были рассчитаны моим алгоритмом.

Для каждой комбинации a и b я хотел бы построить линейную функцию y = a * x + b, зная, что я сгенерировал x и y.

Собственное - иметь всепредставления промежуточных линейных функций, которые были рассчитаны с помощью алгоритма.В конце я хочу добавить линейную регрессию, полученную с помощью lm (), чтобы продемонстрировать, насколько хорошо метод может оптимизировать коэффициенты a и b.

Это должно выглядеть так: линейные функции, полученные благодаряразличные коэффициенты a и b, рассчитанные методом алгоритма

Этот код, который я написал для построения различных линейных функций:

#a and b obtained with algorithm


h = function (a,b,x)  a * x + b 
data = matrix(c(a,b,x), ncol = 3, nrow = 358) 
# 358 is the length of the vectors

i = 1
for (i in length(a)){
plot(h(a[i,1],x[i,3],b[i,2]))
i = i+1
}

Одна из проблем, которая меня раздражает, заключается вчто я не уверен, что могу наложить линейные функции, не используя функции plot и points.Во-вторых, я не уверен, что смогу построить линейную функцию, если я задам коэффициенты a и b?

Не могли бы вы придумать лучшую идею?

1 Ответ

0 голосов
/ 29 сентября 2018

Функция abline добавит прямые линии на график.Его также можно использовать для построения прямой прямо из регрессии.

Вы не предоставляете никаких выборочных данных (в следующий раз включите выборочные данные в свой вопрос!), Но это будет выглядеть примерно так:

set.seed(47)
x = runif(50) - 0.5
y = 4 * x + 1 + rnorm(50)

a_values = seq(0, 1, length.out = 10)
b_values = seq(0, 4, length.out = 10)

plot(x, y)
for (i in seq_along(a_values)) {
  abline(a = a_values[i], b = b_values[i], col = "dodgerblue2")
}

abline(lm(y ~ x), lwd = 2)

enter image description here

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