亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kmeans.java

?? Kmeans for data mining, clustering
?? JAVA
字號:
/*
 *Kmeans
 *Chalres
 *
 *
 *
 **/

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Random;


public class kmeans {

     private static int M=150;     //No. of instance        
     private static int k=3;      //k cluster        
     private static int N=4;     //No. of dimension           
     private static String str="iris_data.txt";
     int err = 0; 
     
     private static int Z=0;   //No. of loop
     private static float[][] arr;  //data array
     public String[] target_class; 
     float cent[][];    //centroid
     float ocent[][];   //old centroid
     boolean r=true; //set default r to stop the loop first
     double P1,P2=0;
     float class_data[];
     
     
     void Normalize(){
           float max[]=new float[N];
           float min[]=new float[N];
           int i,j;
           
           for(i=0;i<N;i++){
                 max[i]=min[i]=arr[0][i];
           }
           
           for(i=0;i<M;i++)
                 for(j=0;j<N;j++)
                 	{
                 if(max[j]<arr[i][j]) max[j]=arr[i][j];//find the max value
                 if(min[j]>arr[i][j]) min[j]=arr[i][j];//find the min value
                    }
           
           for(i=0;i<M;i++)
                 for(j=0;j<N;j++)
                 	{
                       if(max[j]==min[j]); //do nothing
                       else arr[i][j]=(arr[i][j]-min[j])/(max[j]-min[j]);
                    }//normailze the dataset

            }
     
     public void init(){
           
           arr=new float[M][N+1];
           cent= new float[k][N];
           ocent=new float[k][N];
           target_class = new String[M];
           class_data = new float[M];
           
           //store the original classification
           for (int i = 0; i < 49; i++)
           {
           	class_data[i] = 0;
           }
             for (int i = 49; i < 99; i++)
           {
           	class_data[i] = 1;
           }
           
             for (int i = 99; i < M; i++)
           {
           	class_data[i] = 2;
           }
           
           readFile(str);
           int i,j;
           //print raw dataset
           for(i=0;i<M;i++){
                 
                 System.out.print("No. "+i+"\t");
                 for(j=0;j<N;j++)
                 	{
                       System.out.print(arr[i][j]);
                       
                       System.out.print("\t");
                     //  if(j==3)
                             }
                      
            System.out.print(class_data[i]);
            System.out.print("\n");
                           }
           Normalize();
           calculate();
           System.out.print("Cluster:"+"\n");
           for(i=0;i<M;i++)
           	{
          if (arr[i][N] == 2.0) {target_class[i] = "+";}
           else if (arr[i][N] == 1.0) {target_class[i] = "-";}
           else if (arr[i][N] == 0.0) {target_class[i] = "*";}
           else {target_class [i] = "?";}
           			
           			
          // System.out.print((arr[i][N])+"\n");
           System.out.print((target_class[i]));
          if (arr[i][N] - class_data[i] !=0) err++;
           }
          //System.out.print(M);    
           	//System.out.print(N);  
           System.out.println();
           
           System.out.print("Centroid: "+"\n");
           for(i=0;i<cent.length;i++)//print centroid
                 for(j=0;j<cent[i].length;j++){
                 	   
                       System.out.print(cent[i][j]+"\t");
                       if(j==cent[i].length-1) 
                             System.out.print("\n");
                 }
          // System.out.print("Error of Cluster: "+err);
           System.out.print("No. of Loop:"+Z);
           //System.out.print("\n"+P1+"\n"+P2);
     }
     



