Por cierto, ¿alguien sabe cómo calcular la raíz del índice de Gini (entiendo cómo calcular la raíz, pero el índice de Gini en sí)? Preferiría un ejemplo del código. Sería interesante experimentar con él. Como ya señalé en su momento "el índice de Giniy el coeficiente de Gini son cosas diferentes - no losconfundas ". Para el coeficiente de Gini utilizamos un GSC, es decir, añadimos ruido. He adjuntado al artículo el código encontrado para calcular R y PY. El índice es otra cosa.
Hay coeficiente de Gini y hay Impureza de Gini. El primero se utiliza como una métrica en la clasificación binaria, artículo. El segundo se utiliza en los árboles de decisión como un análogo de la entropía.
Интересный факт: в 1912 году итальянский статистик и демограф Коррадо Джини написал знаменитый труд «Вариативность и изменчивость признака», и в этом же году «Титаник» затонул в водах Атлантики. Казалось бы, что общего между этими двумя событиями? Всё просто, их последствия нашли широкое применение в области машинного обучения. И если датасет...
Lo ejecuté en una muestra, y da un error - No puedo entender dónde buscar el error y cómo solucionarlo - tal vez usted sabe, ya que utiliza estas bibliotecas / paquetes?
R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()'for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()'for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()'for some demos, 'help()'for on-line help, or
'help.start()'for an HTML browser interface to help.
Type 'q()' to quit R.
[Workspace loaded from F:/FX/R/.RData]
Loading required package: Matrix
Error: package or namespace load failed for ‘Matrix’ in getClassDef(class1):
reached elapsed time limit
> source('F:/FX/R/Viborka_Korrelyaciya_v_02.R', echo=TRUE)
> library('caret')
Загрузка требуемого пакета: lattice
Загрузка требуемого пакета: ggplot2
> #way <- "F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\\Proboy_236_TP_4_SL_4\\Si\\Setup\\"
> #df1 = read.csv("F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\ ..." ... [TRUNCATED]
> df1 = read.csv("D:\\FX\\MT5_CB\\MQL5\\Files\\Po_Vektoru_TP_0_SL_0_G_2_Bi_v2\\EURUSD_0\\Setup\\train.csv", header = TRUE, sep = ";",dec = ".")
> cor.test.range <- seq(from = 0.1,to = 0.9,by = 0.1) # диапазон перебора в коеф корр
> get.findCorrelation <- function(data , not.used.colums , cor.coef){
+ library('caret')
+ df2 <- cor( data[, ! colnames(data) %in% not.use .... [TRUNCATED]
> for(i in1:length(cor.test.range)){
+
+ reduced_Data <- get.findCorrelation(data = df1 ,
+ not.used.co .... [TRUNCATED]
Warning messages:
1: пакет ‘caret’ был собран под R версии 4.1.02: пакет ‘ggplot2’ был собран под R версии 4.1.0
> source('F:/FX/R/Viborka_Korrelyaciya_v_02.R', echo=TRUE)
> library('caret')
> #way <- "F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\\Proboy_236_TP_4_SL_4\\Si\\Setup\\"
> #df1 = read.csv("F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\ ..." ... [TRUNCATED]
> df1 = read.csv("D:\\FX\\MT5_CB\\MQL5\\Files\\Po_Vektoru_TP_0_SL_0\\EURUSD_0\\Setup\\train.csv", header = TRUE, sep = ";",dec = ".")
> cor.test.range <- seq(from = 0.1,to = 0.9,by = 0.1) # диапазон перебора в коеф корр
> get.findCorrelation <- function(data , not.used.colums , cor.coef){
+ library('caret')
+ df2 <- cor( data[, ! colnames(data) %in% not.use .... [TRUNCATED]
> for(i in1:length(cor.test.range)){
+
+ reduced_Data <- get.findCorrelation(data = df1 ,
+ not.used.co .... [TRUNCATED]
Error in findCorrelation_fast(x = x, cutoff = cutoff, verbose = verbose) :
The correlation matrix has some missing values.
In addition: Warning message:
In cor(data[, !colnames(data) %in% not.used.colums]) :
стандартное отклонение нулевое
Una vez hiciste un guión que decidí volver a utilizar.
Lo ejecuté en una muestra, y da un error - No puedo entender dónde encontrar el error y cómo solucionarlo - tal vez usted sabe, ya que utiliza estas bibliotecas / paquetes?
Todo funcionaba bien en una muestra binaria.
Yo no uso esta biblioteca, lo hice una vez, creo que fue sólo para usted.... Debes haber hecho algo mal en tus nuevos datos si funciona con los datos antiguos
mytarmailS #: No uso esta bibliotheca, lo hice una vez, creo que fue solo para ti.... Algo habrás hecho mal con tus nuevos datos si funciona con los antiguos.
Sí, para mí. Funciona con binarios, antes de mirar funcionaba sobre todo con binarios. Lastima que no te digan que columna/fila esta mal.
Sí, para mí. Funciona con binario, antes de mirar funcionaba sobre todo con binario. Lástima que no te digan qué columna/fila está mal.
Comprueba dos veces tus datos para asegurarte de que coinciden con el binario.
Si no puedes averiguarlo, envíame un pequeño trozo de tus datos con los que el script no funciona, así como el propio script y recuérdame lo que debería hacer.
mytarmailS #: Vuelva a comprobar sus datos para asegurarse de que coinciden con los binarios....
Si no lo consigues, envíame un pequeño fragmento de tus datos con los que el script no funcione, así como el propio script y recuérdame lo que debería hacer.
Intentaré ayudarte...
¿Por qué tienen que coincidir con el binario? Acabo de decir que el script funciona, pero no funciona con todos los datos.
Corté la muestra y adjunté el script en un archivo separado.
El script elimina las columnas correlacionadas de la muestra y guarda la nueva muestra.
Las columnas se excluyen dependiendo del umbral de correlación.
Una vez hiciste un guión que decidí volver a utilizar.
Lo ejecuté en una muestra, y da un error - No puedo entender dónde encontrar el error y cómo solucionarlo - tal vez usted sabe, ya que utiliza estas bibliotecas / paquetes?
Todo funcionaba bien en una muestra binaria.
El error dice que han aparecido valores indefinidos(NA) en la matriz de correlaciones y la función findCorrelation no puede utilizarla. Abra el paquete y lea la descripción de la función.
Los scripts son desordenados y un mar de resultados intermedios innecesarios. a continuación se muestra el script corregido
1. No es necesario cargar el paquete "caret" en el ámbito global. Es muy pesado, tira de muchas dependencias y datos. Sólo necesitas una función del mismo. Lo importas directamente en la función get.findCor.
El paquete tidyft es un paquete de manipulación de dataframes muy rápido. Úsalo.
Por cierto, ¿alguien sabe cómo calcular la raíz del índice de Gini (entiendo cómo calcular la raíz, pero el índice de Gini en sí)? Preferiría un ejemplo del código. Sería interesante experimentar con él.
Como ya señalé en su momento "el índice de Giniy el coeficiente de Gini son cosas diferentes - no losconfundas ".
Para el coeficiente de Gini utilizamos un GSC, es decir, añadimos ruido. He adjuntado al artículo el código encontrado para calcular R y PY.
El índice es otra cosa.
Hay coeficiente de Gini y hay Impureza de Gini. El primero se utiliza como una métrica en la clasificación binaria, artículo. El segundo se utiliza en los árboles de decisión como un análogo de la entropía.
Una vez que hizo una secuencia de comandos, que decidí utilizar de nuevo.
Lo ejecuté en una muestra, y da un error - No puedo entender dónde buscar el error y cómo solucionarlo - tal vez usted sabe, ya que utiliza estas bibliotecas / paquetes?
Todo funcionaba bien en una muestra binaria.
Una vez hiciste un guión que decidí volver a utilizar.
Lo ejecuté en una muestra, y da un error - No puedo entender dónde encontrar el error y cómo solucionarlo - tal vez usted sabe, ya que utiliza estas bibliotecas / paquetes?
Todo funcionaba bien en una muestra binaria.
No uso esta bibliotheca, lo hice una vez, creo que fue solo para ti.... Algo habrás hecho mal con tus nuevos datos si funciona con los antiguos.
Sí, para mí. Funciona con binarios, antes de mirar funcionaba sobre todo con binarios. Lastima que no te digan que columna/fila esta mal.
Sí, para mí. Funciona con binario, antes de mirar funcionaba sobre todo con binario. Lástima que no te digan qué columna/fila está mal.
Vuelva a comprobar sus datos para asegurarse de que coinciden con los binarios....
¿Por qué tienen que coincidir con el binario? Acabo de decir que el script funciona, pero no funciona con todos los datos.
Corté la muestra y adjunté el script en un archivo separado.
El script elimina las columnas correlacionadas de la muestra y guarda la nueva muestra.
Las columnas se excluyen dependiendo del umbral de correlación.
¿Por qué tienen que coincidir con el binario? Acabo de decir que el script funciona, pero no funciona con todos los datos.
Aquí tienes, he tenido que reescribirlo todo de nuevo, era tan mierda de código que no entendía lo que hacía
Una vez hiciste un guión que decidí volver a utilizar.
Lo ejecuté en una muestra, y da un error - No puedo entender dónde encontrar el error y cómo solucionarlo - tal vez usted sabe, ya que utiliza estas bibliotecas / paquetes?
Todo funcionaba bien en una muestra binaria.
El error dice que han aparecido valores indefinidos(NA) en la matriz de correlaciones y la función findCorrelation no puede utilizarla. Abra el paquete y lea la descripción de la función.
Los scripts son desordenados y un mar de resultados intermedios innecesarios. a continuación se muestra el script corregido
Explicaciones por orden:
1. No es necesario cargar el paquete "caret" en el ámbito global. Es muy pesado, tira de muchas dependencias y datos. Sólo necesitas una función del mismo. Lo importas directamente en la función get.findCor.
El paquete tidyft es un paquete de manipulación de dataframes muy rápido. Úsalo.
Para el control, he probado en mi equipo utilizando este script. Resultado:
# patch <- "C:/RData/Project/FEDOT/" # df1 <- fread(paste0(patch, "DF_train_M5.csv")) # object.size(df1) #780184 bytes # dim(df1) #[1] 4030 25 # ft <- as_fst(df1)# # rm(df1) #ft %>% select_fst(cols = c(1:3,25), negate = TRUE)-> dt #dim(dt) [1] 4030 21 bench::workout({ for(i in seq_len(length(cor.test.range))){ get.findCor(dt, cor.coef = cor.test.range[i])-> dt.n paste0("train2_" , cor.test.range[i]*10 , ".csv") %>% paste0(patch , .) %>% fwrite(dt.n, .) rm(dt.n) } })->t1 #(12.9 m) setwd(patch) dim(fread("train2_1.csv")) #[1] 4030 3 dim(fread("train2_2.csv")) #[1] 4030 6 dim(fread("train2_3.csv")) #[1] 4030 10 dim(fread("train2_4.csv")) #[1] 4030 13 dim(fread("train2_5.csv")) #[1] 4030 16 dim(fread("train2_6.csv")) #[1] 4030 17 dim(fread("train2_7.csv")) #[1] 4030 18 dim(fread("train2_8.csv")) #[1] 4030 18 dim(fread("train2_9.csv")) #[1] 4030 18Cuenta durante bastante tiempo (12,9 min). Pero el cuadro tampoco es pequeño. Por supuesto hay que paralelizarlo, buscar una función cor más rápida.
De los 21 predictores iniciales con diferentes umbrales seleccionamos diferentes números de predictores.
Pero este no es el camino a seguir.
Suerte