Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 2801

 
mytarmailS #:
Wie ist das Buch?
Ich habe es vor 4 Jahren gelesen. Ich kann nicht mehr wirklich etwas darüber sagen. Ich habe eine Seite in meinen Blog kopiert, da es für mich neu war, und beschlossen, dass ich es als Erinnerung behalten sollte. )
 

Übrigens, weiß jemand, wie man die Wurzel des Gini-Indexes berechnet (ich weiß, wie man die Wurzel berechnet, aber den Gini-Index selbst)? Ich würde ein Code-Beispiel bevorzugen. Es wäre interessant, damit zu experimentieren.
Wie ich seinerzeit anmerkte: "Gini-Index und Gini-Koeffizient sind unterschiedliche Dinge - verwechseln Sie sienicht ".
Für den Gini-Koeffizienten verwenden wir einen GSC, d. h. wir fügen Rauschen hinzu. Ich habe dem Artikel den gefundenen Code zur Berechnung von R und PY beigefügt.
Index ist etwas anderes.

 
elibrarius #:

Übrigens, weiß jemand, wie man die Wurzel des Gini-Indexes berechnet (ich weiß, wie man die Wurzel berechnet, aber den Gini-Index selbst)? Ich hätte gerne ein Beispiel für den Code. Es wäre interessant, damit zu experimentieren.
Wie ich seinerzeit anmerkte: "Gini-Index und Gini-Koeffizient sind unterschiedliche Dinge - verwechseln Sie sienicht ".
Für den Gini-Koeffizienten verwenden wir einen GSC, d. h. wir fügen Rauschen hinzu. Ich habe dem Artikel den gefundenen Code zur Berechnung von R und PY beigefügt.
Index ist etwas anderes.

Es gibt einen Gini-Koeffizienten und eine Gini-Unreinheit. Der erste wird als Metrik in der binären Klassifizierung verwendet, Artikel. Der zweite wird in Entscheidungsbäumen als Analogon der Entropie verwendet.

Коэффициент Джини. Из экономики в машинное обучение
Коэффициент Джини. Из экономики в машинное обучение
  • 2018.03.06
  • habr.com
Интересный факт: в 1912 году итальянский статистик и демограф Коррадо Джини написал знаменитый труд «Вариативность и изменчивость признака», и в этом же году «Титаник» затонул в водах Атлантики. Казалось бы, что общего между этими двумя событиями? Всё просто, их последствия нашли широкое применение в области машинного обучения. И если датасет...
 

Sie haben einmal ein Skript erstellt, das ich gerne wieder verwenden möchte.

library('caret')

way <-         "D:\\FX\\MT5_CB\\MQL5\\Files\\Po_Vektoru_TP_0_SL_0\\EURUSD_0\\Setup"
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.used.colums])  
  not.need <- findCorrelation(df2, cutoff=cor.coef) 
  not.need.nms <- colnames(df2[,not.need])  # получаем имена переменных что не прошли коррел тест
  reduced_Data <- data[, ! colnames(data)  %in%  not.need.nms]
  return(reduced_Data)}


for(i in 1:length(cor.test.range)){
  
    reduced_Data <- get.findCorrelation(data = df1 , 
                                      not.used.colums = c("Target_100_Buy","Target_100_Sell","Target_P","Time","Target_100"),
                                      cor.coef = cor.test.range[i] )


  
  #reduced_Data <- get.findCorrelation(data = reduced_Data , 
  #                                    not.used.colums = c("Target_100_Buy","Target_100_Sell","Target_P","Time","Target_100"),
  #                                    cor.coef = cor.test.range[i]*-1 )  
    
  file.name <- paste0("train2_" , cor.test.range[i] , ".csv")
  final.way <- paste0(way , file.name)
  
  
  #write.csv2(x = reduced_Data,file = final.way,row.names = F)  # возможно это лучше
  
   write.table(reduced_Data, file = final.way,
               append = FALSE, quote = FALSE, sep=";",
               eol = "\n", na = "NA", dec = ".", row.names = FALSE,
               col.names = TRUE, qmethod = c("escape", "double"),
               fileEncoding = "")
}

Ich habe es auf einem Beispiel laufen lassen, und es gibt einen Fehler - ich kann nicht verstehen, wo der Fehler zu suchen ist und wie man ihn beheben kann - vielleicht wissen Sie es, da Sie diese Bibliotheken/Pakete verwenden?

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 in 1:length(cor.test.range)){
+   
+     reduced_Data <- get.findCorrelation(data = df1 , 
+                                       not.used.co .... [TRUNCATED] 
Warning messages:
1: пакет ‘caret’ был собран под R версии 4.1.0 
2: пакет ‘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 in 1: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]) :
  стандартное отклонение нулевое