           public void readFile(String fileName){        //read from file
             int count = 0,i,j;
             String str[] = new String[M];
             String str1 = null;
             String str2[] = new String[4];
             try{
                 FileReader fr = new FileReader(fileName);
                 BufferedReader br = new BufferedReader(fr);
                 while((str1=br.readLine())!=null){
                     str[count] = str1;
                     count++;
                 }
                 fr.close();
                 br.close();
             }
             catch(IOException e){
                 System.out.println("IOException");
             }
             for(i=0;i<M;i++){
                 str2=str[i].split(",");
                 for(j=0;j<N;j++){
                       Float ff = new Float(str2[j]);//convert string to float
                     arr[i][j]=ff.floatValue();//store into the array
                 }
             }
             //print out array, for testing
             /*for(i=0;i<M;i++){
                 for(j=0;j<N;j++){
                     System.out.print(arr[i][j]+",");
                 }
                 System.out.println();
             }*/
         }

     
     public void calculate(){
           int j;
           Random R= new Random();
           for(int i=0;i<M;i++){
           	//randomly centroid choose
                 j=Math.abs(R.nextInt())%k;
                 arr[i][N]=j;
           }
           
           //work out centroid
           calulatecent();
           while(r)
           	{
           Z++;
           //No. of loop +1
           distance();
           calulatecent();
           if(Math.abs(P1-P2)<0.0000001) break;//act as if the distance is not changed
           for(int a=0;a<k;a++)
                 for(int i=0;i<N;i++)
                 	{
                             if(cent[a][i]!=ocent[a][i])
                             	{ 
                                   r=true;
                                   break;
                                   //the centroid is not stable
                                 }
                             else 
                                   r=false;
                                   //try to break the loop
                    }
           }
     }

     
     public void calulatecent(){//calculate centroid
           float s[]=new float[N];//total sum for the dimension
           for(int i=0;i<k;i++)//save old centroid
                 for(int j=0;j<N;j++){
                       ocent[i][j]=cent[i][j];
                 }
           
           for(int i=0;i<k;i++){

                 for(int l=0;l<N;l++) s[l]=0;
                 int l=0;
                 
                 for(int j=0;j<M;j++)
                       if(arr[j][N]==i){//centroid for every dimension
                             l++;
                             for(int z=0;z<N;z++)
                                   s[z]+=arr[j][z];
                             }
                 for(int x=0;x<N;x++)
                       cent[i][x]=s[x]/l;//mean
                 }
     }
     
     public void distance(){
     	//distance
           int i,j,w;
           double dis,z;
           P1=P2;P2=0;
           for(i=0;i<M;i++)
           	{
                 dis=Double.MAX_VALUE;
                 //apporach to infinite value
                 for(j=0;j<k;j++)
                 	{
                       z=0;
                       for(w=0;w<N;w++){
                       	//Euclidean distance
                            z=z+(cent[j][w]-arr[i][w])*(cent[j][w]-arr[i][w]);
                       }
                       z=Math.sqrt(z);
                       if(dis>z) 
                       	{
                       	//distance is measureble
                             dis=z;
                             arr[i][N]=j;//the cluster is selected
                             P2+=z;
                       }
                 }
           }
     
     }
     
