Отделение двух классов от моделируемых данных

#r #machine-learning #simulate

#r #машинное обучение #имитировать

Вопрос:

Было интересно, может ли кто-нибудь помочь мне с пониманием abline() r . Мой код выглядит следующим образом:

 N = 500
fx1 <- runif(N,-2,2)
fx2 <- runif(N,-2,2)
X <- cbind(fx1,fx2)

a <- runif(1,-1,1) 
b <- runif(1,-1,1)
  
plot(X, xlim=c(-2,2),ylim=c(-2,2), xlab = "X", ylab = "Y")
abline(a,b)
  

Вот изображение сгенерированных данных:

введите описание изображения здесь

То, что я пытаюсь сделать, это создать два класса, используя эти данные после abline вычисления строки, хотя я не уверен, как это сделать. Было интересно, может ли кто-нибудь помочь.

Комментарии:

1. Вы читали страницу справки, ?abline ? Он описывает, как a и b интерпретируются.

Ответ №1:

с помощью этих двух инструкций

 a <- runif(1,-1,1) 
b <- runif(1,-1,1)
  

вы генерируете параметры строки. В частности, перехват и наклон

abline(a,b) постройте линию на основе вашего перехвата a и наклона b

подробности здесь

Комментарии:

1. Спасибо, продолжайте и посмотрите на мой ответ. Приветствия!

Ответ №2:

Я понял, я прочитал документацию, и у меня есть лучшее понимание.

В принципе, мне нужно было изменить существующий код, чтобы придать больше смысла именованию переменных следующим образом:

 N = 1000
x <- runif(N,-2,2)
y <- runif(N,-2,2)
a <- runif(1,-1,1) 
b <- runif(1,-1,1)
  

что дает мне следующий график при использовании ggplot

 ggplot(X, aes(x= x, y = y))  
  geom_point()   
  geom_abline(slope = b, intercept = a)
  

введите описание изображения здесь

Затем я просто создаю ifelse и подключаю числа, чтобы увидеть, больше ли оно, чем y

 class <- as.matrix(ifelse(
 y > a   x * b, '0', '1' 
))

  

объединение в фрейм данных и повторное копирование:

 X <- cbind.data.frame(x, y, class)
ggplot(X, aes(x= x, y = y, color = class))  
  geom_point()  
  geom_abline(slope = b, intercept = a)
  

введите описание изображения здесь