В данной работе выполнены задачи из курса LMS для лабораторный работы №2.
# Установка зеркала CRAN
options(repos = c(CRAN = "https://cloud.r-project.org/"))
install.packages("Boruta")
## пакет 'Boruta' успешно распакован, MD5-суммы проверены
##
## Скачанные бинарные пакеты находятся в
## C:\Users\kibyh\AppData\Local\Temp\RtmpawqjMs\downloaded_packages
install.packages("FSelector")
## пакет 'FSelector' успешно распакован, MD5-суммы проверены
##
## Скачанные бинарные пакеты находятся в
## C:\Users\kibyh\AppData\Local\Temp\RtmpawqjMs\downloaded_packages
install.packages("arules")
## пакет 'arules' успешно распакован, MD5-суммы проверены
## Warning: не могу удалить прежнюю установку пакета 'arules'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): проблема с копированием
## F:\Programs\R-4.4.1\library\00LOCK\arules\libs\x64\arules.dll в
## F:\Programs\R-4.4.1\library\arules\libs\x64\arules.dll: Permission denied
## Warning: восстановлен 'arules'
##
## Скачанные бинарные пакеты находятся в
## C:\Users\kibyh\AppData\Local\Temp\RtmpawqjMs\downloaded_packages
install.packages("mlbench")
## пакет 'mlbench' успешно распакован, MD5-суммы проверены
## Warning: не могу удалить прежнюю установку пакета 'mlbench'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): проблема с копированием
## F:\Programs\R-4.4.1\library\00LOCK\mlbench\libs\x64\mlbench.dll в
## F:\Programs\R-4.4.1\library\mlbench\libs\x64\mlbench.dll: Permission denied
## Warning: восстановлен 'mlbench'
##
## Скачанные бинарные пакеты находятся в
## C:\Users\kibyh\AppData\Local\Temp\RtmpawqjMs\downloaded_packages
library(FSelector)
data(iris)
# Применение information.gain для оценки важности признаков
importance <- information.gain(Species ~ ., iris)
importance <- importance[order(importance$attr_importance, decreasing = TRUE),]
print(importance)
## [1] 0.9554360 0.9402853 0.4521286 0.2672750
library(arules)
## Загрузка требуемого пакета: Matrix
##
## Присоединяю пакет: 'arules'
## Следующие объекты скрыты от 'package:base':
##
## abbreviate, write
# Дискретизация переменной Sepal.Length различными методами
iris$Sepal.Length_interval <- discretize(iris$Sepal.Length, method = "interval", categories = 3)
## Warning in discretize(iris$Sepal.Length, method = "interval", categories = 3):
## Parameter categories is deprecated. Use breaks instead! Also, the default
## method is now frequency!
iris$Sepal.Length_frequency <- discretize(iris$Sepal.Length, method = "frequency", categories = 3)
## Warning in discretize(iris$Sepal.Length, method = "frequency", categories = 3):
## Parameter categories is deprecated. Use breaks instead! Also, the default
## method is now frequency!
iris$Sepal.Length_cluster <- discretize(iris$Sepal.Length, method = "cluster", categories = 3)
## Warning in discretize(iris$Sepal.Length, method = "cluster", categories = 3):
## Parameter categories is deprecated. Use breaks instead! Also, the default
## method is now frequency!
iris$Sepal.Length_fixed <- discretize(iris$Sepal.Length, method = "fixed", categories = c(4.3, 5.5, 6.5, 7.9))
## Warning in discretize(iris$Sepal.Length, method = "fixed", categories = c(4.3,
## : Parameter categories is deprecated. Use breaks instead! Also, the default
## method is now frequency!
# Просмотр категорий после дискретизации
table(iris$Sepal.Length_interval)
##
## [4.3,5.5) [5.5,6.7) [6.7,7.9]
## 52 70 28
table(iris$Sepal.Length_frequency)
##
## [4.3,5.4) [5.4,6.3) [6.3,7.9]
## 46 53 51
table(iris$Sepal.Length_cluster)
##
## [4.3,5.33) [5.33,6.27) [6.27,7.9]
## 46 53 51
table(iris$Sepal.Length_fixed)
##
## [4.3,5.5) [5.5,6.5) [6.5,7.9]
## 52 63 35
library(Boruta)
library(mlbench)
data(Ozone)
# Проверка пропусков
colSums(is.na(Ozone))
## V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13
## 0 0 0 5 12 0 15 2 139 15 1 14 0
# Удаление строк с пропусками
Ozone_clean <- na.omit(Ozone)
# Применение Boruta
set.seed(123)
boruta_result <- Boruta(V4 ~ ., data = Ozone_clean, doTrace = 2)
## 1. run of importance source...
## 2. run of importance source...
## 3. run of importance source...
## 4. run of importance source...
## 5. run of importance source...
## 6. run of importance source...
## 7. run of importance source...
## 8. run of importance source...
## 9. run of importance source...
## 10. run of importance source...
## 11. run of importance source...
## After 11 iterations, +0.38 secs:
## confirmed 9 attributes: V1, V10, V11, V12, V13 and 4 more;
## rejected 2 attributes: V3, V6;
## still have 1 attribute left.
## 12. run of importance source...
## 13. run of importance source...
## 14. run of importance source...
## 15. run of importance source...
## 16. run of importance source...
## 17. run of importance source...
## 18. run of importance source...
## 19. run of importance source...
## 20. run of importance source...
## 21. run of importance source...
## 22. run of importance source...
## 23. run of importance source...
## 24. run of importance source...
## After 24 iterations, +0.76 secs:
## rejected 1 attribute: V2;
## no more attributes left.
plot(boruta_result, las = 2, main = "Boxplot of Feature Importance by Boruta")
В ходе лабораторной работы были выполнены задачи по выбору признаков с использованием методов FSelector и Boruta, а также дискретизация данных с использованием пакета arules.