     public static void main(String []args){
           kmeans k = new kmeans();
           k.init();     
           
     }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久一牛影视| 韩国成人精品a∨在线观看| 国产日韩欧美在线一区| 日韩精品中午字幕| 日韩欧美国产午夜精品| 国产精品家庭影院| 亚洲影院久久精品| 天天综合天天做天天综合| 国产91精品久久久久久久网曝门 | 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲欧洲av在线| 亚洲人一二三区| 亚洲一区二区三区四区在线 | 麻豆国产欧美日韩综合精品二区 | 亚洲成人一二三| 日韩成人一级大片| 国内精品第一页| 樱桃视频在线观看一区| 国产欧美一区二区三区在线看蜜臀 | 91蝌蚪国产九色| 在线视频国产一区| 日韩视频免费直播| 日本一区二区成人| 亚洲在线中文字幕| 91啪九色porn原创视频在线观看| 国产亚洲va综合人人澡精品| 一区二区三区在线视频观看58 | 136国产福利精品导航| 国产成人一级电影| 欧美精品一区男女天堂| 亚洲色图制服丝袜| 成人动漫一区二区在线| 欧美一区二区在线播放| 国产三级欧美三级| 国产iv一区二区三区| 中文字幕av一区 二区| 国产不卡免费视频| 中文字幕在线一区二区三区| 欧美在线观看一二区| 亚洲综合另类小说| 欧美性大战久久久久久久| 久久久国产精华| 天天综合色天天综合| 91精品国产综合久久久蜜臀图片| 国产女人aaa级久久久级| 粉嫩aⅴ一区二区三区四区| 国产精品区一区二区三| 国产主播一区二区| 国产精品午夜电影| 色视频成人在线观看免| 欧美激情一区二区| 97精品视频在线观看自产线路二| 久久久夜色精品亚洲| 成人中文字幕在线| 国产亚洲美州欧州综合国| kk眼镜猥琐国模调教系列一区二区 | 欧美大片一区二区| 国产激情一区二区三区| 亚洲人成影院在线观看| 国产老女人精品毛片久久| 欧美一二三区在线| 成人性视频免费网站| 亚洲成av人片在线观看| 久久久影院官网| 色综合久久88色综合天天6| 日产国产高清一区二区三区| 国产精品三级电影| 欧美久久一二三四区| 欧美日韩不卡一区| 欧美一卡二卡在线| 91精品国产91久久久久久一区二区| 国产自产视频一区二区三区| 中文字幕亚洲欧美在线不卡| 91精品啪在线观看国产60岁| 成人app网站| 日本欧美在线看| 亚洲欧美偷拍卡通变态| 久久综合色天天久久综合图片| 美女诱惑一区二区| 亚洲欧美日韩国产另类专区| 日韩欧美成人午夜| 欧美四级电影在线观看| 国产成人免费视频| 久久99久久99| 国产亚洲一区二区三区四区| 欧美性大战久久久久久久蜜臀| 懂色av一区二区三区蜜臀| 美女网站在线免费欧美精品| 一级精品视频在线观看宜春院| 久久久久国产精品人| 欧美伦理电影网| 欧美中文字幕一区二区三区 | 99久久精品免费看| 国产成人欧美日韩在线电影| 人人爽香蕉精品| 国产日韩欧美制服另类| 欧美一区二区黄色| 欧美v国产在线一区二区三区| 日韩av在线播放中文字幕| ...xxx性欧美| 国产精品免费视频一区| 26uuu精品一区二区| 日韩欧美123| 日韩欧美激情四射| 91麻豆精品国产91久久久更新时间| 欧美综合天天夜夜久久| 91久久国产最好的精华液| 麻豆国产欧美日韩综合精品二区| 亚洲不卡av一区二区三区| 亚洲精品视频在线观看网站| 亚洲欧美综合色| 中文字幕亚洲精品在线观看| 中文字幕一区不卡| 亚洲精品欧美二区三区中文字幕| 亚洲日本在线视频观看| 伊人性伊人情综合网| 亚洲欧美一区二区三区极速播放| 亚洲美女淫视频| 亚洲午夜精品网| 国产精品免费人成网站| 国产精品欧美一区二区三区| 国产精品电影院| 亚洲日本电影在线| 一二三区精品福利视频| 亚洲一区二区在线观看视频| 无吗不卡中文字幕| 蜜桃视频免费观看一区| 韩国成人精品a∨在线观看| 国产成人免费av在线| 99久久综合99久久综合网站| 日本乱人伦一区| 91精品国产高清一区二区三区| 67194成人在线观看| 精品国产区一区| 国产精品久久久久久久久免费丝袜| 国产精品乱子久久久久| 国产亚洲精品资源在线26u| 欧美大肚乱孕交hd孕妇| 精品奇米国产一区二区三区| 国产精品视频一二三| 亚洲综合久久av| 极品少妇xxxx精品少妇| 成人一区二区视频| 精品视频全国免费看| av网站免费线看精品| 欧美在线观看视频一区二区 | 亚洲福利视频一区二区| 蜜桃视频一区二区三区在线观看| 国产成人综合精品三级| 欧美亚洲愉拍一区二区| 日韩欧美成人激情| 亚洲女同ⅹxx女同tv| 日本免费新一区视频| 成人一区二区三区在线观看| 欧美在线|欧美| 国产三级欧美三级日产三级99| 夜夜嗨av一区二区三区中文字幕 | 丝瓜av网站精品一区二区 | www国产亚洲精品久久麻豆| 国产精品视频免费看| 日本不卡免费在线视频| 在线观看免费一区| 国产欧美一区二区精品婷婷| 亚洲国产乱码最新视频| 成人免费视频app| 欧美一区二区久久久| 综合激情成人伊人| 精品在线一区二区| 欧美日韩一级黄| 国产精品久久久久久久裸模| 久久精品噜噜噜成人88aⅴ| 精品一区二区三区免费| 欧美亚洲禁片免费| 中文字幕亚洲欧美在线不卡| 激情文学综合插| 制服.丝袜.亚洲.另类.中文| 亚洲男人的天堂av| 国产成人午夜高潮毛片| 久久综合久色欧美综合狠狠| 婷婷久久综合九色国产成人| 91天堂素人约啪| 中国av一区二区三区| 国产精品123| 精品国产人成亚洲区| 捆绑变态av一区二区三区| 欧美日韩第一区日日骚| 亚洲图片有声小说| 在线观看网站黄不卡| 亚洲美女少妇撒尿| 91女神在线视频| 亚洲特黄一级片| 91亚洲精品久久久蜜桃| 中文字幕亚洲欧美在线不卡| 成人sese在线| 最好看的中文字幕久久| 99视频热这里只有精品免费| 1000部国产精品成人观看| 色av成人天堂桃色av| 亚洲一区二区四区蜜桃| 欧美精品日韩精品|