%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Classification output J48
<%@ page import="weka.core.*" %>
<%@ page import=" weka.classifiers.trees.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%
//1. load arff training set from arff file
String fileName=getServletContext().getRealPath("contact-lenses.arff");
File f=new File(fileName);
InputStream in = new FileInputStream(f);
InputStreamReader isreader=new InputStreamReader(in);
Instances data = new Instances(isreader);
isreader.close();
// setting class attribute
data.setClassIndex(data.numAttributes() - 1);
//2. ****************************
//build decision tree classifier
String[] options = new String[1];
options[0] = "-U"; // unpruned tree
J48 tree = new J48(); // new instance of tree
tree.setOptions(options); // set the options
tree.buildClassifier(data); // build classifier
int numAttributes=data.numAttributes();
double [] targetvals=new double[numAttributes];
//3. Obtain values of selected attributes
Enumeration attributes=data.enumerateAttributes();
boolean invalidSelection=false;
int currAttrIndex=0;
while(attributes.hasMoreElements())
{
Attribute currAttribute=(Attribute)attributes.nextElement();
String selValue=request.getParameter(currAttribute.name());
if(selValue.equals("-1"))
invalidSelection=true;
else
targetvals[currAttrIndex]=Double.parseDouble(selValue);
%>
<%= selValue %>
<%
currAttrIndex++;
}
Instance target=new Instance(1,targetvals);
data.add(target);
if(invalidSelection)
{
}
else
{
double clsLabel = tree.classifyInstance(data.lastInstance());
data.lastInstance().setClassValue(clsLabel);
}
%>
<%= data.lastInstance() %>