R- как построить несколько наложенных графиков / графиков рассеяния? - PullRequest
0 голосов
/ 29 ноября 2018

Я работаю над проблемой машинного обучения, где пытаюсь сравнить свои прогнозы, используя 2 разных метода ML, с исходными значениями тестов и посмотреть, как они сравниваются, и я пытаюсь визуализировать результаты.Я сделал 2 отдельных графика рассеяния (между тестовыми и прогнозируемыми значениями), но я хотел посмотреть, как значения отличаются от точки к точке.Поэтому я попытался установить подмножество моих данных, где у меня есть 100 значений ytest, 100 прогнозируемых значений (ymle_predict) с использованием первого алгоритма ML и 100 прогнозируемых значений (ymap_predict) с использованием алгоритма 2-го ML.

Я хочу, чтобы моя ось x представляла каждую точку данных, а ось y - 3 различных значения (ytest, ymle_predict и ymap_predict) этой точки данных.

Итак, скажем, мыиметь:

ytest<- c(1, 2, 3, 4, 5, 6, 7 )
ymle_predict<-c(1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1 )
ymap_predict <- c(1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2 )

где значения расположены по порядку, поэтому 2-й элемент в ymle_predict представляет прогноз точки данных для 2-го элемента в ytest.

Я хотел бы увидеть, как эти точки изменяютсяот точки к точке, аналогично, скажем, тому, как мы можем видеть перекрывающиеся графики изменения цен с течением времени для разных акций (с разным цветом, представляющим каждую акцию).Однако вместо того, чтобы быть осью x, здесь это будет просто переменная счетчика, например:

i<- c(1,2,3,4,5,6,7)

Я пытался поместить эти элементы в фрейм данных, но это не помогло мне найти какие-либо ответы.

1 Ответ

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

Использование ggplot и dplyr:

library(ggplot2)
library(dplyr)

df <- data.frame(ytest = c(1, 2, 3, 4, 5, 6, 7 ),
                 ymle_predict = c(1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1 ),
                 ymap_predict = c(1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2 ),
                 i = c(1,2,3,4,5,6,7))

df.plot <- df %>%
  gather(results, value, -c("i"))


ggplot(df.plot, aes(x=i, y=value, color=results)) +
  geom_point()

plot

...