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

Modern operating system

Blog banner

THE ACTORS LIFE

Blog banner

Types Of scheduling

Blog banner

"Life as a Part-time Student"

Blog banner

Deadlock and Starvation

Blog banner

Life

Blog banner

Service Design Principles

Blog banner

MailChimp

Blog banner

Blockchain

Blog banner

Emotional Suppression: The Hidden Costs Of Unfelt Feelings

Blog banner

'Positivity in life'

Blog banner

Emotional Intelligence in Children: Why It Is as Important as Academics

Blog banner

Data Visualization – Importance and tools (Tableau, Power BI)

Blog banner

Fitness

Blog banner

semaphores

Blog banner

Article on Team Work

Blog banner

To travel is to live

Blog banner

Annual Day Preparation for Toddlers: What Helps and What to Avoid

Blog banner

HTML vs HTML5

Blog banner

Mutual exclusion

Blog banner

Firewall

Blog banner

Boxing

Blog banner

Multithreading in Operating System

Blog banner

Online Games

Blog banner

Mango Raisin Chutney (sweet mango raisin spread)

Blog banner

Importance of Education

Blog banner

Direct Memory Access

Blog banner

MOBILE DEVICE FORENSIC

Blog banner

Career v/s Job : Choose your passion

Blog banner

Importance of internet

Blog banner

Why Time Management Is the Secret to College Success (and How to Master It)

Blog banner

The seven-step improvement process

Blog banner

Types of Malware in Cyber Security

Blog banner

Session Hijacking

Blog banner

File management

Blog banner

I/O Buffering

Blog banner

Safeguarding Your Data: The Importance of Wireless Encryption

Blog banner

Digital Marketing Ethics Transparency Trust And Brand Reputation digital

Blog banner

Deadlock Prevention

Blog banner

Tiranga - Abbas Haveliwala

Blog banner

Zomato's Secret Digital Marketing Techniques!

Blog banner

BUFFER OVERFLOW_142

Blog banner