Skip to content

Commit 1c02616

Browse files
author
boididou
committed
Last version
1 parent 5f54c5f commit 1c02616

File tree

1 file changed

+0
-335
lines changed

1 file changed

+0
-335
lines changed

src/gr/iti/mklab/verify/Bagging.java

-335
Original file line numberDiff line numberDiff line change
@@ -9,349 +9,14 @@
99
import java.util.Random;
1010

1111
import weka.classifiers.Classifier;
12-
import weka.classifiers.functions.LinearRegression;
1312
import weka.classifiers.meta.FilteredClassifier;
1413
import weka.classifiers.trees.RandomForest;
15-
import weka.core.Attribute;
1614
import weka.core.Instance;
1715
import weka.core.Instances;
18-
import weka.filters.unsupervised.attribute.Normalize;
1916
import weka.filters.unsupervised.attribute.Remove;
2017

2118
public class Bagging {
2219

23-
static Normalize normFilter = new Normalize();
24-
static Normalize normFilterUser = new Normalize();
25-
26-
static FilteredClassifier model = new FilteredClassifier();
27-
static FilteredClassifier model2 = new FilteredClassifier();
28-
static FilteredClassifier model3 = new FilteredClassifier();
29-
static FilteredClassifier model4 = new FilteredClassifier();
30-
static FilteredClassifier model5 = new FilteredClassifier();
31-
static FilteredClassifier model6 = new FilteredClassifier();
32-
33-
/**
34-
* Applies linear regression to the missing values of the training set in order to predict their values
35-
* and normalization to make the values fall into the range [0,1].
36-
* It is the case of the Item type Instances.
37-
* @param trainingSet
38-
* @return Instances the transformed training set
39-
* @throws Exception
40-
*/
41-
public static Instances getTransformedTraining(Instances trainingSet) throws Exception {
42-
43-
Remove rm = new Remove();
44-
rm.setAttributeIndices("1");
45-
46-
ArrayList<Attribute> fvAttributes = ItemClassifier.getFvAttributes();
47-
48-
//REGRESSION
49-
//wotTrust
50-
trainingSet.setClass(fvAttributes.get(22));
51-
LinearRegression lr = new LinearRegression();
52-
Instances training_regr = null;
53-
model.setFilter(rm);
54-
model.setClassifier(lr);
55-
56-
try {
57-
model.buildClassifier(trainingSet);
58-
training_regr = DataHandler.getInstance().applyRegressionModel(trainingSet, fvAttributes, model);
59-
}
60-
catch(Exception e) {
61-
training_regr = trainingSet;
62-
System.out.println("not enought training instances. Linear Regression not performed!");
63-
}
64-
65-
//readability
66-
training_regr.setClass(fvAttributes.get(25));
67-
LinearRegression lr2 = new LinearRegression();
68-
Instances training_regr2 = null;
69-
70-
model2.setFilter(rm);
71-
model2.setClassifier(lr2);
72-
try {
73-
model2.buildClassifier(training_regr);
74-
training_regr2 = DataHandler.getInstance().applyRegressionModel(training_regr, fvAttributes, model2);
75-
}
76-
catch(Exception e){
77-
training_regr2 = training_regr;
78-
System.out.println("not enought training instances. Linear Regression not performed!");
79-
}
80-
81-
training_regr2.setClass(fvAttributes.get(19));
82-
LinearRegression lr3 = new LinearRegression();
83-
Instances training_regr3 = null;
84-
85-
model3.setFilter(rm);
86-
model3.setClassifier(lr3);
87-
try {
88-
model3.buildClassifier(training_regr2);
89-
training_regr3 = DataHandler.getInstance().applyRegressionModel(training_regr2, fvAttributes, model3);
90-
}
91-
catch(Exception e) {
92-
training_regr3 = training_regr2;
93-
System.out.println("not enought training instances. Linear Regression not performed!");
94-
}
95-
96-
training_regr3.setClass(fvAttributes.get(13));
97-
LinearRegression lr4 = new LinearRegression();
98-
Instances training_regr4 = null;
99-
model4.setFilter(rm);
100-
model4.setClassifier(lr4);
101-
try {
102-
model4.buildClassifier(training_regr3);
103-
training_regr4 = DataHandler.getInstance().applyRegressionModel(training_regr3, fvAttributes, model4);
104-
}
105-
catch(Exception e) {
106-
training_regr4 = training_regr3;
107-
System.out.println("not enought training instances. Linear Regression not performed!");
108-
}
109-
110-
training_regr4.setClass(fvAttributes.get(14));
111-
LinearRegression lr5 = new LinearRegression();
112-
Instances training_regr5 = null;
113-
model5.setFilter(rm);
114-
model5.setClassifier(lr5);
115-
116-
try {
117-
model5.buildClassifier(training_regr4);
118-
training_regr5 = DataHandler.getInstance().applyRegressionModel(training_regr4, fvAttributes, model5);
119-
}
120-
catch(Exception e) {
121-
training_regr5 = training_regr4;
122-
System.out.println("not enought training instances. Linear Regression not performed!");
123-
}
124-
125-
training_regr5.setClass(fvAttributes.get(6));
126-
LinearRegression lr6 = new LinearRegression();
127-
Instances training_regr6 = null;
128-
model6.setFilter(rm);
129-
model6.setClassifier(lr6);
130-
try {
131-
model6.buildClassifier(training_regr5);
132-
training_regr6 = DataHandler.getInstance().applyRegressionModel(training_regr5, fvAttributes, model6);
133-
}
134-
catch(Exception e) {
135-
training_regr6 = training_regr5;
136-
}
137-
138-
139-
// normalization part
140-
String[] options = { "-S", "2.0", "-T", "-1.0" };
141-
normFilter.setOptions(options);
142-
normFilter.setInputFormat(training_regr5);
143-
144-
Instances trainingSet_normed = DataHandler.getInstance().normalizeData(training_regr6, fvAttributes.size() - 1, normFilter);
145-
146-
147-
return trainingSet_normed;
148-
149-
}
150-
151-
152-
static FilteredClassifier usermodel = new FilteredClassifier();
153-
static FilteredClassifier usermodel2 = new FilteredClassifier();
154-
static FilteredClassifier usermodel3 = new FilteredClassifier();
155-
156-
/**
157-
* Applies linear regression to the missing values of the training set in order to predict their values
158-
* and normalization to make the values fall into the range [0,1].
159-
* It is the case of the User type Instances.
160-
* @param trainingSet
161-
* @return Instances the transformed training set
162-
* @throws Exception
163-
*/
164-
public static Instances getTransformedTrainingUser(Instances trainingSet) {
165-
166-
ArrayList<Attribute> fvAttributes = UserClassifier.getFvAttributes();
167-
168-
//remove filter in order to remove the id attribute
169-
Remove rm = new Remove();
170-
rm.setAttributeIndices("1");
171-
172-
//regression
173-
trainingSet.setClass(fvAttributes.get(11));
174-
LinearRegression lr = new LinearRegression();
175-
Instances training_regr = null;
176-
usermodel.setFilter(rm);
177-
usermodel.setClassifier(lr);
178-
179-
180-
try {
181-
usermodel.buildClassifier(trainingSet);
182-
training_regr = DataHandler.getInstance().applyRegressionModel(trainingSet, fvAttributes, usermodel);
183-
}
184-
catch(Exception e) {
185-
training_regr = trainingSet;
186-
System.out.println("not enought training instances. Linear Regression not performed!");
187-
}
188-
189-
190-
training_regr.setClass(fvAttributes.get(13));
191-
LinearRegression lr2 = new LinearRegression();
192-
Instances training_regr2 = null;
193-
usermodel2.setFilter(rm);
194-
usermodel2.setClassifier(lr2);
195-
try {
196-
usermodel2.buildClassifier(training_regr);
197-
training_regr2 = DataHandler.getInstance().applyRegressionModel(training_regr, fvAttributes, usermodel2);
198-
}
199-
catch(Exception e) {
200-
training_regr2 = training_regr;
201-
System.out.println("not enought training instances. Linear Regression not performed!");
202-
}
203-
204-
training_regr2.setClass(fvAttributes.get(16));
205-
LinearRegression lr3 = new LinearRegression();
206-
Instances training_regr3 = null;
207-
usermodel3.setFilter(rm);
208-
usermodel3.setClassifier(lr3);
209-
try {
210-
usermodel3.buildClassifier(training_regr2);
211-
training_regr3 = DataHandler.getInstance().applyRegressionModel(training_regr2, fvAttributes, usermodel3);
212-
}
213-
catch(Exception e) {
214-
training_regr3 = training_regr2;
215-
System.out.println("not enought training instances. Linear Regression not performed!");
216-
}
217-
218-
//normalization
219-
normFilterUser = DataHandler.getInstance().createNormalizationFilter(training_regr3);
220-
Instances trainingSet_normed = DataHandler.getInstance().normalizeData(training_regr3, fvAttributes.size()-1, normFilterUser);
221-
222-
return trainingSet_normed;
223-
}
224-
225-
/**
226-
* Applies Linear Regression and normalization to the testing set according to the models and filters
227-
* created before by the training set.
228-
* It is the case of the Item type Instances.
229-
* @param testing the Instances to be transformed
230-
* @return the transformed testing set
231-
* @throws Exception
232-
*/
233-
public static Instances getTransformedTesting(Instances testing) throws Exception {
234-
235-
ArrayList<Attribute> fvAttributes = ItemClassifier.getFvAttributes();
236-
Instances testing_regr=null,testing_regr2=null,testing_regr3=null,testing_regr4=null,testing_regr5=null,testing_regr6=null;
237-
238-
// regression
239-
if (!model.toString().contains("No model built yet.")) {
240-
testing.setClass(fvAttributes.get(22));
241-
testing_regr = DataHandler.getInstance().applyRegressionModel(testing, fvAttributes, model);
242-
}
243-
else {
244-
testing_regr = testing;
245-
}
246-
247-
if (!model2.toString().contains("No model built yet.")) {
248-
testing_regr.setClass(fvAttributes.get(25));
249-
testing_regr2 = DataHandler.getInstance().applyRegressionModel(testing_regr, fvAttributes, model2);
250-
}
251-
else {
252-
testing_regr2 = testing_regr;
253-
}
254-
255-
if (!model3.toString().contains("No model built yet.")) {
256-
testing_regr2.setClass(fvAttributes.get(19));
257-
testing_regr3 = DataHandler.getInstance().applyRegressionModel(testing_regr2, fvAttributes, model3);
258-
}
259-
else {
260-
testing_regr3 = testing_regr2;
261-
}
262-
263-
if (!model4.toString().contains("No model built yet.")) {
264-
testing_regr3.setClass(fvAttributes.get(13));
265-
testing_regr4 = DataHandler.getInstance().applyRegressionModel(testing_regr3, fvAttributes, model4);
266-
}
267-
else {
268-
testing_regr4 = testing_regr3;
269-
}
270-
271-
if (!model5.toString().contains("No model built yet.")) {
272-
testing_regr4.setClass(fvAttributes.get(14));
273-
testing_regr5 = DataHandler.getInstance().applyRegressionModel(testing_regr4, fvAttributes, model5);
274-
}
275-
else {
276-
testing_regr5 = testing_regr4;
277-
}
278-
279-
if (!model6.toString().contains("No model built yet.")) {
280-
testing_regr5.setClass(fvAttributes.get(6));
281-
testing_regr6 = DataHandler.getInstance().applyRegressionModel(testing_regr5, fvAttributes, model6);
282-
}
283-
else {
284-
testing_regr6 = testing_regr5;
285-
}
286-
287-
288-
// normalization
289-
Instances testingSet_normed = DataHandler.getInstance().normalizeData(testing_regr6, fvAttributes.size() - 1, normFilter);
290-
//testingSet_normed = getTrimmedInstances(testingSet_normed);
291-
292-
return testingSet_normed;
293-
}
294-
295-
296-
/**
297-
* Applies Linear Regression and normalization to the testing set according to the models and filters
298-
* created before by the training set.
299-
* It is the case of the User type Instances.
300-
* @param testing the Instances to be transformed
301-
* @return the transformed testing set
302-
* @throws Exception
303-
*/
304-
public static Instances getTransformedTestingUser(Instances testing) throws Exception {
305-
306-
ArrayList<Attribute> fvAttributes = UserClassifier.getFvAttributes();
307-
Instances testing_regr=null,testing_regr2=null,testing_regr3=null;
308-
309-
testing_regr3 = testing;
310-
311-
if (!usermodel.toString().contains("No model built yet.")) {
312-
testing.setClass(fvAttributes.get(11));
313-
testing_regr = DataHandler.getInstance().applyRegressionModel(testing, fvAttributes, usermodel);
314-
}
315-
else {
316-
testing_regr = testing;
317-
}
318-
if (!usermodel2.toString().contains("No model built yet.")) {
319-
testing_regr.setClass(fvAttributes.get(13));
320-
testing_regr2 = DataHandler.getInstance().applyRegressionModel(testing_regr, fvAttributes, usermodel2);
321-
}
322-
else {
323-
testing_regr2= testing_regr;
324-
}
325-
if (!usermodel3.toString().contains("No model built yet.")) {
326-
testing_regr2.setClass(fvAttributes.get(16));
327-
testing_regr3 = DataHandler.getInstance().applyRegressionModel(testing_regr2, fvAttributes, usermodel3);
328-
}
329-
else {
330-
testing_regr3 = testing_regr2;
331-
}
332-
333-
if (!usermodel.toString().contains("No model built yet.")) {
334-
testing.setClass(fvAttributes.get(1));
335-
testing_regr = DataHandler.getInstance().applyRegressionModel(testing, fvAttributes, usermodel);
336-
}
337-
else {
338-
testing_regr = testing;
339-
}
340-
if (!usermodel2.toString().contains("No model built yet.")) {
341-
testing_regr.setClass(fvAttributes.get(4));
342-
testing_regr2 = DataHandler.getInstance().applyRegressionModel(testing_regr, fvAttributes, usermodel2);
343-
}
344-
else {
345-
testing_regr2= testing_regr;
346-
}
347-
348-
349-
//normalization
350-
Instances testingSet_normed = DataHandler.getInstance().normalizeData(testing_regr3, fvAttributes.size()-1, normFilterUser);
351-
//testingSet_normed = getTrimmedInstances(testingSet_normed);
352-
353-
return testingSet_normed;
354-
}
35520

35621
static Instances[] testingSets = new Instances[9];
35722

0 commit comments

Comments
 (0)