記事「データサイエンスと機械学習(第08回)::簡単なMQL5でのK平均法」についてのディスカッション

 

新しい記事「データサイエンスと機械学習(第08回)::簡単なMQL5でのK平均法」はパブリッシュされました:

データサイエンティストやトレーダーにとってデータマイニングは非常に重要です。多くの場合、データは私たちが思っているほど単純ではありません。人間の目は、データセット内のささいな基本パターンと関係を理解できません。k平均法アルゴリズムがその助けになるかもしれません。調べてみましょう...

クラスタリング分析は、同じ属性を持つオブジェクトが同じグループ(クラスター)内に配置されるように、一連のオブジェクトをグループ化するタスクです。

ショッピングモールに行けば、似たような商品は一緒に並んでいます。誰かがそれらをグループ化するプロセスをおこなったわけです。データセットがグループ化されていない場合、クラスタリング分析はそのようにおこなわれ、他のグループ(クラスター)よりも(ある意味で)互いに類似しているデータ値がグループ化されます。

クラスタリング分析自体は特定のアルゴリズムではありません。一般的なタスクは、クラスターを構成するものを理解するという点で大きく異なるさまざまなアルゴリズムによって解決できます。

画像出典:ウィキペディア

作者: Omega J Msigwa

 

まず最初に、この記事をシェアしてくれた著者に感謝したい。著者は、これらの理論を説明するだけでなく、K-平均クラスタリングが実際の取引でどのように使われているかの例を示してほしい。もし対応する例がなければ、この記事や著者の他の記事は実質的に教科書と見分けがつかない。機械学習は多くの分野で使われている。

著者がこれらの機械学習理論をMT5の取引メカニズムの例でもっとうまく説明できればいいのだが。今回もありがとうございました。

 
m_cols = Matrix.Cols();
      n = Matrix.Rows(); //要素の数|行列の行数
      
      InitialCentroids.Resize(m_clusters,m_cols);     
      vector cluster_comb_v = {};
      matrix cluster_comb_m = {};      
      vector rand_v = {};
      
      for (ulong i=0; i<m_clusters; i++) 
        {
          rand_v = Matrix.Row(i * m_clusters); 
          InitialCentroids.Row(rand_v,i);
        }     
     Print("Initial Centroids matrix\n",InitialCentroids);    

こんにちは、Omega J Msigwa です。

私は何かを見逃しているのでしょうか、それとも上記のコードであなたが意味しているのは Dマトリックス?

 
Mahdi Ebrahimzadeh #:

こんにちは、オメガJ・ミシグワ

私は何かを見逃しているのでしょうか、それとも上記のコードであなたが意味しているのは DMatrix?

記事で説明されているMatrixのことです。

void CKMeans::KMeansClustering(const matrix &Matrix, matrix &clustered_matrix,int iterations = 10)
 { 
      m_cols = Matrix.Cols();
      n = Matrix.Rows(); //要素の数|行列の行数
      
      InitialCentroids.Resize(m_clusters,m_cols);
      cluster_assign.Resize(n);
            
      clustered_matrix.Resize(m_clusters, m_clusters*n);
      clustered_matrix.Fill(NULL);
      
      vector cluster_comb_v = {};
      matrix cluster_comb_m = {};      
      vector rand_v = {};      
      for (ulong i=0; i<m_clusters; i++) 
        {
          rand_v = Matrix.Row(i * m_clusters); 
          InitialCentroids.Row(rand_v,i);
        }     
     Print("Initial Centroids matrix\n",InitialCentroids);    
.... rest of the code