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

A small world of Sockets

Blog banner

Tracking Emails & Email Crimes

Blog banner

Hosting basics

Blog banner

Cache memory

Blog banner

Esri India launches Policy Maps.

Blog banner

LiquidPlanner

Blog banner

Cyber Forensics on IOT Devices

Blog banner

Unlocking Success: Mastering Google Ads Strategies

Blog banner

BIRYANI ! The history you never knew about

Blog banner

Cache Memory

Blog banner

What is online marketing and why do you need to know about it ?

Blog banner

Never give up

Blog banner

Big O Notation

Blog banner

The Khan mehtab transforming the modular switches

Blog banner

Exploring the Power of Encase Forensic Tools: Unraveling Digital Mysteries

Blog banner

Pink sauce pasta

Blog banner

DISK SCHEDULING

Blog banner

VIRUS

Blog banner

Lifestyle of a photographer

Blog banner

This is my first blog.

Blog banner

How can denial-of-service(Dos) attacks be prevented?

Blog banner

Danger assessment in GIS

Blog banner

Threads in OS

Blog banner

The Right way of cooking

Blog banner

Mumbai famous street food

Blog banner

Types of Hackers.

Blog banner

Malware Defense

Blog banner

Pro-Tips On How To Keep your Foot Healthy

Blog banner

Automating OSINT tasks for efficient Cyber Forensics Investigations

Blog banner

Sweet and Sour Mango Pickle (Gol Keri)

Blog banner

Benefits of yoga and meditation

Blog banner

Buffer overflow

Blog banner

PODIO

Blog banner

Digital black market or dark net poses a national security threat?

Blog banner

MEMORY MANAGEMENT (techniques)

Blog banner

5 Powerful Mindset Shifts To Make 2026 Your Breakthrough Year

Blog banner

Answer

Blog banner

Environmental Management using GIS

Blog banner

Memory Management

Blog banner

How to Avoid being a Victim of Cybercrime

Blog banner

Virus

Blog banner

Modern operating system

Blog banner