Introduction to Machine Learning - Java Code Sheet
1. Introduction to Machine Learning
Definition: Machine Learning is a branch of AI that allows systems to learn and improve from
experience without being explicitly programmed.
Key Types of Machine Learning:
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
Common Algorithms:
- Linear Regression
- Logistic Regression
- Decision Trees
- K-Nearest Neighbors (KNN)
- Support Vector Machines (SVM)
- Neural Networks
2. Linear Regression
Definition: Linear regression is used to model the relationship between a dependent variable (y) and
one or more independent variables (X).
Code Example (Simple Linear Regression):
import org.apache.commons.math3.stat.regression.SimpleRegression;
public class LinearRegressionExample {
public static void main(String[] args) {
SimpleRegression regression = new SimpleRegression();
regression.addData(new double[][] { {1, 1}, {2, 2}, {3, 2.5}, {4, 3.5} });
System.out.println("Slope: " + regression.getSlope());
System.out.println("Intercept: " + regression.getIntercept());
double predicted = regression.predict(5);
System.out.println("Predicted value for x=5: " + predicted);
Key Operations: Fitting, Prediction, Error Calculation
3. Logistic Regression
Definition: Logistic regression is used for binary classification problems. It predicts the probability of
a binary outcome.
Code Example (Logistic Regression using Weka):
import weka.classifiers.functions.Logistic;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class LogisticRegressionExample {
public static void main(String[] args) throws Exception {
ArffLoader loader = new ArffLoader();
loader.setFile(new java.io.File("data.arff"));
Instances data = loader.getDataSet();
data.setClassIndex(data.numAttributes() - 1);
Logistic logistic = new Logistic();
logistic.buildClassifier(data);
System.out.println("Logistic Regression Model: " + logistic);
Key Operations: Training, Prediction, Model Evaluation
4. K-Nearest Neighbors (KNN)
Definition: KNN is a simple algorithm used for both classification and regression, where the output is
based on the majority class or average of k nearest points.
Code Example (KNN Classification using Weka):
import weka.classifiers.lazy.IBk;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class KNNExample {
public static void main(String[] args) throws Exception {
ArffLoader loader = new ArffLoader();
loader.setFile(new java.io.File("data.arff"));
Instances data = loader.getDataSet();
data.setClassIndex(data.numAttributes() - 1);
IBk knn = new IBk();
knn.setKNN(3);
knn.buildClassifier(data);
System.out.println("KNN Model: " + knn);
Key Operations: Training, Prediction, Model Evaluation
5. Decision Trees
Definition: A decision tree is a flowchart-like structure where each internal node represents a
decision on an attribute, and each leaf node represents a class label.
Code Example (Decision Tree using Weka):
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class DecisionTreeExample {
public static void main(String[] args) throws Exception {
ArffLoader loader = new ArffLoader();
loader.setFile(new java.io.File("data.arff"));
Instances data = loader.getDataSet();
data.setClassIndex(data.numAttributes() - 1);
J48 tree = new J48();
tree.buildClassifier(data);
System.out.println("Decision Tree Model: " + tree);
Key Operations: Training, Prediction, Model Evaluation
6. Neural Networks
Definition: A neural network is a series of algorithms that attempt to recognize underlying
relationships in a set of data through a process that mimics the way the human brain operates.
Code Example (Simple Neural Network using Deeplearning4j):
import org.deeplearning4j.nn.conf.NeuralNetConfiguration;
import org.deeplearning4j.nn.conf.layers.DenseLayer;
import org.deeplearning4j.nn.conf.layers.OutputLayer;
import org.deeplearning4j.optimize.api.IterationListener;
import org.nd4j.linalg.factory.Nd4j;
public class NeuralNetworkExample {
public static void main(String[] args) {
MultiLayerNetwork model = new MultiLayerNetwork(new NeuralNetConfiguration.Builder()
.list()
.layer(0, new DenseLayer.Builder().nIn(3).nOut(3).build())
.layer(1, new OutputLayer.Builder().nIn(3).nOut(1).build())
.build());
model.init();
// Sample data
INDArray input = Nd4j.create(new double[] {1.0, 0.0, 1.0}, new int[]{1, 3});
INDArray output = model.output(input);
System.out.println(output);
Key Operations: Training, Prediction, Evaluation
7. Model Evaluation
Definition: The process of assessing the performance of a machine learning model using various
metrics.
Common Evaluation Metrics:
- Accuracy
- Precision
- Recall
- F1-Score
- ROC Curve and AUC
Code Example (Evaluating a Model):
import weka.classifiers.Classifier;
import weka.classifiers.Evaluation;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class ModelEvaluationExample {
public static void main(String[] args) throws Exception {
ArffLoader loader = new ArffLoader();
loader.setFile(new java.io.File("data.arff"));
Instances data = loader.getDataSet();
data.setClassIndex(data.numAttributes() - 1);
Classifier classifier = new weka.classifiers.trees.J48();
classifier.buildClassifier(data);
Evaluation eval = new Evaluation(data);
eval.evaluateModel(classifier, data);
System.out.println("Model Evaluation: " + eval.toSummaryString());
Key Operations: Accuracy, Precision, Recall, F1-Score