Bei einem binären Beispiel hat alles gut funktioniert.

 
Aleksey Vyazmikin #:

Sie haben einmal ein Skript erstellt, das ich wieder verwenden möchte.

Ich habe es auf einem Beispiel ausgeführt, und es gibt einen Fehler - ich kann nicht verstehen, wo der Fehler zu finden und wie es zu beheben - vielleicht wissen Sie, da Sie diese Bibliotheken / Pakete verwenden?

Bei einem binären Beispiel hat alles gut funktioniert.

Ich benutze diese Bibliothek nicht, ich habe es einmal gemacht, ich glaube, es war nur für dich.... Sie müssen etwas in Ihren neuen Daten falsch gemacht haben, wenn es mit den alten Daten funktioniert
 
mytarmailS #:
Ich benutze diese Bibliothek nicht, ich habe es einmal gemacht, ich glaube, es war nur für Sie.... Sie müssen etwas mit Ihren neuen Daten falsch gemacht haben, wenn es mit den alten Daten funktioniert.

Ja, bei mir. Es funktioniert mit Binärdaten, bevor ich nachgeschaut habe, lief es hauptsächlich mit Binärdaten. Schade, dass sie einem nicht sagen, welche Spalte/Zeile falsch ist.

 
Aleksey Vyazmikin #:

Ja, für mich. Es funktioniert mit Binärdateien, bevor ich nachgeschaut habe, lief es meistens mit Binärdateien. Schade, dass sie dir nicht sagen, welche Spalte/Zeile falsch ist.

Überprüfen Sie Ihre Daten doppelt, um sicherzustellen, dass sie mit dem Binärcode übereinstimmen.

Wenn Sie es nicht herausfinden können, schicken Sie mir einen kleinen Teil Ihrer Daten, mit denen das Skript nicht funktioniert, sowie das Skript selbst und erinnern Sie mich daran, was es tun sollte.
Ich werde versuchen zu helfen...

 
mytarmailS #:
Überprüfen Sie Ihre Daten, um sicherzustellen, dass sie mit den binären Daten übereinstimmen: ....

Wenn Sie es nicht herausfinden können, schicken Sie mir einen kleinen Teil Ihrer Daten, mit denen das Skript nicht funktioniert, sowie das Skript selbst und erinnern Sie mich daran, was es tun soll.
Ich werde versuchen zu helfen...

Warum müssen sie mit der Binärdatei übereinstimmen? Ich habe gerade gesagt, dass das Skript funktioniert, aber es funktioniert nicht mit allen Daten.

Ich habe die Probe zerschnitten und das Skript in einem separaten Archiv angehängt.

Das Skript entfernt korrelierte Spalten aus der Stichprobe und speichert die neue Stichprobe.

Die Spalten werden abhängig von der Korrelationsschwelle ausgeschlossen.

Dateien:
 
Aleksey Vyazmikin #:

Warum müssen sie mit der Binärdatei übereinstimmen? Ich habe gerade gesagt, dass das Skript funktioniert, aber es funktioniert nicht mit allen Daten.

Ich weiß nicht, vielleicht haben Sie das Trennzeichen geändert oder so...
Und ich verstehe immer noch nicht, welchen Fehler das Skript anzeigt.
Und warum hast du die Pakete auf dem neueren R installiert und das alte R benutzt?
 
Aleksey Vyazmikin #:

Bitte sehr, ich musste alles noch einmal neu schreiben, es war so beschissener Code, dass ich nicht verstand, was er tat

df <- read.csv(file = file.choose(), header = T,sep = ";",dec = ".",stringsAsFactors = F)


#  указываем какие колонки не использовать
not_used_vars <- c("Target_100_Buy","Target_100_Sell","Target_P","Time","Target_100")


#  сохраняем отдельно не испозуемые колонки
not_used_vars_df <- df[,not_used_vars]


#  создаем датафрейм для поиска, без колонок  not_used_vars
df <- df[!names(df) %in% not_used_vars]


#  чтобы прочитать как работает функция и примеры  ?caret::findCorrelation
#  находим колонки которые не коррелированы с порогом корреляции 0,9    "cutoff = 0.9"
not_corr_colums <- caret::findCorrelation(as.matrix(df), cutoff = 0.9, exact = F,names = F)


#  оставляем df с некоррелироваными колонками
df <- df[,not_corr_colums]


#  обьединяем все в результирующий датафрейм
df <- cbind.data.frame(not_used_vars_df , df)


#  сохраняем результат
res_save_way <- "C:\\......\\not_correl_data.csv"
write.csv2(x = df,file = res_save_way,row.names = F)
Grund der Beschwerde: