How to Find Wine Quality from a Data Set Using Linear Regression in Weka?
Share
Condition for Finding Wine Quality Using Linear Regression in Weka
Description: The code uses Weka’s LinearRegression model to predict wine quality based on various features from an ARFF dataset. It applies 10-fold cross-validation to evaluate the model’s performance and predicts wine quality for new input data. The results, including model evaluation metrics and predictions, are displayed to assess the model's accuracy.
import java.util.Random;
import weka.classifiers.Evaluation;
import weka.classifiers.functions.LinearRegression; // Use LinearRegression for numeric target
import weka.core.DenseInstance;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
public class WineQualityPrediction {
public static void main(String[] args) {
try {
DataSource source = new DataSource("/home/soft20/NetBeansProjects/SLogixUpdates/winequality-dataset.arff");
Instances dataset = source.getDataSet();
dataset.setClassIndex(dataset.numAttributes() - 1); // Assuming the target is the last attribute
LinearRegression model = new LinearRegression();
model.buildClassifier(dataset);
int numFolds = Math.min(10, dataset.numInstances());
Evaluation evaluation = new Evaluation(dataset);
evaluation.crossValidateModel(model, dataset, numFolds, new Random(1));
System.out.println(evaluation.toSummaryString());
double[] newInstanceValues = new double[dataset.numAttributes()];
newInstanceValues[0] = 7.4; // Example feature value
newInstanceValues[1] = 0.7; // Example feature value
newInstanceValues[dataset.classIndex()] = 0; // Placeholder for target
Instance instance = new DenseInstance(1.0, newInstanceValues);
instance.setDataset(dataset);