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

PERSONAL STORIES

Blog banner

Save Environment

Blog banner

Security requirements for Safe E-Payments

Blog banner

Different Types of Data

Blog banner

Segmentation and paging concept

Blog banner

Memory Management Techniques

Blog banner

Deadlock in operating system

Blog banner

I/O Buffering

Blog banner

Software

Blog banner

" THE ANSWERS THAT LED INDIAN BEAUTIES TO THE MISS UNIVERSE HISTORIC WIN. "

Blog banner

'C', 'C++' and 'Java': Head-to-Head

Blog banner

ONLINE NEWSROOMS

Blog banner

VIRTUAL MACHINES

Blog banner

How to insert contacts in zoho crm using php

Blog banner

What is 'Multi-core and Multi-threading' ?

Blog banner

Linux Virtual Machine Process Scheduling

Blog banner

operating system

Blog banner

Search Marketing In 2026: From Keywords To Credibility And User Intent

Blog banner

Women Empowerment

Blog banner

Deadlock and starvation

Blog banner

Fitness

Blog banner

Virtual memory

Blog banner

How can parents support a child’s mental health?

Blog banner

security controls

Blog banner

ZOHO

Blog banner

Article on IT development trends

Blog banner

ARTICAL ON MANAGEMENT SYSTEM

Blog banner

Cache Memory(142)

Blog banner

BIRYANI ! The history you never knew about

Blog banner

Race Condition in Operating Theatre

Blog banner

Krishna Rao SAP ID--53003230076

Blog banner

Deadlock and Starvation

Blog banner

Concurrency management in operating systems

Blog banner

Beyond the Track: Why the Best Hotel in Arcadia, Florida, Completes Your IMSA Sebring Getaway

Blog banner

GOOGLE

Blog banner

Modern operating system

Blog banner

Odoo

Blog banner

Strengthening Active Directory Security

Blog banner

Different types of e-commerce platforms or advantages and disadvantages

Blog banner

When Is the Right Time to Enrol My Toddler Into Preschool? NEP

Blog banner

Studying Denial of service attack using DOSHTTP tool

Blog banner

Types of Threads

Blog banner