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

 
Forester #:
Beyler! Konuyu karıştırmıyor musunuz? Konu dışı 2-3 sayfayı temizlemek iyi olur.
Alexey'in makalesi bir saat önce yayınlandı, okuyun.
Sanırım onun nicelleştirmesini zaten zamanında her yönden tartıştık. Daha önce söylediklerime ekleyebileceğim tek şey, ona en azından 200 dolar kazandırdığı için onun adına sevindiğimdir.
 
Aleksey Nikolayev #:
Sanırım onun zamanındaki niceliğini her yönden zaten tartışmıştık. Daha önce söylediklerime ekleyebileceğim tek şey, ona en azından 200 dolar kazandırdığı için onun adına mutlu olduğumdur.

Senin dalın mı? Bugün konu dışı (flud) birçok felsefi ve diğer uydurmaları ifade ettiniz ve "kendi ilkelerinize saygı duymamak" ne diyorsunuz?
Ayrıca, Kant ve Diogenes ve belki de Aristoteles ve Pisagor, başka bir kişinin erdemlerini ve başarılarını aşağılamaktan, hakaret etmekten ve küçümsemekten yüksek alan bir kişiye ne derdi?
 
Aleksey Nikolayev #:
Sanırım onun zamanındaki niceliğini her yönden zaten tartışmıştık. Daha önce söylediklerime ekleyebileceğim tek şey, ona en az 200 dolar kazandırdığı için onun adına mutlu olduğumdur.

Teşekkür ederim, gelirim için mutlu olmak güzel - nadir!

Makale giriş niteliğinde - haklısınız, orada yazdığım her şey - bence ve çok açık.

İkinci kısım ise biraz daha ilginç. Ancak, şu anda kendi yöntemimi açıklamaktan vazgeçtim ve testler üzerinde küçük bir etki sağlayan basitleştirilmiş bir versiyon buldum. Bu yöntem ikinci bölümde açıklanacaktır.

Ancak, yeni fikirler metnin %5'inden fazlasını almadığında durum böyle olacaktır.

Dilerseniz okumak ve yorum yapmak için geri gelin.

 
Andrey Dik #:

h ttps:// www.mql5.com/ru/forum/309270
Konunuz mu? Bugün bir sürü felsefi ve diğer konu dışı düşünceler (flud) yaptınız ve "kendi ilkelerinize saygı duymamak" dediğiniz şey nedir?
Ayrıca, Kant ve Diogenes ve belki de Aristoteles ve Pisagor, başka bir kişinin erdemlerini ve başarılarını aşağılayarak, hakaret ederek ve küçümseyerek kafayı bulan bir kişiye ne derlerdi?

Hangi Diyojen'i kastettiğinizi bilmiyorum ama trollük anlamında Sinoplu Diyojen ya da Laertesli Diyojen'e kıyasla hepimiz çocuğuz.

Başlığımın, kaynağa kaydımın ve bugünkü başlığımın tarihlerine bakarsanız, daha açık hale gelecektir. Kayıttan iki yıl sonra forumda yapıcı ve faydalı diyalog için hala umut vardı ve altı buçuk yıl sonra neredeyse hiç umut kalmadı. Sadece eğlence için.

 
Aleksey Vyazmikin #:

Buyurun teşekkürler, gelirim için mutlu olmak güzel - nadir bir durum!

Makale giriş niteliğinde - haklısınız, orada yazdığım her şey - yeterince açık olduğunu düşünüyorum.

İkinci bölüm moderasyon altında, biraz daha ilginç. Ancak, şu anda kendi yöntemimi açıklamaktan vazgeçtim ve testler üzerinde küçük bir etki sağlayan basitleştirilmiş bir versiyon buldum. İkinci bölümde açıklanacaktır.

Ancak bu durum, yeni fikirlerin metnin %5'inden fazlasını almaması halinde geçerlidir.

Dilerseniz okumak ve yorum yapmak için geri gelin.

Davetiniz için teşekkür ederim. Doğal olarak ilk bölümü okudum ve ikinci bölümü de okuyacağım. Metinle ilgili düşünceler varsa onları da paylaşacağım.
 
Forester #:

Neden rastgele?
Bir sınıftaki tüm noktalar arasında dolaşın ve diğer sınıftaki tüm noktalara olan mesafeyi ölçün, minimum mesafeyi alın.
Her şey elde edildiğinde, sıralayın, ihtiyacınız olan mesafeye kadar silin, her seferinde bir çift. Silinen nokta başka bir çiftte kullanılmışsa, yeni bir minimum mesafeye sahip yeni bir nokta bulun, tekrar sıralayın ve devam edin.
Belki daha iyi bir yol düşünebilirsiniz. Belki sıralama yapmadan - sadece gerekli mesafeye kadar silin.

