Intro – Machine Learning Implement
Machine Learning Implement is a field of AI (Artificial Intelligence) that focuses on enabling machines to learn from data and improve their performance overtime. Implementing machine learning Algorithms from scratch can provide a deep understanding of how these algorithms work. Here We Discuss the Implementation of Linear Regression Machine Learning Algorithm.
Linear Regression
Linear Regression is a supervised learning algorithm used for predicting a continuous target variable based on one or more input features. The goal is to find a linear relationship between the input features and the target variable.
Formula and Algorithm
The formula for simple linear regression (with one input feature) is:
y = b0 +b1 â‹… x
- y is the predicted value.
- x is the input feature.
- b0​ is the y-intercept.
- b1​ is the slope of the line.
The algorithm involves the following steps:
- Initialize the parameters b0​ and b1​.
- Compute the cost function (mean squared error).
- Update the parameters using gradient descent.
- Repeat steps 2 and 3 until convergence.
C++ Codes of the Project
Here is the Complete Codes of the Project,
#include <iostream> #include <vector> #include <cmath> // Function to compute the mean squared error double computeCost(const std::vector<double>& x, const std::vector<double>& y, double b0, double b1) { double cost = 0; int n = x.size(); for (int i = 0; i < n; ++i) { double prediction = b0 + b1 * x[i]; cost += std::pow(prediction - y[i], 2); } return cost / (2 * n); } // Function to perform gradient descent void gradientDescent(std::vector<double>& x, std::vector<double>& y, double& b0, double& b1, double learningRate, int iterations) { int n = x.size(); for (int iter = 0; iter < iterations; ++iter) { double sum0 = 0, sum1 = 0; for (int i = 0; i < n; ++i) { double prediction = b0 + b1 * x[i]; sum0 += prediction - y[i]; sum1 += (prediction - y[i]) * x[i]; } b0 -= learningRate * sum0 / n; b1 -= learningRate * sum1 / n; // Optional: print cost for each iteration to monitor convergence std::cout << "Iteration " << iter + 1 << ": Cost = " << computeCost(x, y, b0, b1) << "\n"; } } int main() { // Example data std::vector<double> x = {1, 2, 3, 4, 5}; std::vector<double> y = {3, 4, 2, 5, 6}; double b0 = 0; // Initial intercept double b1 = 0; // Initial slope double learningRate = 0.01; int iterations = 1000; gradientDescent(x, y, b0, b1, learningRate, iterations); std::cout << "Final parameters: b0 = " << b0 << ", b1 = " << b1 << "\n"; return 0; }