Показ дописів із міткою R. Показати всі дописи
Показ дописів із міткою R. Показати всі дописи

суботу, 3 листопада 2018 р.

Нейронні мережі в R

Із CRAN можна звантажити декілька пакетів реалізацій нейронних мереж на R (nnet, neuralnet, deepnet), крім них доступні пакети в основі яких лежать реалізації на інших мовах. Це такі пакети як MXnet, darch, deepnet, h2o, Keras, TensorFlow.
Простий приклад використання neuralnet:

library("neuralnet")
input<-c(0,1,2,3,4,5,6,7,8,9,10)
output<-c(0,1,4,9,16,25,36,49,64,81,100)
mydata<-cbind.data.frame(input,output)
attach(mydata)
#навчити мережу базуючись на input та output
model=neuralnet(
  formula=output~input,
  data=mydata, #дані
  hidden=10, #кількість нейронів в прихованому шарі
  threshold=0.01 #поріг спрацювання
)
print(model)
#виводимо схему нейронної мережі
plot(model)
#Перевіряємо дані - фактичні та прогнозовані
final_output=cbind(input, output, as.data.frame(model$net.result))
colnames(final_output)=c("Input", "Expected Output", "Neural Net Output")
print (final_output)

Схема виведеної нейронної мережі:

неділю, 28 жовтня 2018 р.

Лінійна регресія в R

Загальний формат для лінійної моделі:
response~op1 term1 op2 term 2 op3 term 3…
де term — об’єкт або послідовність об’єктів, op — оператор, такий як +, -, що вказує як term буде включений у модель. Таблиця нижче включає деякі корисні приклади. Запримітьте, що математичні символи в колонці "Синтаксис" використовуються для визначення моделі, а не в в їхньому нормальному розумінні.

Приймемо, що Y - залежна змінна, A,B,C - незалежні змінні, що можуть впливати на Y. b1,b2, b3 - коефіцієнти моделі, що розраховуються.


Синтаксис
Модель
Коментарі
Y~A
Y=b0+b1A
Пряма лінія із неявно вказаним перетином осі y.
Y~-1+A
Y=b0+b1A+b2A
Пряма лінія без перетину осі y, тобто підігнана лінія проходитиме через (0,0)
Y~A+I(A^2)
Y=b0+b1A+b2A2
Поліномна модель, функція I() – дозволяє в модель включати нормальні математичні символи.
Y~A+B
Y=b0+b1A+b2B
Модель першого порядку, без взаємодії незалежних змінних
Y~A:B
Y=b0+b1AB
Модель, що містить лише взаємодії першого порядку між A та B
Y~A*B
Y=b0+b1A+b2B+b3AB
Повна модель першого порядку, еквівалентний код: Y~A+B+A:B
Y~(A+B+C)^2
Y=b0+b1A+b2B+b3C+b4AB+b5AC+b6AC
Модель, що включає всі явища першого порядку та взаємодії до n-го порядку, де n задається як ()^n. Еквівалентний вираз:
  Y~A*B*C-A:B:C.

Базовий синтаксис для розрахунку моделі в R методом найменших квадратів:
lm(Y~model)
де Y – об’єкт, що містить залежну змінну, що буде прогнозуватися, а model – це формула для вибраної математичної моделі (див. таблицю вище). Одержати сукупну інформацію про модель можна за допомогою функції summary().
mymodel=lm(Y~A)
summary(mymodel)
в результаті буде виведена інформацію про вид моделі та статистичні оцінки моделі.

Перевірити модель на нових даних можна з допомогою функції predict()

Джерело:
* Using R for Linear Regression