Sanırım doğru anlamıyorum:

  1. Bir uzaklıklar matrisi oluşturuyoruz - örneklemdeki örnek sayısı ile aynı boyutta uzunluk ve genişlik.
  2. İkili diyelim, birimlerin "minimum mesafe" kriterini karşılayan noktalar olduğu yeni bir matris oluşturuyoruz.
  3. Anladığım kadarıyla, burada koşullu adadaki nokta sayısını saymamız (satırlardaki birimleri toplamamız) ve komşu adadakinden daha fazla nokta varsa ve noktalar aralarında bölünmüşse, bu noktaları bu tür noktaların daha fazla olduğu yığına (kümeye) atamamız gerekiyor. Böyle ve böyle bir noktanın #n nokta kümesine ait olduğunu tespit edin ve bu noktaları ikinci adımdaki matrise sıfırlayın.
  4. Hiç nokta kalmayana kadar sıfırlamaya devam edin.

Algoritmanın prototipini doğru anladım mı?

Konuya böyle bir gecikmeyle dönüyorum, çünkü CatBoost modellerindeki ve diğer ağaç topluluklarındaki yaprakların aktivasyonda güçlü bir şekilde ilişkili olabileceği fikrinden biraz etkileniyorum, bu da eğitim sırasında güvenlerini bozuyor ve bir bütün olarak model için yaprak değerinin fazla tahmin edilmesine yol açıyor.

 
Aleksey Vyazmikin #:

Eh, sanırım biraz yavaş anlıyorum:

  1. Örnekteki örnek sayısı ile aynı boyutta uzunluk ve genişlikte bir uzaklıklar matrisi oluşturuyoruz.
  2. İkili diyelim, birimlerin "minimum mesafe" kriterini karşılayan noktalar olduğu yeni bir matris oluşturuyoruz.
  3. Anladığım kadarıyla, burada koşullu adadaki nokta sayısını saymamız (satırlardaki birimleri toplamamız) ve komşu adadakinden daha fazla nokta varsa ve noktalar aralarında bölünmüşse, bu noktaları bu tür noktaların daha fazla olduğu yığına (kümeye) atamamız gerekiyor. Böyle ve böyle bir noktanın #n nokta kümesine ait olduğunu tespit edin ve bu noktaları ikinci adımdaki matrise sıfırlayın.
  4. Daha fazla nokta kalmayana kadar sıfırlamaya devam edin.

Algoritmanın prototipini doğru anladım mı?

Konuya böyle bir gecikmeyle dönüyorum, çünkü CatBoost modellerindeki ve diğer ağaç topluluklarındaki yaprakların aktivasyonda güçlü bir şekilde ilişkili olabileceği fikrinden biraz etkileniyorum, bu da eğitim sırasında güvenlerini bozuyor ve bir bütün olarak model için yaprak değerinin fazla tahmin edilmesine yol açıyor.

Kümelemenin bununla hiçbir ilgisi yoktur. Sadece birbiriyle çelişen farklı sınıflara sahip en yakın noktaları, yani gürültüyü ortadan kaldırır. Ve sonra onu kümeleme veya ağaç ile eğitebilirsiniz - ne isterseniz.

1) Bir matris de kullanabilirsiniz, ancak zorunlu değildir, ancak hemen 0 sınıfının her noktasını 1 sınıfının en yakın noktasını bulun, yani bir kerede 2. noktayı elde ederiz.
3) hiçbir şeyi saymayın ve kümelere atıfta bulunmayın, sadece en yakın noktaların çiftlerini çıkarın. Mesafe eşikten az olduğunda, bu örnekteki eşik 0,6 olacaktır. Diğer problemlerde muhtemelen bunu seçmemiz gerekecektir.
Silinen 1 sınıflı bir nokta 0 sınıflı başka bir nokta ile eşleştirilmişse, o zaman çiftsiz kalır, 1 sınıflı yeni bir en yakın nokta bulmak zorundadır (yine bir hesaplama yapın veya 1. maddede önerdiğiniz gibi bir matris kullanın, bellek yeterliyse, 1 milyona 1 milyonluk bir matrisin herhangi bir belleğe sığmayacağını düşünüyorum, belki 100 bine kadar).
4) kalana kadar değil, eşik mesafesine kadar. Çok büyükse, başlangıçta daha fazla olan sınıflardan sadece 1'inin noktaları kalacaktır.

