wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

"Can Lisp do Machine Learning?"

profile
Abhinav Kumar
Jul 16, 2025
0 Likes
0 Discussions
0 Reads

Linear Regression is the simplest form of predictive modeling. It assumes a straight-line relationship between two variables. For example:

More study hours → Higher exam scores

This relationship can be modeled as

y=mx+c


Where:

m: Slope (how fast y changes when x changes)

c: Intercept (the starting point of the line)

Given some data, Linear Regression helps us find m and c automatically.


1)

First, we need to calculate the average of a list of numbers.

(defun mean (lst)

(/ (reduce #'+ lst) (length lst)))


2)

Variance measures how spread out a list of numbers is.

(defun variance (lst)

(let ((m (mean lst)))

(mean (mapcar (lambda (x) (expt (- x m) 2)) lst))))


3)

Covariance tells us how two variables change together.

(defun covariance (x y)

(let* ((mean-x (mean x))

(mean-y (mean y))

(n (length x))

(sum 0))

(dotimes (i n)

(incf sum (* (- (nth i x) mean-x)

(- (nth i y) mean-y))))

(/ sum n)))


4)

This is where we calculate our model’s intercept and slope (our c and c).

(defun linear-regression-coeffs (x y)

(let ((b1 (/ (covariance x y) (variance x))))

(let ((b0 (- (mean y) (* b1 (mean x)))))

(list b0 b1))))


5)

Finally, given x, this function predicts y using our model.

(defun predict (model x)

(+ (first model) (* (second model) x)))



6)

(defparameter *hours* '(1 2 3 4 5 6))

(defparameter *scores* '(50 55 65 70 75 85))


(defparameter *model* (linear-regression-coeffs *hours* *scores*))


(format t "Intercept: ~f, Slope: ~f~%" (first *model*) (second *model*))

(format t "Prediction for 7 hours: ~f~%" (predict *model* 7))


7) Output

Intercept: 42.666668, Slope: 6.857143

Prediction for 7 hours: 90.666668


Intercept: 42.66 → Predicted score if study hours were zero.

Slope: 6.85 → Each extra hour of study increases the score by ~6.85 points.

Prediction for 7 hours: Expected score ~90.66


Comments ()


Sign in

Read Next

Objectives and Functions of Operating System

Blog banner

6 Digital Marketing Trends You Must Watch Out For In 2022

Blog banner

Race Condition

Blog banner

Memory heirachy (Operating system)

Blog banner

Image Steganalysis in Digital Forensics

Blog banner

Modern Operating System - Suren Kotian

Blog banner

AI and Cyber Security

Blog banner

PERSONAL STORIES

Blog banner

Fun Christmas Activities For Toddlers & Kids

Blog banner

Raid

Blog banner

What is Packet Filtering?

Blog banner

Theads

Blog banner

Caching windows

Blog banner

A-B-C of Networking: Part-3 (Topology [Ring, Tree, Mesh])

Blog banner

Tiranga - Abbas Haveliwala

Blog banner

Music

Blog banner

Zoho

Blog banner

Assignment 2

Blog banner

Data Science & AI

Blog banner

Process, process creation and process termination

Blog banner

Steganography and Steganalysis

Blog banner

Travel Geek ‘The last $50k in Switzerland’

Blog banner

Data Lake

Blog banner

Virtual Memory

Blog banner

Direct Memory Access

Blog banner

Short note on Microsoft office

Blog banner

Predicting Student Performance with Data Science

Blog banner

MY FIRST BLOG?

Blog banner

Cyber Forensics in Healthcare: Protecting Patient Data and Preventing Breaches

Blog banner

Brilliant WhatsApp Features Upcoming in 2023

Blog banner

I/O Buffering

Blog banner

Different types of scam Fraud

Blog banner

10 Unsolved Mysteries all over the world

Blog banner

IT GOVERNANCE

Blog banner

5 Common Faults In Construction Tenders

Blog banner

Modern Operating System

Blog banner

Virtual memory

Blog banner

Top 5 Post-Wedding Skin Care Tips

Blog banner

Direct Memory Access

Blog banner

Linux Virtual Machine Process Scheduling

Blog banner

Review on Recovering Deleted Files

Blog banner

Why is it hard to design an Operating Systems ?

Blog banner