source: src/main/java/agents/anac/y2013/MetaAgent/parser/reg/RegParser.java

Last change on this file was 127, checked in by Wouter Pasman, 6 years ago

#41 ROLL BACK of rev.126 . So this version is equal to rev. 125

File size: 1.8 KB
Line 
1package agents.anac.y2013.MetaAgent.parser.reg;
2
3import java.io.BufferedReader;
4import java.io.FileReader;
5import java.util.HashMap;
6import agents.anac.y2013.MetaAgent.Parser.Type;
7
8public class RegParser {
9
10 private Type _type;
11 private HashMap<String,Double> values;
12
13 public RegParser(String fileName, Type type) {
14 values=new HashMap<String,Double>();
15 this._type=type;
16 String [] lines=readFile(fileName);
17 for (int i = 0; i < lines.length; i++) {
18 parseLine(lines[i]);
19 }
20 }
21
22 private void parseLine(String line) {
23 String keys[]=line.split(",");
24 keys[0]=keys[0].replace("\"","");
25 for (int i = 0; i < keys.length; i++) {
26 values.put(keys[0],Double.parseDouble(keys[1]));
27 }
28 }
29 public double calcReg(HashMap<String,Double>map){
30 double ans=0;
31 for (String modifier : values.keySet()) {
32 double value=values.get(modifier);
33 if(modifier.compareTo("(Intercept)")==0){
34 ans+=value;;
35 continue;
36 }
37 double temp=value*map.get(modifier);
38 ans+=temp;
39 }
40 switch(this._type){
41 case LINREG:
42 return ans;
43
44 case LOGREG:
45 return calcLog(ans);
46 default:
47 return -1;
48 }
49
50 }
51 private double calcLog(double ans) {
52 double res=-1*ans;
53 res=Math.exp(res);
54 res+=1;
55 return 1/res;
56 }
57
58 private String[] readFile(String fileName) {
59 String text="";
60 try {
61 BufferedReader br = new BufferedReader(new FileReader(fileName));
62 StringBuilder sb = new StringBuilder();
63 String line = br.readLine();
64 while (line != null) {
65 sb.append(line);
66 sb.append("\n");
67 line = br.readLine();
68 }
69 text= sb.toString();
70 br.close();
71 }catch(Exception e){
72 e.printStackTrace();
73 }
74 return text.split("\n");
75 }
76
77}
Note: See TracBrowser for help on using the repository browser.