Ancak daha önce de yazdığım gibi, bu gürültüyü ortadan kaldırmanın iyi bir fikir olduğunu düşünmüyorum (bkz. https://www. mql5.com/ru/forum/86386/page3324#comment_50171043). Tahmin yaparken bu gürültüyü ortadan kaldıramazsınız diye bir şey yok. Ağacın kendisi gürültülü yaprakları yaklaşık %50 olasılık vererek işaretleyecek ve örneğin sınıflardan birinin olasılığı >%80 olan gürültülü olmayan yaprakları alacaktır (veya uygun gördüğünüz kadarını).

Машинное обучение в трейдинге: теория, модели, практика и алготорговля - На рыночных данных сигналы пропадают, потому что на новых данных сигналы выходят за узкий допустимый диапазон.
Машинное обучение в трейдинге: теория, модели, практика и алготорговля - На рыночных данных сигналы пропадают, потому что на новых данных сигналы выходят за узкий допустимый диапазон.
  • 2023.10.26
  • www.mql5.com
если в работу использовать листья с высокой чистотой классов и не делить листья до 1 примера в листе. остальные как то достигли чистоты листьев например 70 - вроде неплохо. Препочитаю дерево и лист с честными 53 чистоты одного из классов
 
Forester #:
Kümelerin bununla hiçbir ilgisi yoktur. Sadece birbiriyle çelişen farklı sınıflara sahip en yakın noktaları, yani gürültüyü ortadan kaldırır. Ve sonra kümeleme veya ağaç kullanabilirsiniz - eğitmek istediğiniz her neyse.
.

1) Bir matris de kullanabilirsiniz, ancak zorunlu değildir, ancak hemen 0 sınıfın her noktasını 1 sınıfın en yakın noktasını bulun, yani bir kerede 2. noktayı elde ederiz.
3) hiçbir şey saymayın ve kümelere atıfta bulunmayın, sadece en yakın noktaların çiftlerini kaldırın. Mesafe eşikten az olduğunda, bu örnekteki eşik 0,6 olacaktır. Diğer problemlerde muhtemelen bunu seçmemiz gerekecektir.
Silinen 1 sınıflı bir nokta 0 sınıflı başka bir nokta ile eşleştirilmişse, o zaman çiftsiz kalır, 1 sınıflı yeni bir en yakın nokta bulmak zorundadır (yine bir hesaplama yapın veya 1. maddede önerdiğiniz gibi bir matris kullanın, bellek yeterliyse, 1 milyona 1 milyonluk bir matrisin herhangi bir belleğe sığmayacağını düşünüyorum, belki 100 bine kadar).
4) kalana kadar değil, eşik mesafesine kadar. Çok büyükse, başlangıçta daha fazla olan sınıflardan sadece 1'inin noktaları kalacaktır.

Ancak daha önce de yazdığım gibi, bu gürültünün giderilmesinin iyi bir fikir olduğunu düşünmüyorum (bkz. https://www. mql5.com/ru/forum/86386/page3324#comment_50171043). Tahmin yaparken bu gürültüyü ortadan kaldıramazsınız diye bir şey yok. Ağacın kendisi gürültülü yaprakları yaklaşık %50 olasılık vererek işaretleyecek ve örneğin sınıflardan birinin olasılığı >%80 (veya uygun gördüğünüz kadar) olan gürültülü olmayan yaprakları alacaktır.

Henüz kafamda tam olarak oturtamadım. Her şey tek bir alanda gerçekleşiyor - bir tahmin edicinin metriğinde, ama diğerlerini nasıl hesaba katacağız?

Tahmin yaparken ne yapacağıma gelince - iki model kullanmayı düşünüyordum - biri neyin düştüğünü tespit eden veya verilerin "kümelenme" bölgesinde olduğunu doğrulayan, diğeri ise zaten kalanlar üzerinde çalışan.

 
Aleksey Vyazmikin #:

Henüz kafamı toparlayamadım. Her şey tek bir alanda gerçekleşiyor - bir tahmincinin metriğinde, ama diğerlerini nasıl hesaba katacağız?

Tahmin yaparken ne yapacağıma gelince - iki model kullanmayı düşünüyordum - biri neyin elendiğini tespit ediyor veya verilerin "kümelenme" alanında olduğunu doğruluyor ve diğeri zaten geriye kalanlar üzerinde çalışıyor.

https://www.mql5.com/ru/articles/9138

Bir yıldır kimse umursamıyor.

Bunun gibi bir düzine ya da yirmi algoritma yazdım, bazıları iyi kurulmuş. Makaledeki, sonuçların istikrarı açısından en iyisi değil, ilk gözleme.

Bu yüzden tartışacak bir şey yok, çünkü henüz daha iyi bir şey yok.


Метамодели в машинном обучении и трейдинге: Оригинальный тайминг торговых приказов
Метамодели в машинном обучении и трейдинге: Оригинальный тайминг торговых приказов
  • www.mql5.com
Метамодели в машинном обучении: Автоматическое создание торговых систем практически без участия человека — Модель сама принимает решение как торговать и когда торговать.
 
Makine öğreniminde yeniyim. Birkaç model üzerinde çalışıyorum. Ve geçen hafta bir sorun ortaya çıktı. Modellerin hiçbiri ONNX((( içinde kaydedilmiyor. Bu sorunla kim karşılaştı?
WARNING:tf2onnx.tf_loader:Could not search for non-variable resources. Concrete function internal representation may have changed.
ERROR:tf2onnx.tf_utils:pass1 convert failed for name: "model_3/lstm_4/PartitionedCall/while"
op: "StatelessWhile"
input: "model_3/lstm_4/PartitionedCall/while/loop_counter"
input: "model_3/lstm_4/PartitionedCall/while/maximum_iterations"
input: "model_3/lstm_4/PartitionedCall/time"
input: "model_3/lstm_4/PartitionedCall/TensorArrayV2_1"
input: "model_3/lstm_4/zeros"
input: "model_3/lstm_4/zeros_1"
input: "model_3/lstm_4/PartitionedCall/strided_slice"
input: "model_3/lstm_4/PartitionedCall/TensorArrayUnstack/TensorListFromTensor"
input: "Func/model_3/lstm_4/PartitionedCall/input/_3"
input: "Func/model_3/lstm_4/PartitionedCall/input/_4"
input: "Func/model_3/lstm_4/PartitionedCall/input/_5"
attr {
  key: "T"
  value {
    list {
      type: DT_INT32
      type: DT_INT32
      type: DT_INT32
      type: DT_VARIANT
      type: DT_FLOAT
      type: DT_FLOAT
      type: DT_INT32
      type: DT_VARIANT
      type: DT_FLOAT
      type: DT_FLOAT
      type: DT_FLOAT
    }
  }
}
attr {
  key: "_lower_using_switch_merge"
  value {
    b: false
  }
}
attr {
  key: "_num_original_outputs"
  value {
    i: 11
  }
}
attr {
  key: "_read_only_resource_inputs"
  value {
    list {
    }
  }
}
attr {
  key: "body"
  value {
    func {
      name: "while_body_149241"
    }
  }
}
attr {
  key: "cond"
  value {
    func {
      name: "while_cond_149240"
    }
  }
}
attr {
  key: "output_shapes"
  value {
    list {
      shape {
      }
      shape {
      }
      shape {
      }
      shape {
      }
      shape {
        dim {
          size: -1
        }
        dim {
          size: 128
        }
      }
      shape {
        dim {
          size: -1
        }
        dim {
          size: 128
        }
      }
      shape {
      }
      shape {
      }
      shape {
        dim {
          size: 1
        }
        dim {
          size: 512
        }
      }
      shape {
        dim {
          size: 128
        }
        dim {
          size: 512
        }
      }
      shape {
        dim {
          size: 512
        }
      }
    }
  }
}
attr {
  key: "parallel_iterations"
  value {
    i: 32
  }
}
, ex=Could not infer attribute `_read_only_resource_inputs` type from empty iterator
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-50 ef5b7ad3f4> in <cell line: 87>()
     85 
     86 # Преобразовать Keras-модель в ONNX формат
---> 87 onnx_model = tf2onnx.convert.from_keras(model)
     88 
     89 # Сохранить модель в формате ONNX

8 frames
/usr/local/lib/python3.10/dist-packages/onnx/helper.py in make_attribute(key, value, doc_string, attr_type)
    874         value = list(value)
    875         if len(value) == 0 and attr_type is None:
--> 876             raise ValueError(
    877                 f"Could not infer attribute `{key}` type from empty iterator"
    878             )

ValueError: Could not infer attribute `_read_only_resource_inputs` type from empty iterator