Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 2801

 
mytarmailS #:
Kitap nasıl?
4 yıl önce okudum. Artık hakkında bir şey söyleyemem. Benim için yeni olduğu için bir sayfasını bloguma kopyaladım ve hatıra olarak saklamam gerektiğine karar verdim. )
 

Bu arada, Gini endeksinin kök ünün nasıl hesaplanacağını bilen var mı (kökün nasıl hesaplanacağını anlıyorum, ancak Gini endeksinin kendisi)? Bir kod örneğini tercih ederim. Bunu denemek ilginç olurdu.
O zaman da belirttiğim gibi "Gini endeksi ve Gini katsayısıfarklı şeylerdir - bunlarıkarıştırmayın ".
Gini katsayısı için bir GSC kullanıyoruz, yani gürültü ekliyoruz. Makaleye R ve PY'yi hesaplamak için bulunan kodu ekledim.
Endeks başka bir şeydir.

 
elibrarius #:

Bu arada, Gini endeksinin kök ünün nasıl hesaplanacağını bilen var mı (kökün nasıl hesaplanacağını anlıyorum, ancak Gini endeksinin kendisi)? Kodun bir örneğini tercih ederim. Bunu denemek ilginç olurdu.
O zaman da belirttiğim gibi "Gini endeksi veGini katsayısı farklı şeylerdir - bunlarıkarıştırmayın ".
Gini katsayısı için bir GSC kullanıyoruz, yani gürültü ekliyoruz. R ve PY'yi hesaplamak için bulunan kodu makaleye ekledim.
Endeks başka bir şeydir.

Gini katsayısı ve Gini Safsızlığı vardır. İlki ikili sınıflandırmada bir metrik olarak kullanılır, makale. İkincisi ise karar ağaçlarında entropinin bir benzeri olarak kullanılır.

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

Tekrar kullanmaya karar verdiğim bir komut dosyası yaptığınızda

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 = "")
}

Bir örnek üzerinde çalıştırdım ve bir hata veriyor - hatayı nerede arayacağımı ve nasıl düzelteceğimi anlayamıyorum - belki bu kütüphaneleri / paketleri kullandığınız için biliyorsunuzdur?

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]) :
  стандартное отклонение нулевое

İkili bir örnek üzerinde her şey yolunda gitti.

 
Aleksey Vyazmikin #:

Bir keresinde tekrar kullanmaya karar verdiğim bir senaryo yazmıştınız.

Bir örnek üzerinde çalıştırdım ve bir hata veriyor - hatayı nerede bulacağımı ve nasıl düzelteceğimi anlayamıyorum - belki bu kütüphaneleri / paketleri kullandığınız için biliyorsunuzdur?

İkili bir örnek üzerinde her şey yolunda gitti.

Bu kütüphaneyi kullanmıyorum, bir kez yaptım, sanırım sadece sizin içindi.... Eski verilerle çalışıyorsa, yeni verilerinizde yanlış bir şey yapmış olmalısınız
 
mytarmailS #:
Bu bibliyoteği kullanmıyorum, bir kez yapmıştım, sanırım sadece sizin içindi.... Eski verilerle çalışıyorsa, yeni verilerinizde bir şeyleri yanlış yapmış olmalısınız.

Evet, benim için. Binary ile çalışıyor, ben bakmadan önce çoğunlukla binary üzerinde çalışıyordu. Hangi sütunun/satırın yanlış olduğunu söylememeleri çok kötü.

 
Aleksey Vyazmikin #:

Evet, benim için. Binary ile çalışıyor, bakmadan önce çoğunlukla binary üzerinde çalışıyordu. Hangi sütunun/satırın yanlış olduğunu söylememeleri çok kötü.

Verilerinizi iki kez kontrol ederek ikiliyle eşleştiğinden emin olun.

Eğer çözemezseniz, betiğin çalışmadığı verilerinizin küçük bir parçasını ve betiğin kendisini bana gönderin ve ne yapması gerektiğini hatırlatın.
Yardım etmeye çalışacağım...

 
mytarmailS #:
Bu ikili ile eşleştiğinden emin olmak için verilerinizi iki kez kontrol edin....

Eğer çözemezseniz, bana betiğin çalışmadığı verilerinizin küçük bir parçasını ve betiğin kendisini gönderin ve bana ne yapması gerektiğini hatırlatın.
Yardım etmeye çalışacağım.

Neden ikiliyle eşleşmek zorundalar? Az önce betiğin çalıştığını, ancak tüm verilerle çalışmadığını söyledim.

Örneği kestim ve betiği ayrı bir arşive ekledim.

Komut dosyası, örnekten ilişkili sütunları kaldırır ve yeni örneği kaydeder.

Korelasyon eşiğine bağlı olarak sütunlar hariç tutulur.

Dosyalar:
 
Aleksey Vyazmikin #:

Neden ikiliyle eşleşmek zorundalar? Az önce betiğin çalıştığını, ancak tüm verilerle çalışmadığını söyledim.

Bilmiyorum, belki de ayırıcıyı veya başka bir şeyi değiştirdiniz...
Ve hala betiğin hangi hatayı verdiğini anlamıyorum.
Ve neden paketleri yeni R'ye yüklediniz ve eski R'yi kullandınız?
 
Aleksey Vyazmikin #:

İşte burada, her şeyi baştan yazmak zorunda kaldım, o kadar boktan bir koddu ki ne yaptığını anlamadım

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)