アットウィキロゴ

回帰分析

package neko;
 
import org.apache.commons.math3.stat.regression.SimpleRegression;
 
public class pro {
 
    int s,sx,datanumber;
  String[] data=new String[5000];
  String file,str;  
  String[] station=new String[5000];
  String[] title=new String[5000];
  String[] date=new String[5000];
  int[] season=new int[5000];
  double[][] rate=new double[5000][50];
 
  int[] count=new int[5000];
  double[] avg=new double[5000];
  String[][] actor=new String[5000][200];
  int[] actornumber=new int[5000];
   String[] dic=new String[5000];
  String[] mainc=new String[5000];
  int dicnumber,h;
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
 pro(){   
 
 
    catchdata sub=new catchdata();
    sub.makedata();
    datanumber=sub.datanumber;
    avg=sub.avg;
    title=sub.title;
    season=sub.season;
    station=sub.station;
    date=sub.date;
 
 
    catchartist sub2=new catchartist();
    sub2.makedata();
    actor=sub2.actor;
    actornumber=sub2.actornumber;
 
    for(s=1;s<datanumber+1;s++){
    mainc[s]=actor[s][1];
    }
 
 
 
    dicnumber=0;
     for(s=1;s<datanumber+1;s++){
    h=0;
    for(sx=1;sx<dicnumber+1;sx++){
    if(mainc[s].equals(dic[sx]))h=100;     
    }
    if(h<50)dicnumber=dicnumber+1;
    if(h<50)dic[dicnumber]=mainc[s];
     }
 
     for(s=1;s<datanumber+1;s++){
    for(sx=1;sx<dicnumber+1;sx++){
    if(mainc[s].equals(dic[sx]))count[sx]=count[sx]+1;     
    }
     }
 
     int tx;
 
      for(s=1;s<dicnumber+1;s++){
    tx=0;
          for(sx=1;sx<datanumber+1;sx++){
      if(mainc[sx].equals(dic[s]))tx=tx+1;   
        if(mainc[sx].equals(dic[s]))rate[s][tx]=avg[sx];     
    }
     }
 
      double[] x=new double[600];
       double[] y=new double[600];
 
    tx=0;
    for(s=1;s<dicnumber+1;s++){
    for(sx=2;sx<count[s]+1;sx++){
    tx=tx+1;
    x[tx]=rate[s][sx-1];
    y[tx]=rate[s][sx];
    }
     }
 
    System.out.println(tx);
 
   SimpleRegression reg = new SimpleRegression();
for(s=1;s<tx+1;s++){
reg.addData(x[s],y[s]);
}
 
System.out.println(reg.getIntercept());
System.out.println(reg.getSlope());
 
 
 
 
 
 
 }
 
 
}
 
 
package neko;
 
import tool.*;
 
public class catchdata {
 
    int s,sx,datanumber;
  String[] data=new String[5000];
  String file,str;  
  String[] station=new String[5000];
  String[] title=new String[5000];
  String[] date=new String[5000];
  int[] season=new int[5000];
  double[][] rate=new double[5000][50];
  int[] ratenumber=new int[5000];
  double[] avg=new double[5000];
 
 
 
 void makedata(){   
 
     file="rate.txt";
 
    readfile sub=new readfile();
    sub.makedata(file,"UTF-8");
    data=sub.data;
    datanumber=sub.datanumber;
 
    for(s=1;s<datanumber+1;s++){ 
    str=data[s];
    catchword sub2=new catchword();
    station[s]=sub2.makedata(str,"station");
    date[s]=sub2.makedata(str,"date");
    title[s]=sub2.makedata(str,"title");
    }
     int p1,p2;
 
     for(s=1;s<datanumber+1;s++){ 
      str=data[s];
    p1=str.indexOf("<season>");
    p2=str.indexOf("<season>",p1+1);
 str=str.substring(p1,p2);
 str=str.replace("<season>","");
     season[s]=Integer.parseInt(str);
     }
 
 
 
 
    for(s=1;s<datanumber+1;s++){ 
    str=data[s];
    p1=str.indexOf("</rate>");
    p2=str.indexOf("</rate>",p1+1);
 str=str.substring(p1,p2);
 str=str.replace("</rate>","");
    String[] x=str.split(",");
    for(sx=0;sx<x.length;sx++){
    rate[s][sx+1]=Double.parseDouble(x[sx]);
    }
    ratenumber[s]=x.length;
    }
 
 
    double r1;
 
    for(s=1;s<datanumber+1;s++){
    r1=0;
        for(sx=1;sx<ratenumber[s]+1;sx++){
        r1=r1+rate[s][sx];
        }
    avg[s]=r1/ratenumber[s];
    }
 
 
 
 
 
 
 
 }
 
 
}
 
 
 
 
 
 
package neko;
 
import tool.*;
 
public class catchartist {
 
    int s,sx,datanumber;
  String[] data=new String[5000];
   String[][] actor=new String[5000][200];
    String file,str;
    int[] actornumber=new int[5000];
 
    void makedata(){
 
     file="actor.txt";
 
    readfile sub=new readfile();
    sub.makedata(file,"UTF-8");
    data=sub.data;
    datanumber=sub.datanumber;
 
     for(s=1;s<datanumber+1;s++){   
    str=data[s];
     String[] xp=str.split(",");
   actornumber[s]=xp.length;
       for(sx=1;sx<actornumber[s]+1;sx++){   
       actor[s][sx]=xp[sx-1];
       }
     }
 
 
 
 
    }
}
 
最終更新:2013年12月10日 19:37