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

Introduction to Solidity Programming for Blockchain Development

Blog banner

HOW CAN SOCIAL MEDIA MAKE YOU HAPPIER?

Blog banner

Direct Memory Access

Blog banner

Indian Culture and Tradition

Blog banner

Delhi city

Blog banner

GIS REMOTE SENSING

Blog banner

Modern operating system

Blog banner

Key to success in Sports

Blog banner

MY FIRST BLOG?

Blog banner

Analysis of Digital Evidence In Identity Theft Investigations

Blog banner

RSA (Rivest-Shamir-Adelman) Algorithm

Blog banner

The Role of Data Provenance and Lineage in Modern Data Science

Blog banner

New Horizon Europe project ‘EvoLand’ sets off to develop new prototype services.

Blog banner

Data Science & AI

Blog banner

Juveniles, Internet and Computer Crime

Blog banner

Apple

Blog banner

MD5 Collisions and the impact on computer forensics

Blog banner

Whatsapp Messenger

Blog banner

5 People who claimed to have Time Traveled

Blog banner

Importance of internet

Blog banner

What is OS and its overview

Blog banner

Fitness

Blog banner

Women empowerment

Blog banner

DBMS and various career options related to it.

Blog banner

Deadlock and Starvation

Blog banner

Secure Hypertext transfer protocol

Blog banner

Electronic Funds Transfer

Blog banner

Why is it hard to design an Operating Systems ?

Blog banner

Zoho

Blog banner

File management

Blog banner

5 Common Faults In Construction Tenders

Blog banner

Types of Threads

Blog banner

OPERATING SYSTEM OBJECTIVES AND FUNCTIONS

Blog banner

10 Reasons to date your best friend

Blog banner

The Dark Web: A Breeding Ground for Cybercriminals – How to Guard Against Threats

Blog banner

'Positivity in life'

Blog banner

Importance Of Blockchain

Blog banner

PERT Overview

Blog banner

"Audit" In Data Science

Blog banner

The Power of Teamwork: Learning Collaboration Through Everyday Activities

Blog banner

Mumbai famous street food

Blog banner

Evolution of Operating System

Blog banner