wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

"Can Lisp do Machine Learning?"

profile
Abhinav Kumar
Jul 16, 2025
0 Likes
0 Discussions
2 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

Data Visualization

Blog banner

Vulnerability Assessment

Blog banner

Soak knowledge and level up your intellectual potential!!!

Blog banner

Virtual Machine

Blog banner

COMFORT IS ALL ABOUT FASHION

Blog banner

How to Compare Schools Before an Admission Decision

Blog banner

Analysis of Digital Evidence In Identity Theft Investigations

Blog banner

Types of OS

Blog banner

What is Influencer Marketing and its Trends

Blog banner

Top 3 Places To Stay In Vienna

Blog banner

PODIO

Blog banner

The most common internet security threats

Blog banner

Spyware

Blog banner

Photography

Blog banner

Jio .....A Revolution ?? ??

Blog banner

RAID

Blog banner

Cyber Forensics in a Ransomware Attack Recovery

Blog banner

File Allocation Methods

Blog banner

Software

Blog banner

Utilizing Data-Hiding and Retrieval Techniques in Cyber Forensics

Blog banner

Smartsheet

Blog banner

MY MOST THRILLED TREK ..... BHAIRAVGAD

Blog banner

TEAMWORK

Blog banner

Internet of Things and cyber security

Blog banner

How to Add Super Seeds to Your Everyday Meals: Easy & Healthy Ideas

Blog banner

Blockchain Transactions

Blog banner

21ST CENTURY PATRIARCHY

Blog banner

Deadlock in operating system

Blog banner

GIS Mapping

Blog banner

Major achievement

Blog banner

Safe Learning Spaces: Why Preschool Environment Matters More Than Ever Today

Blog banner

All you need to know about “On-page SEO”

Blog banner

Data Mining

Blog banner

Data Warehouse Bus Matrix

Blog banner

Data Exfiltration

Blog banner

How To Setup DVWA Using XAMPP on Windows

Blog banner

SQL Injection practice on DVWA

Blog banner

ZOHO

Blog banner

Personalized Movie Recommendations with Data Science

Blog banner

MOBILE DEVICE FORENSIC

Blog banner

R Programming

Blog banner

Simple AI Symptom Diagnosis Using LISP – Rule-Based Expert System

Blog banner