⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lbg.~jav

📁 人工神经网络java工具箱源代码 包含BP网络
💻 ~JAV
字号:


public class LBG extends Object {

  double c[][];//重心
  int indexc[];
  int indext[];
  double d[];//距离(歪)


  public LBG(double t[][],int N) {

  double e=0.001;
  double td0=0;//上次总歪
  double td;//本次总歪
  double d0=999999.9;
  double s,s1;
  boolean notend=true;

  c=new double[N][t[0].length];//重心数组
  indexc=new int[N];//重心索引
  indext=new int[t.length];//确定样本t的分类
  d=new double[N];//类组的歪

  for (int i=0;i<N;i++)
  {
      indexc[i]=i;          //确定初始重心为样本1-N
      for(int j=0;j<t[0].length;j++)
         c[i][j]=t[indexc[i]][j];
  }

  
  while (notend){
  //决定势力圈
  for (int i=0;i<t.length;i++)//遍历数据
  { d0=9999999.9;
    for (int j=0;j<N;j++)//遍历类
    {s=0.0;
     for (int k=0;k<t[0].length;k++)
          s+=(t[i][k]-c[j][k])*(t[i][k]-c[j][k]);
     s=Math.sqrt(s);
     if (s<d0){
        d0=s;
        indext[i]=j;}

     } //end for j
  }//end for i


  //决定新的重心
  for (int i=0;i<N;i++)
    {d[i]=999999.0;
     s=0;

     for (int j=0;j<t.length;j++)
         if (indext[j]==i)
          {d0=0.0;
          for (int k=0;k<t.length;k++)
             {if ((indext[k]==i)&&(j!=k))
              //if (indext[k]==i)
                    { s=0;
                      for (int l=0;l<t[0].length;l++)
                           s+=(t[j][l]-t[k][l])*(t[j][l]-t[k][l]);
                      s=Math.sqrt(s);
                    }
             }//end for k


          d0+=s;
          if (d0==0.0)
             d0=0.1;
          //if ((d0<d[i])&&(d0!=0.0)){
          if (d0<d[i]){

             d[i]=d0;

             indexc[i]=j;
              for(int m=0;m<t[0].length;m++)
                   c[i][m]=t[indexc[i]][m];
          }
          }//end for j
     
     }//end i

 //计算总歪
 td=0;
 for (int i=0;i<N;i++)
     td+=d[i];
 if (Math.abs(td-td0)<e)
    notend=false;
    else
    td0=td;

    }//end while

  }//end LBG

  public double[][] getc(){
   return this.c;
   }

  public double[] getd(){
   return this.d;
   }

   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -