Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data_epil<-read.table("", header = true) - считывание нашего датасета в дата фрейм data_epil, header=true - означает, что мы указываем то,
- что в нашем файле первая строка отвечает за названия переменныхъ
- is.na(data_epil) - (NOT AVAILABLE) возвращает массив true/false значений, нужно для проверки нашего дата фрейма на пустые значения
- summary(data_epil[c(1:4)]) - функция для произведения итогов по нашему датасету (получение). Тут мы берем 1-4 столбики и получаем по ним статистику:
- минимальное значение, 1 квартиль, медиану, mean, 3 квартиль, максимальное значение
- Первый квартиль (Q1) означает, что 25% наблюдений ниже этой величины (приблизительно)
- Третий квартиль (Q3) означает, что 75% наблюдений ниже этой величины (приблизительно)
- медиана делит наши значения на две части: показывает, что 50% значений будут не больше чем наша медиана и 50% не меньше чем наша медиана
- plot(data_epil$X1~data_epil$X2, xlab="X2", ylab = "X1") - функция для построения объектов, для простых точечных диаграм будет использован plot.default
- Тут мы берем значения из X1 и X2 столбиков и строим их, xlab, ylab отвечают за названия осей координат
- data_epil$Class<-as.factor(data_epil$Class) - в вектор class'а записываем тот же вектор, но уже в виде фактора
- boxplot(data_epil$X1~data_epil$Class, ylab="X1", xlab="Class") - строим ящик с усами для входных значений по X1 и Class. Строится ящик начиная от первого квартиля
- до третьего, обозначается посередине медиана и строятся "усы", т.е. размах выборки
- wilcox.test(data_epil$X1~data_epil$Class) - получаем результаты тестирования Уилкоксона (разобраться)
- norm<-function(x) { ( (x- min(x))/(max(x) - min(x)) )} - определяем функцию norm
- data_epil_norm<-as.data.frame(lapply(data_epil [1: 178], norm)) - в data_epil_norm записываем data_frame, который был получен путем применения к каждому
- соответствущему элементу из 1-178 столбика data_epil функции norm
- summary(data_epil_norm[c(1:3)]) - получаем статистику для data_epil_norm
- knn_train<-data_epil_norm[1:8050, ] - в датафрейм knn_train записываем первые 8050 значений из data_epil_norm
- knn_test<-data_epil_norm[8051:11500, ] - в датафрейм knn_text записываем 8051-11500 значений из data_epil_norm
- epil_knn<-knn(knn_train, knn_test, data_epil[1:8050, 179], k=107) - в epil_knn записываем результат метода knn, который в качестве аргументов принимает следующее:
- датафрейм knn_train, датафрейм knn_test, фактор настоящих классификаций data_epil (классы для всех значений),
- k = 179 количество выбранных соседей
- table(epil_knn, data_epil[8051:11500, 179]) - вывод матрицы ошибок
- TreeTest<-data_epil[1:8050, ] - запись в датафрейм TreeTest 1-8050 строк из data_epil
- TreeTrain<-data_epil[8051:11500, ] - запись в датафрейм TreeTrain 8051-11500 строк из data_epil
- TreeEpil<-rpart(Class~., TreeTrain, method = "class") - получение модели классификатора Tree с помощью обучающей выборки
- fancyRpartPlot(TreeEpil) - построение диаграммы дерева решений
- Pr_TreeEpil<-predict(TreeEpil, TreeTrain, type = "class") - проводим классификацию на обучающей выборке
- table(TreeTrain[, 179], Pr_TreeEpil) - строим матрицу ошибок для обучающей выборки
- Pr1_TreeEpil<-predict(TreeEpil, TreeTest, type = "class") - проводим классификацию на тестирующей выборке
- table(TreeTest[, 179], Pr1_TreeEpil) - строим матрицу ошибок для тестирующей выборки
- NBTrain<-data_epil[1:8050,] - запись в датафрейм обучающей выборки
- NBTest<-data_epil[8051:11500,] - запись в датафрейм тестирующей выборки
- NBEpil<-naive_bayes(Class~., NBTrain) - получение модели наивного классификатора Байеса с помощью обучающей выборки
- NB_pred1<-predict(NBEpil, newdata = NBTrain) - применение классификатора к обучающему датафрейму
- table(NB_pred1, NBTrain$Class) - построение матрицы ошибок для обучающей выборки
- NB_pred<-predict(NBEpil, newdata = NBTest) - применение классификатора к тестирующему датафрейму
- table(NB_pred, NBTest$Class) - построение матрицы ошибок для тестирующей выборки
- RFTrain<-data_epil[1:8050, ] - запись в датафрейм обучающей выборки
- RFTest<-data_epil[8051:11500, ] - запись в датафрейм проверяющий выборки
- RF<-randomForest(Class~., RFTrain) - получение модели классификатора randomForest с помощью обучающей выборки
- RF
- RF_pred<-predict(RF, RFTest) - применение классификатора к тестирующему датафрейму
- table(RFTest[,179], RF_pred) - построение матрицы ошибок
- imp<-importance(RF) - запись в матрицу imp 10% самых значимых показателей с помощью модели randomForest
- sub_imp <-subset(data_epil, select = names(imp[imp > 27,])) - запишем в датафрейм sub_imp только те, которые больше значения 27 и составляют 10% от всех.
- построим зависимости важных показателей:
- boxplot(sub_imp$X159~data_epil$Class, ylab = "X159", xlab = "class") - построение ящика с усами
- boxplot(sub_imp$X160~data_epil$Class, ylab = "X160", xlab = "class") - построение ящика с усами
- Проводем классификацию методом randomForest:
- new_data_epil<-data.frame(sub_imp, data_epil$Class)
- new_RFTrain<-new_data_epil[1:8050, ]
- new_RFTest<-new_data_epil[8051:11500, ]
- new_RF<-randomForest(data_epil.Class~., new_RFTrain)
- new_RF
- new_RF_pred<-predict(new_RF, new_RFTest)
- table(new_RF_pred, new_RFTest[,22])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement