[]不同机器学习模型的决策边界(附代码)( 四 )

[]不同机器学习模型的决策边界(附代码)
本文插图

其他一些随机模型:
## $Sepal.Width_and_Sepal.Length
[]不同机器学习模型的决策边界(附代码)
本文插图

## $Sepal.Width_and_Sepal.Length## $Petal.Length_and_Sepal.Length[]不同机器学习模型的决策边界(附代码)
本文插图

## $Petal.Width_and_Petal.Length
[]不同机器学习模型的决策边界(附代码)
本文插图

## $Petal.Length_and_Petal.Width## Warning in grDevices::contourLines(x = sort(unique(data$x)), y =## sort(unique(data$y)), : todos los valores de z son iguales## Warning: Not possible to generate contour data[]不同机器学习模型的决策边界(附代码)
本文插图

【[]不同机器学习模型的决策边界(附代码)】通常线性模型会产生线性的决策边界 。 看起来Random Forest模型会过拟合一些数据 , 而XGBoost和LightGBM模型能够得到更好且更通用的决策边界 。 Keras神经网络的性能较差 , 因为还没有训练到位 。

  • glm = 逻辑回归模型
  • svm.formula Prediction...6 = 支持向量机+线性核
  • svm.formula Prediction...8 = 支持向量机+多项式核
  • svm.formula Prediction...12 = 支持向量机 +径向核
  • svm.formula Prediction...10 = 支持向量机+sigmoid核
  • randomForest.formula Prediction =随机森林
  • xgb.Booster Prediction = 默认参数下的XGBoost模型
  • keras.engine.sequential.Sequential Prediction...18 = 单层Keras神经网络
  • keras.engine.sequential.Sequential Prediction...18 = 更深层的Keras神经网络
  • keras.engine.sequential.Sequential Prediction...22 = 更深一层的Keras神经网络
  • lgb.Booster Prediction = 默认参数下的LightGBM模型
在许多组合中 , Keras神经网络模型只是预测所有观测值都属于某一类别(同样 , 我对模型没有进行很多调整 , 以及模型只有100个观测值来训练却要对40,000个点进行预测) 。 也就是说它将整个背景颜色染成蓝色或红色 , 并进行了许多错误分类 。 在某些图中 , 神经网络可以实现完美的分类 , 而在另一些图中则做出了奇怪的决策边界---神经网络很有趣 。
对这些图作一些简要分析 , 看起来我们用简单的逻辑回归模型得到了近乎完美的分类 。 但是由于每个变量的关系都是线性可分离的 , 这并不令人惊讶 。 但我仍偏爱XGBoost和LightGBM模型 , 因为它们可以通过在其目标函数中加入正则化来处理非线性关系 , 从而得到更可靠的决策边界 。 随机森林模型在这里失败了 , 他们的决策边界看起来做得很好 , 但其实也有些模糊和尖锐的部分 。
但当然 , 随着更多变量和更大维度的出现 , 这些决策边界会变得更加复杂和非线性 。
for(i in 1:length(plot_data)){print(ggplot_lists[[i]])}结语
我是在Amazon Ubuntu EC2实例上编写此模型的 , 但是 , 当我在Windows系统上用R编译博客文章时 , 遇到了一些问题 。 这些问题主要归因于安装lightgbm软件包和软件包版本 。 使用以下软件包版本(即使用最新的软件包版本) , 代码正常运行 。
sessionInfo()## R version 3.6.1 (2019-07-05)## Platform: x86_64-w64-mingw32/x64 (64-bit)## Running under: Windows 10 x64 (build 17763)#### Matrix products: default#### locale:## [1] LC_COLLATE=Spanish_Spain.1252LC_CTYPE=Spanish_Spain.1252## [3] LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C## [5] LC_TIME=Spanish_Spain.1252#### attached base packages:## [1] statsgraphicsgrDevices utilsdatasetsmethodsbase#### other attached packages:##[1] tidyquant_0.5.7quantmod_0.4-15##[3] TTR_0.23-6PerformanceAnalytics_1.5.3##[5] xts_0.11-2zoo_1.8-6##[7] lubridate_1.7.4keras_2.2.5.0##[9] lightgbm_2.3.2R6_2.4.1## [11] xgboost_0.90.0.1tidyr_1.0.0## [13] stringr_1.4.0purrr_0.3.2## [15] kableExtra_1.1.0.9000knitr_1.25.4## [17] ggplot2_3.2.1patchwork_1.0.0## [19] dplyr_0.8.99.9000#### loaded via a namespace (and not attached):##[1] Rcpp_1.0.3lattice_0.20-38class_7.3-15##[4] utf8_1.1.4assertthat_0.2.1zeallot_0.1.0##[7] digest_0.6.24e1071_1.7-2evaluate_0.14## [10] httr_1.4.1blogdown_0.15pillar_1.4.3.9000## [13] tfruns_1.4rlang_0.4.4lazyeval_0.2.2## [16] curl_4.0rstudioapi_0.10data.table_1.12.8## [19] whisker_0.3-2Matrix_1.2-17reticulate_1.14-9001## [22] rmarkdown_1.14lobstr_1.1.1labeling_0.3## [25] webshot_0.5.1readr_1.3.1munsell_0.5.0## [28] compiler_3.6.1xfun_0.8pkgconfig_2.0.3## [31] base64enc_0.1-3tensorflow_2.0.0htmltools_0.3.6## [34] tidyselect_1.0.0tibble_2.99.99.9014bookdown_0.13## [37] quadprog_1.5-7randomForest_4.6-14fansi_0.4.1## [40] viridisLite_0.3.0crayon_1.3.4withr_2.1.2## [43] rappdirs_0.3.1grid_3.6.1Quandl_2.10.0## [46] jsonlite_1.6.1gtable_0.3.0lifecycle_0.1.0## [49] magrittr_1.5scales_1.0.0rlist_0.4.6.1## [52] cli_2.0.1stringi_1.4.3xml2_1.2.2## [55] ellipsis_0.3.0generics_0.0.2vctrs_0.2.99.9005## [58] tools_3.6.1glue_1.3.1hms_0.5.1## [61] yaml_2.2.0colorspace_1.4-1rvest_0.3.4原文标题:


推荐阅读