<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Rahul&#x27;s ML Blog</title>
    <link>https://learnrahulrai-ui.github.io/ml_blog/</link>
    <description>Machine learning worked out by hand: every rule stripped of jargon, drawn as a picture, solved with a pencil, then written in code. A short book in ten chapters -- no hype, no frameworks, no JavaScript.</description>
    <language>en</language>
    <lastBuildDate>Sun, 14 Jun 2026 15:42:09 +0000</lastBuildDate>
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" href="https://learnrahulrai-ui.github.io/ml_blog/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>LSTM From Pencil: Built From Nothing, One Number at a Time :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/lstm-from-pencil.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/lstm-from-pencil.html</guid>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <description>A KATA: one clean, self-contained walk through the RNN and the LSTM by pencil, made to be redone on a blank sheet again and again until your hand knows it. Words into 32-number rows, grid-times-row by hand, the RNN&#x27;s one-memory recipe and why it FADES (a theorem), then the...</description>
    </item>
    <item>
      <title>The Deep Factory: Humbler, Send-Home, and the Confusion Sheet (CNNs by Hand, Part 2) :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-deep-factory.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-deep-factory.html</guid>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <description>The simple factory lands ~70%. Three layers of armour push it further: a humbler steadies every inspector&#x27;s 65,536 numbers to middle 0, scatter 1 (arithmetic done by hand, full clerk count); send-home zeroes a random 25% of sheet entries to break secret teams (one coin per...</description>
    </item>
    <item>
      <title>The Two-Memory Worker: How an LSTM Remembers Far-Back Words (RNNs by Hand, Part 2) :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-two-memory-worker.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-two-memory-worker.html</guid>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <description>The plain worker crushes its one memory every word, so word 1 fades to nothing by word 90. The fix, derived by hand: carry TWO memories -- a long keep (A, never crushed, free to grow past 1) and a spoken recent (B) -- and let three 0..1 voters decide what to keep, admit, and...</description>
    </item>
    <item>
      <title>Words Into a Machine: The Notepad and the Walking Worker (RNNs by Hand, Part 1) :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-walking-worker.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-walking-worker.html</guid>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <description>A photo was already numbers; a review is WORDS, and a factory can only multiply numbers. Number the 10,000 commonest words by frequency, pad every review to 100, then a NOTEPAD swaps each word-number for a learned 32-number note (so &quot;boring&quot; and &quot;dull&quot; drift close, and &quot;not&quot; can...</description>
    </item>
    <item>
      <title>Five Machines Against Memorising: A Tax, a Coffee Break, a Fire Alarm, and a Humbler :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/five-machines-against-memorising.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/five-machines-against-memorising.html</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <description>A network that learns too well memorises the study pile&#x27;s freckles and flunks new patients. One plain machine catches the disease on a sheet of clothing photos; four cures each fight it differently -- a tax on big dials (L2), sending clerks home (dropout), a fire alarm that...</description>
    </item>
    <item>
      <title>A Magic Paper Slid Over a Photo: How a Picture Network Sees (CNNs by Hand) :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-magic-paper-factory.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-magic-paper-factory.html</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <description>Flatten a photo and you destroy every &quot;next to&quot; -- so this machine keeps the picture folded and slides a tiny 3x3 window (a magic paper of nine dials) across it, lighting up where its shape sits. Built one worker at a time with every wrong picture corrected: the edge-finder that...</description>
    </item>
    <item>
      <title>Rolling Downhill by Hand: How a Neural Network Learns (Backpropagation from Scratch) :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/how-the-dials-learn.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/how-the-dials-learn.html</guid>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <description>The dials finally learn. Backpropagation worked by hand on a one-input, one-hidden, one-output network: the chain rule link by link, the (guess - truth) shortcut derived, every slope checked against a brute-force wiggle, then the error sent one room further back through the...</description>
    </item>
    <item>
      <title>Stacked Rooms and One Walk by Hand: How a Neural Network Computes a Guess :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-web-of-adders.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-web-of-adders.html</guid>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <description>A fully self-contained start -- no prior posts needed. One room of clerks draws straight lines; stacked rooms draw anything, but only if a non-linear bend (the zero-out rule, ReLU) breaks the collapse between them. The forward pass walked by hand: three-cut split, humbling the...</description>
    </item>
    <item>
      <title>Distance and Clustering Reference: Rulers, Traps, and Ethics :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/clustering-reference.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/clustering-reference.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>The loose ends Chapter 6 does not stop for: the k you pick, two more rulers (Hamming for words, Mahalanobis for stretched many-walled rooms), the missing-data traps, why crush a room at all, and the part the lab skips -- the ethics of sorting PEOPLE into piles (bias, privacy,...</description>
    </item>
    <item>
      <title>Looking at a Sheet With No Answers: Means, Distance, and the Ruler Problem :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/eda-and-distance.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/eda-and-distance.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>No answer column, no right or wrong -- just 50 states and 3 measurements. The mean and spread of each column, the ruler problem (Assault in hundreds drowns UrbanPop in tens), two gap rulers (straight-line Euclidean and city-block Manhattan), the sheet of gaps, and the fix: put...</description>
    </item>
    <item>
      <title>Filling the Blanks: Recommender Systems and Matrix Factorisation :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/filling-the-blanks.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/filling-the-blanks.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>A sheet that is mostly holes: users x movies, a rating only where someone watched. Split the holey grid into two skinny full sheets of hidden tastes and flavours -- PCA&#x27;s scores-times-recipe shape again. Then the lab end to end: humble each movie column, drop lazy zeros, and run...</description>
    </item>
    <item>
      <title>Grouping by Nearest Centre: K-Means From a Blank Sheet :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/grouping-by-nearest-centre.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/grouping-by-nearest-centre.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>The first machine that actually GROUPS: pick K, then loop two moves -- assign every dot to its nearest centre, move each centre to its pile&#x27;s mean. Tightness as the score, the unlucky-start trap, and picking K by the elbow.</description>
    </item>
    <item>
      <title>Both Tools on NCI60: PCA and Clustering on Real Gene Data :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/nci60-revisited.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/nci60-revisited.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>All three tools on one hard sheet: 64 samples, 6,830 genes -- more columns than rows. Crush with PCA, carve with K-means and the family tree, then unseal the cancer types and grade the blind groups. Peeking at labels is a scorecard, never an input.</description>
    </item>
    <item>
      <title>The Family Tree: Hierarchical Clustering and the Dendrogram :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-family-tree-clustering.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-family-tree-clustering.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>No K up front: start with everyone alone and marry the two closest groups over and over, recording each wedding&#x27;s height. Read the family tree, cut it wherever you like, and the cut decides how many groups. Single, complete, average, and Ward linkage compared.</description>
    </item>
    <item>
      <title>The Strongest Direction: Crushing a Many-Wall Room Into a Flat Page (PCA) :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-strongest-direction-pca.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-strongest-direction-pca.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>13 chemical measurements = 13 walls. You cannot draw a 13-wall room. Shine a flashlight, trace the longest shadow (PC1), then the next at a right angle (PC2). A 2-column by-hand worked example, the recipe (loadings), how much each shadow carries (PVE), choosing how many to keep...</description>
    </item>
    <item>
      <title>Committees: Bagging, Random Forest, and Boosting :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/committees-bag-forest-boost.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/committees-bag-forest-boost.html</guid>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <description>One chart memorises and panics; 200 averaged charts are eerily steady. Bagging re-deals with repeats and averages 200 trees (OOB free exam built in). Random forest hides a handful of columns at each cut so the trees truly differ. Boosting chains stumps in a line, each fixing the...</description>
    </item>
    <item>
      <title>The Leash: Ridge, Lasso, and Humbling the Dials :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/humble-dials-ridge-lasso.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/humble-dials-ridge-lasso.html</guid>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <description>Free dials grow huge and memorise; put them on a leash. Ridge (the square fine) shrinks all dials and zeroes none, solving in one step. Lasso (the absolute fine) snaps weak dials to exactly zero and hands you a shortlist of columns. Pick the knob by the valley.</description>
    </item>
    <item>
      <title>The Mixing Ruler: Gini, Information Gain, and Pruning :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/mixing-ruler-gini-pruning.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/mixing-ruler-gini-pruning.html</guid>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <description>Flip to the cancer sick/well sheet: the badness ruler swaps from squared misses to Gini (chance two random grabs disagree) -- derived by hand from four counts. Then pruning: a tax per leaf snips weak branches after the tree is fully grown; the alpha menu comes from the tree...</description>
    </item>
    <item>
      <title>Question Charts: Building a Tree by Hand :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/question-charts-by-hand.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/question-charts-by-hand.html</guid>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <description>No dials, no formula: a machine that asks yes/no questions. Built from scratch -- sort each column, try every midpoint, pick the cleanest cut, recurse. Five wrong pictures corrected: one column per split, depth is people not columns, build and use are separate phases, same...</description>
    </item>
    <item>
      <title>The Dial by Hand: Where the Dials Really Come From :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-dial-by-hand.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-dial-by-hand.html</guid>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <description>The whole machine on a blank sheet: the dials are (X^T X)^-1 X^T y, the untangler that shares credit between overlapping columns. The one-column slope is a LADDER that matches only when columns don&#x27;t overlap -- name it out loud before you build anything on it.</description>
    </item>
    <item>
      <title>One Dial Is a Lie: Bootstrap, Wobble Bands, and the Free Exam :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/wobble-bands-bootstrap.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/wobble-bands-bootstrap.html</guid>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <description>A single dial value hides how shaky it is. Fake 200 hospital visits by re-dealing the pile with repeats, and read off a 95% wobble band per dial (chop 2.5% each end). The ~37% left out of each deal become a free, honest exam.</description>
    </item>
    <item>
      <title>Classification Lab: Loss, Leash, Grid, and All the Terms :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/classification-lab.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/classification-lab.html</guid>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <description>All classification concepts from Chapter 3 in one flip-to reference: cross-entropy vs MSE, the C parameter, LDA with priors, hyperparameters vs dials, GridSearchCV fold safety, min-max scaling, precision vs recall in business, ROC vs PR curves, skewed piles, and...</description>
    </item>
    <item>
      <title>Leash and Cloud: L2 Punishment and the Two-Cloud Wall :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/leash-and-cloud.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/leash-and-cloud.html</guid>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <description>Two ways to humble an over-confident machine. L2: add a squared-dial price to the leftover so no single dial dominates (C = 1/lambda -- small C is a heavy squeeze). LDA: forget rolling downhill; read the two cloud centres and their shared spread, then solve for the wall in one...</description>
    </item>
    <item>
      <title>Picking Settings, Skewed Piles, and Averaging Many Classes :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/picking-settings-skewed-classes.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/picking-settings-skewed-classes.html</guid>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <description>Grid-hunting settings by rotating folds; why pinch-to-fit scaling breaks around outliers; the precision-vs-recall trade in fraud detection; precision-recall curves for when one class is 100x rarer; and macro vs micro averaging for 3+ bins.</description>
    </item>
    <item>
      <title>Sorting Into Bins: The S-Curve, the Four-Box Table, and Why Accuracy Lies :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/sorting-into-bins.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/sorting-into-bins.html</guid>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <description>The shift from &quot;guess a number&quot; to &quot;guess a bin&quot;: the S-curve squash, the cross-entropy leftover, and how any dial sum becomes a chance. Then the four-box table of CAUGHT/ALARM/MISSED/CLEAR, four scores that read different corners of it, and why a machine that catches nobody can...</description>
    </item>
    <item>
      <title>The Trade Curve: Sliding the Cutoff and What AUC Actually Measures :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/the-trade-curve.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/the-trade-curve.html</guid>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <description>One cutoff judges the machine at one spot; slide it through every position and you get the trade curve (ROC). The area beneath it -- AUC -- compresses the whole curve to one number: pick a random sick lump and a random well lump; AUC is the chance the machine scored the sick one...</description>
    </item>
    <item>
      <title>Two Rulers for One Guess: MSE and R^2 :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/grading-the-guess-mse-r2.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/grading-the-guess-mse-r2.html</guid>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
      <description>The same straight-stick rule on a sheet of cars, graded two ways: MSE (RMSE with the root left off) and R^2 -- a race against a fool who only ever shouts the average. Why you divide by the whole wobble, why test R^2 can dip below zero, and the stiff-vs-jumpy split of the...</description>
    </item>
    <item>
      <title>Reading the Dials: What the Coefficients Say :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/reading-the-dials.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/reading-the-dials.html</guid>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
      <description>Each column keeps one dial -- plus pushes up, minus drags down. Zip the names back on, find the most-negative (a MIN, not a MAX), and watch the trap: raw dials wear each column&#x27;s own units, so they are not comparable until the columns sit on one shared ruler.</description>
    </item>
    <item>
      <title>Guessing House Prices, End to End :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/chapter1-what-ml-actually-does.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/chapter1-what-ml-actually-does.html</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <description>The whole picture on the California housing pile: why 20% of rows are locked away first, the ask-closest rule and the straight-stick rule introduced plainly, RMSE against the always-average baseline, and picking settings by rotating folds.</description>
    </item>
    <item>
      <title>Ask the Closest Rows :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/neighbor-machine-knn.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/neighbor-machine-knn.html</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <description>The ask-closest rule from the gap formula up: why a column measured in thousands runs the whole show and must be put on the same ruler, the cost per guess and why close stops meaning close as columns pile up, k as the stiff-vs-jumpy dial.</description>
    </item>
    <item>
      <title>The Straight-Stick Rule :: Rahul&#x27;s ML Blog</title>
      <link>https://learnrahulrai-ui.github.io/ml_blog/posts/straight-stick-linear-regression.html</link>
      <guid isPermaLink="true">https://learnrahulrai-ui.github.io/ml_blog/posts/straight-stick-linear-regression.html</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <description>From the bowl-shaped squared leftover to the exact dials: a three-row pencil solve of the flat-point equations, right-angle leftovers and the flat-shadow thrower, the Gauss-Markov conditions, and why you cut the sheet (QR/SVD) rather than flip it.</description>
    </item>
  </channel>
</rss>
